---
swagger: "2.0"
info:
  description: "The Constant Contact, Inc. V3 public API, for building integrations\
    \ with Constant Contact, the leading small-business email marketing platform."
  version: "3.0.74"
  title: "AppConnect V3"
  contact:
    name: "webservices@constantcontact.com"
  license:
    name: "Private"
host: "l1.api.cc.email"
basePath: "/v3"
tags:
- name: "Account Services"
  description: "Use the account endpoints and methods to get account information."
- name: "Bulk Activities"
  description: "Bulk activities endpoints are used to manage large numbers of contacts,\
    \ lists, and tags."
- name: "Contacts"
  description: "Endpoints and methods to get, create, delete, and update one or more\
    \ contacts."
- name: "Contact Lists"
  description: "Endpoints and methods to get, create, delete, and update one or more\
    \ contact lists."
- name: "Contact Tags"
  description: "Endpoints and methods to get, create, delete, and update one or more\
    \ contact tags."
- name: "Contacts Reporting"
  description: "Contact reporting endpoints are used to gather activity reports for\
    \ campaigns sent to a contact."
- name: "Contacts Custom Fields"
  description: "Endpoints and methods to get, create, delete, and update on one or\
    \ more custom fields."
- name: "Email Campaigns"
  description: "Use email campaign endpoints and methods to get, create, and update\
    \ email campaigns."
- name: "Email Campaigns AB Tests"
  description: "Use email campaigns A/B Test endpoints and methods to get, create,\
    \ delete and update A/B tests."
- name: "Email Reporting"
  description: "Use the email reporting endpoints and methods to get reporting data\
    \ for email campaigns you sent to contacts."
- name: "Email Scheduling"
  description: "Use email scheduling endpoints and methods to schedule an email campaign\
    \ activity, unschedule an email campaign activity, and GET schedule information."
- name: "Events"
  description: "Endpoints and methods used to create and manage events."
- name: "Segments"
  description: "Use segments to target a subset of your contacts that are most likely\
    \ to engage with a particular campaign."
- name: "Landing Pages Reporting"
  description: "Use landing pages reporting endpoints and methods to get reporting\
    \ data about how a contact interacted with a campaign activity."
- name: "SMS Reporting"
  description: "Use SMS reporting endpoints and methods to get reporting data about\
    \ SMS campaigns."
- name: "Technology Partners"
  description: "Use partner endpoints to manage client Constant Contact accounts under\
    \ your partner account."
- name: "Technology Partners Webhooks"
  description: "Use partner webhooks to subscribe to billing event notifications from\
    \ Constant Contact."
schemes:
- "https"
consumes:
- "application/json"
produces:
- "application/json"
paths:
  /account/user/privileges:
    get:
      tags:
      - "Account Services"
      summary: "GET User Privileges"
      description: "Use this method to return the user privileges associated with\
        \ your access token as an array of objects. This method returns all user privileges,\
        \ including privileges the V3 API does not currently use. Constant Contact\
        \ requires specific user privileges to make requests using the V3 API. For\
        \ more information, see the [User Privileges and Roles Overview](/api_guide/user_privileges.html)."
      operationId: "getUserPrivileges"
      produces:
      - "application/json"
      parameters: []
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/UserPrivilegesResource"
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. Your application is deactivated."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit: []
      - oauth2_access_code: []
  /account/summary:
    get:
      tags:
      - "Account Services"
      summary: "GET a Summary of Account Details"
      description: "Get account related details for a Constant Contact user account.\
        \ Use the `extra_fields` query parameter to include the `company_logo` and/or\
        \ `physical_address` details in the response body. For more details, see [Get\
        \ Account Summary Details](/api_guide/account_details_get.html)."
      operationId: "getAccountById"
      produces:
      - "application/json"
      parameters:
      - name: "extra_fields"
        in: "query"
        description: "Use the `extra_fields` query parameter to include the `physical_address`\
          \ and/or `company_logo` details in the response body. Use a comma separated\
          \ list to include both (physical_address, company logo)."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "physical_address"
        - "company_logo"
        x-example: "company_logo"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/Customer"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_read"
      - oauth2_access_code:
        - "account_read"
      x-authorization-privileges:
      - "account:read"
      x-sdk-methodName: "getAccountDetails"
    put:
      tags:
      - "Account Services"
      summary: "PUT (update) Account Details"
      description: "Use this method to update account details for a Constant Contact\
        \ account, such as the email address or phone number. This PUT method provides\
        \ a partial update where only valid properties that you include in the request\
        \ body are updated and excluded properties are not overwritten. For more details,\
        \ see [Put (update) Account Summary Details](/api_guide/account_details_put.html)."
      operationId: "putCustomerById"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "In the request body, specify changes to account details by including\
          \ and modifying all or select `CustomerPut` properties. Changes to read-only\
          \ fields (`encoded_account_id`) are ignored."
        required: true
        schema:
          $ref: "#/definitions/CustomerPut"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/CustomerPut"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_update"
      - oauth2_access_code:
        - "account_update"
      x-authorization-privileges:
      - "account:update"
      x-sdk-methodName: "updateAccount"
  /account/summary/physical_address:
    get:
      tags:
      - "Account Services"
      summary: "GET the Physical Address for the Account"
      description: "Use this method to get the address where the account's organization\
        \ physically resides. The physical address is required to send emails and\
        \ displays on the footer of every email that is sent from the account."
      operationId: "getPhysicalAddress"
      produces:
      - "application/json"
      parameters: []
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/AccountPhysicalAddress"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_read"
      - oauth2_access_code:
        - "account_read"
      x-authorization-privileges:
      - "account:read"
      x-sdk-methodName: "getAccountPhysicalAddress"
    post:
      tags:
      - "Account Services"
      summary: "POST the Physical Address for the Account"
      description: "Use this method to add the address where the account's organization\
        \ physically resides. The physical address is required to send emails and\
        \ displays on the footer of every email that is sent from the account. The\
        \ country (<code>country_code</code>) where the account organization resides\
        \ determines whether you use the <code>state_code</code> to specify United\
        \ States (<code>US</code>) and Canada (<code>CA</code>) addresses, or use\
        \ the <code>state_name</code> to specify all other countries."
      operationId: "addPhysicalAddress"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "Include all `AccountPhysicalAddress` properties required for\
          \ the specified `country_code`. If a required property is not included or\
          \ incorrectly formatted, a 400 error message is returned. If the address\
          \ already exists, a 409 error message is returned."
        required: true
        schema:
          $ref: "#/definitions/AccountPhysicalAddress"
      responses:
        "201":
          description: "Request successful"
          schema:
            $ref: "#/definitions/AccountPhysicalAddress"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_update"
      - oauth2_access_code:
        - "account_update"
      x-authorization-privileges:
      - "account:update"
    put:
      tags:
      - "Account Services"
      summary: "PUT (update) the Physical Address for an Account"
      description: "Use this method to update the organization's physical address\
        \ for the Constant Contact user account. The physical address is required\
        \ to send emails and displays on the footer of every email that is sent from\
        \ the account. To get the current physical address, make a GET call to `/account/summary/physical_address`.\
        \ The country (<code>country_code</code>) where the account organization resides\
        \ determines whether you use the <code>state_code</code> to specify United\
        \ States (<code>US</code>) and Canada (<code>CA</code>) addresses, or use\
        \ the <code>state_name</code> to specify all other countries. For more details,\
        \ see [Put (update) the Physical Address for the Account](/api_guide/account_address_put.html).\
        \ You must have the role of Account Owner assigned to update account level\
        \ details. "
      operationId: "putPhysicalAddress"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "Include all `AccountPhysicalAddress` properties required for\
          \ the specified `country_code` and then update only those properties that\
          \ you want to change. Excluding a non-read only field from the request body\
          \ removes it from the physical address."
        required: true
        schema:
          $ref: "#/definitions/AccountPhysicalAddress"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/AccountPhysicalAddress"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_update"
      - oauth2_access_code:
        - "account_update"
      x-authorization-privileges:
      - "account:update"
      x-sdk-methodName: "updateAccountPhysicalAddress"
  /account/emails:
    get:
      tags:
      - "Account Services"
      summary: "GET a Collection of Account Email Addresses"
      description: "Use this method to return a collection of email addresses for\
        \ the account associated with your access token. When you <a href=\"https://v3.developer.constantcontact.com/api_reference/index.html#!/Email_Campaigns/createEmailCampaignUsingPOST\"\
        \ target=\"_blank\">Create an Email Campaign<a/>, you must use an account\
        \ email address with a `CONFIRMED` status in the email campaign `from_email`\
        \ and `reply_to_email` headers.\n      \n\nUse the query parameters to filter\
        \ results. You can filter using `confirm_status`, `role_code`, or `email_address`.\
        \ For example, searching with `confirm_status=CONFIRMED` returns all confirmed\
        \ email addresses in the account. This method only supports one query parameter\
        \ at a time.\n"
      operationId: "retrieveEmailAddresses"
      produces:
      - "application/json"
      parameters:
      - name: "confirm_status"
        in: "query"
        description: "Use the `confirm_status` query parameter to search for account\
          \ emails using the email status. Possible values are `CONFIRMED` or `UNCONFIRMED`.\
          \ You can also abbreviate the values of this query parameter and use `C`\
          \ or `U`.\n"
        required: false
        type: "string"
        enum:
        - "CONFIRMED"
        - "C"
        - "UNCONFIRMED"
        - "U"
      - name: "role_code"
        in: "query"
        description: "Use the `role_code` query parameter to search for account emails\
          \ that have a specific role. Each each email address in an account can have\
          \ multiple roles or no role. Possible values are `CONTACT`, `BILLING`, `REPLY_TO`,\
          \ `JOURNALING`, or `OTHER`. You can also abbreviate the value of this query\
          \ parameter and use `C`,`B`,`R`,`J`, or `O`."
        required: false
        type: "string"
        enum:
        - "CONTACT"
        - "C"
        - "BILLING"
        - "B"
        - "JOURNALING"
        - "J"
        - "REPLY_TO"
        - "R"
        - "OTHER"
        - "O"
      - name: "email_address"
        in: "query"
        description: "Use the `email_address` query parameter to search for a specific\
          \ account email address."
        required: false
        type: "string"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/AccountEmails"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_read"
      - oauth2_access_code:
        - "account_read"
      x-authorization-privileges:
      - "account:read"
      x-sdk-methodName: "getAllAccountEmailAddresses"
    post:
      tags:
      - "Account Services"
      summary: "POST Add an Account Email Address"
      description: "Use this method to add a new email address to a Constant Contact\
        \ account. If the email address you are adding already exists in the account\
        \ the API will return a 409 conflict error. \n\nWhen you add a new email address\
        \ to an account, Constant Contact automatically sends an email to that address\
        \ with a link to confirm it. After a user clicks that link, the account email\
        \ status changes from `UNCONFIRMED` to `CONFIRMED`. You can use confirmed\
        \ account email addresses in the email campaign `from_email` and `reply_to_email`\
        \ headers. For more use case information, see [Add an Account Email Address](/api_guide/account_post_emails.html)\
        \ in the API guide. \n"
      operationId: "addAccountEmailAddress"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "A JSON request payload containing the new email address you\
          \ want to add to the Constant Contact account."
        required: true
        schema:
          $ref: "#/definitions/AccountEmailInput"
      responses:
        "201":
          description: "Request successful."
          schema:
            $ref: "#/definitions/AccountEmailCreateResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "account_update"
      - oauth2_access_code:
        - "account_update"
      x-authorization-privileges:
      - "account:update"
  /activities:
    get:
      tags:
      - "Bulk Activities"
      summary: "GET Activity Status Collection"
      description: "This endpoint returns a collection of activities. Use the state\
        \ query parameter to include only activities with a specific status (processing,\
        \ completed, cancelled, failed, or time_out). Use the limit query parameter\
        \ to define the number of activities returned per page. Learn [more](/api_guide/activity_status.html)."
      operationId: "getActivityStatusCollection"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Specifies the number of results displayed per page of output,\
          \ from 1 - 500, default = 50."
        required: false
        type: "integer"
        default: 50
        maximum: 500
        minimum: 1
        x-example: 25
      - name: "state"
        in: "query"
        description: "Use this parameter to filter the response to include only activities\
          \ in one of the following states: cancelled, completed, failed, processing,\
          \ or timed_out."
        required: false
        type: "string"
        enum:
        - "processing"
        - "completed"
        - "cancelled"
        - "failed"
        - "timed_out"
        x-example: "processing"
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Activities"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "getAllActivities"
  /activities/{activity_id}:
    get:
      tags:
      - "Bulk Activities"
      summary: "GET an Activity Status"
      description: "This endpoint returns an activity status report."
      operationId: "getActivity"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "activity_id"
        in: "path"
        description: "The unique ID of the activity to GET"
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Activity"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "Resource not found for the activity_id provided"
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "getActivityById"
  /activities/contact_exports:
    post:
      tags:
      - "Bulk Activities"
      summary: "Export Contacts to a File"
      description: "Use this method to create an activity that exports contacts and\
        \ contact details to a CSV file.  You can choose to export all contacts in\
        \ your account (default) or you can use parameters to filter on which contacts\
        \ to export. After Constant Contact finishes processing the activity, use\
        \ the `results` link in the response body to retrieve the CSV file."
      operationId: "postContactsExport"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "A JSON payload that specifies the contacts (rows in the CSV\
          \ file) and contact properties (columns in the CSV file) you want to export."
        required: true
        schema:
          $ref: "#/definitions/ContactsExport"
      responses:
        "201":
          description: "Request successful, queued for processing."
          schema:
            $ref: "#/definitions/ActivityExportStatus"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createExportActivity"
  /contact_exports/{file_export_id}:
    get:
      tags:
      - "Bulk Activities"
      summary: "Retrieve Exported Contacts File"
      description: "Use this endpoint to retrieve (GET) a CSV file containing exported\
        \ contacts by providing the `activity_id` of a completed CSV export activity.\
        \ \n"
      operationId: "getContactsExport"
      consumes:
      - "application/json"
      produces:
      - "text/csv"
      parameters:
      - name: "file_export_id"
        in: "path"
        description: "The unique ID of the exported file provided in the results:\
          \ section of the export contacts activity response."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/ActivityGetExport"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "getCSVExportFile"
  /activities/contact_delete:
    post:
      tags:
      - "Bulk Activities"
      summary: "Delete Contacts in Bulk"
      description: "Use this endpoint to bulk delete contacts in an account. Contacts\
        \ to delete are specified by contact_id (up to 500), or by list_id (up to\
        \ 50 lists); all contacts that are members of the list_ids are deleted. Deleted\
        \ contacts won’t receive email from you, and they don’t count as active contacts.\
        \ Unlike unsubscribed contacts, deleted contacts can be added back to an account.\
        \ [Learn how to revive deleted contacts](/api_guide/contacts_delete.html#revive)."
      operationId: "postContactDelete"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The request body contains an array of contact_ids <em>or</em>\
          \ list_ids. All contact_ids provided are deleted, or all members of each\
          \ specified list_id are deleted."
        required: true
        schema:
          $ref: "#/definitions/ContactDelete"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityDeleteStatus"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createDeleteActivity"
  /activities/contacts_file_import:
    post:
      tags:
      - "Bulk Activities"
      summary: "Import Contacts using a CSV File"
      description: "This multipart method creates an asynchronous background job that\
        \ adds or updates contacts by importing a CSV file containing contact information.\
        \ Do not use a Content-Type header value with this method.\n\nImporting a\
        \ new contact email address automatically sets the contact's `permission_to_send`\
        \ property as `implicit` and the `opt_in_source` property as `Account`. Importing\
        \ an existing contact only updates the contact properties you include in the\
        \ request.\nImporting contacts with `sms_number`s requires using the `sms_permission_to_send`\
        \ parameter  to specify permissions for all contacts being imported. Set to\
        \ `explicit` to specify that all contacts either provided explicit permission.\
        \ Set to `not_set` if permission was not provided. If `explicit`, you must\
        \ also include the `sms_consent_date` as a column header to include the date\
        \ the contact consented to receiving SMS messages.\nContacts must have either\
        \ an email address or an SMS number defined.\n \nThe CSV file has a maximum\
        \ of 40,000 lines including the header row (39,999 contacts) and a maximum\
        \ file size of 4 megabytes (MB).  Lines above the 40,000 line maximum are\
        \ not processed. If the request body exceeds 4 MB, only the contacts contained\
        \ in the first 4 MB are imported and the remaining data is dropped."
      operationId: "contactsCSVImport"
      consumes:
      - "multipart/form-data"
      produces:
      - "application/json"
      parameters:
      - name: "file"
        in: "formData"
        description: "The CSV file you are importing  must include either `email`\
          \ or `sms_number` as a column heading. Other properties you can include\
          \ using column headings are: `first_name`.  `last_name`, `phone`, `job_title`,\
          \ `anniversary`, `birthday_day`, `birthday_month`, `company_name`, `street`,\
          \ `street2`, `city`, `state`, `zip`, `country`, and `sms_consent_date`.\
          \ \n\nIf adding an `sms_number`, you must also include the `sms_permission_to_send`\
          \ parameter and set it to either `not_set` or `explicit`. If `explicit`,\
          \ requires including `sms_consent_date` as a column header to specify the\
          \ date the contact consented to receiving SMS messages. \n\nYou can also\
          \ use custom fields as column headings. Enter the custom field name prefixed\
          \ with `cf:` as the column heading. For example, use `cf:first_name` as\
          \ the header name if you have a custom field named \"first_name\". The custom\
          \ field must already exist in the Constant Contact account you are using.\
          \ Depending on the custom field data type, you can enter dates or strings\
          \ as the value of the custom field. Each contact can contain up to 25 different\
          \ custom fields."
        required: true
        type: "file"
        x-example: "new_contacts_import.csv"
      - name: "list_ids"
        in: "formData"
        description: "Specify which contact lists you are adding all imported contacts\
          \ to as an array of up to 50 contact `list_id` values."
        required: true
        type: "string"
        items:
          type: "string"
        maxItems: 50
        format: "csv"
        x-example: "8c077f20-1586-11e4-bcb3-00163e56be7c"
      - name: "sms_permission_to_send"
        in: "formData"
        description: "If importing contact `sms_number`s, use this parameter to specify\
          \ how SMS consent was provided. If all contacts in the file provided their\
          \ consent, set to `explicit` and include each contact's `sms_consent_date`.\
          \ If all contacts in the file have not yet provided consent, set to `not_set`\
          \ (`sms_consent_date` is not required). You cannot message a contact that\
          \ does not have a sms consent date set."
        required: false
        type: "string"
        enum:
        - "not_set"
        - "explicit"
        x-example: "not_set"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityImport"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "1. This endpoint requires that Content-Type be unspecified\
            \ 2. Wrong file format, upload file must be of type .csv"
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createCSVImportActivity"
  /activities/contacts_json_import:
    post:
      tags:
      - "Bulk Activities"
      summary: "Import Contacts using a JSON Payload"
      description: "Use this method to create an asynchronous background job that\
        \ adds new contacts or updates existing contacts by importing a JSON payload.\
        \ This method requires a request body that contains the contact data you are\
        \ importing and the contact lists to which you want to add the imported contacts.\
        \ A contact's data must include an `email` address and/or `sms_number`. The\
        \ `sms_number` must be a US phone number to associate with the contact's SMS-enabled\
        \ phone. Valid formats are <code>1231231234</code> or <code>123-123-1234</code>\
        \ (the country code must be valid).\n\nImporting a new contact using this\
        \ method automatically sets the contact's email `permission_to_send` property\
        \ to `implicit` and the `opt_in_source` property as `Account`. Importing an\
        \ existing contact only updates the contact properties you include in the\
        \ request. For each contact, you can import up to three addresses and three\
        \ phone numbers. International phone numbers are currently not supported.\
        \      \n\nTo import custom fields, prefix the custom field name with `cf:`\
        \ and add it as a contact property. For example, use the property name `cf:first_name`\
        \ if you have a custom field named `first_name`. The custom field must already\
        \ exist in the Constant Contact account you are using. Each contact can contain\
        \ up to 25 custom fields.\n\nTo include a contact's `sms_number`, if the contact\
        \ provided explicit permission to receive SMS messages, you must set the `sms_permission_to_send`\
        \ property to `explicit` and specify the date of consent using the `sms_consent_date`\
        \ column header. If explicit permission was not provided, set `sms_permission_to_send`\
        \ to `not_set` (the `sms_consent_date` is not required). If the `sms_consent_date`\
        \ is not set, SMS messages cannot be sent to contacts and `sms_permission_to_send`\
        \ defaults to `not_set`. Valid value formats for `sms_consent_date` include\
        \ MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD, YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY,\
        \ or M-DD-YYYY. \n\nThe request body payload has a maximum size of 4 megabytes\
        \ (MB). If the request body exceeds 4 MB, this method only imports the first\
        \ 4 MB and drops the remaining data. Use the activity URL to check the status\
        \ of the import activity request."
      operationId: "bulkImportContactsJSON"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON request payload that contains the contact data and\
          \ contact lists for the import."
        required: true
        schema:
          $ref: "#/definitions/ContactsJsonImport"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityImport"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createImportJSONActivity"
  /activities/remove_list_memberships:
    post:
      tags:
      - "Bulk Activities"
      summary: "Remove Contacts from Lists"
      description: "Use this method to create an activity that removes contacts from\
        \ one or more contact lists. Use the properties in the `source` object to\
        \ remove specific contacts from your lists. Use the `list_ids` array to specify\
        \ the target lists from which contacts are removed. Optionally, if the source\
        \ is  `all_active_contacts` (billable) or `list_ids`, use the `exclude` object\
        \ to exclude specific contacts from being removed from the destination lists."
      operationId: "postListRemoveContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload used to create the Remove Contacts from Lists'\
          \ activity"
        required: true
        schema:
          $ref: "#/definitions/ListActivityRemoveContacts"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityListsMembership"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createListRemoveActivity"
  /activities/add_list_memberships:
    post:
      tags:
      - "Bulk Activities"
      summary: "Add Contacts to Lists"
      description: "Use this method to create an activity that adds contacts to one\
        \ or more lists. Each contact can be a member of up to 50 lists. Use the properties\
        \ in the `source` object to specify the contacts you want to add to lists.\
        \ Use the `list_ids` array to specify which lists you want to add your source\
        \ contacts to."
      operationId: "postListAddContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload used to create the 'add contacts to lists'\
          \ activity"
        required: true
        schema:
          $ref: "#/definitions/ListActivityAddContacts"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityListsMembership"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createListAddActivity"
  /activities/list_delete:
    post:
      tags:
      - "Bulk Activities"
      summary: "Delete Contact Lists"
      description: "Use this endpoint to delete up to 100 contact lists in an account. "
      operationId: "postListDelete"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "An array of `list_id`'s to delete."
        required: true
        schema:
          $ref: "#/definitions/ListIdList100"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityDeleteListsResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createListDeleteActivity"
  /activities/contacts_taggings_remove:
    post:
      tags:
      - "Bulk Activities"
      summary: "Remove Tags from Contacts"
      description: "Use this method to create an asynchronous activity that removes\
        \ one or more tags from all contacts meeting your contact filtering criteria.\
        \ Filtering criteria must include the `source` type used to identify contacts\
        \ from which the specified tags (`tag_id`) are removed.\nSource types are\
        \ mutually exclusive. If the specified source is either `all_active_contacts`\
        \ or `list_ids`, you can optionally choose to `exclude` specified contacts\
        \ by `contact_id`. Use the activity link in the results to check the status\
        \ of your request.\"\nFor more use case information, see \"[Remove Tags from\
        \ Contacts](/api_guide/remove_tagging_activity.html)"
      operationId: "postTagRemoveContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload used to create an asynchronous activity that\
          \ removes tags from contacts meeting your specified contact filtering criteria."
        required: true
        schema:
          $ref: "#/definitions/TagAddRemoveContacts"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityTagging"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createTagRemoveActivity"
  /activities/contacts_taggings_add:
    post:
      tags:
      - "Bulk Activities"
      summary: "Add Tags to Contacts"
      description: "Use this method to create an asynchronous activity that adds one\
        \ or more tags to all contacts meeting your contact filtering criteria. Use\
        \ the `source` type to identify contacts from which the specified tags (`tag_id`)\
        \ are added.\nSource criteria are mutually exclusive. If the source is `all_active_contacts`\
        \ or `list_ids`, you can optionally choose to `exclude` contacts by `contact_id`.\
        \ Use the activity link in the results to check the status of your request.\n\
        For more use case information, see \"[Add Tags to Contacts](/api_guide/add_tagging_activity.html)"
      operationId: "postTagAddContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload used to create an asynchronous activity that\
          \ adds tags to contacts that meet your specified contact filtering criteria."
        required: true
        schema:
          $ref: "#/definitions/TagAddRemoveContacts"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityTagging"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createTagAddContactActivity"
  /activities/contacts_tags_delete:
    post:
      tags:
      - "Bulk Activities"
      summary: "Delete Tags"
      description: "Use this method to create an asynchronous activity that deletes\
        \ up to 500 tags. Deleted tags are automatically removed from tagged contacts.\
        \ Use the `tag_ids` array of string values in the request body to specify\
        \ which tags to delete."
      operationId: "postTagDelete"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "An array of string values (`tag_id`s) to delete."
        required: true
        schema:
          $ref: "#/definitions/TagIdList500Limit"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityTagging"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createTagDeleteActivity"
  /activities/custom_fields_delete:
    post:
      tags:
      - "Bulk Activities"
      summary: "Delete Custom Fields"
      description: "Use this endpoint to delete up to 100 custom fields for an account. "
      operationId: "postCustomFieldDelete"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "An array of `custom_field_id`'s to delete."
        required: true
        schema:
          $ref: "#/definitions/CustomFieldId100"
      responses:
        "201":
          description: "Request successful. Activity queued for processing."
          schema:
            $ref: "#/definitions/ActivityDeleteCustomFields"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded 1,000 queued activities for\
            \ this user account."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /segments:
    get:
      tags:
      - "Segments"
      summary: "GET all Segments"
      description: "Use this method to get a list of all segments associated with\
        \ the account. You can sort segment results and limit the number of segments\
        \ that display per page. Deleted segments are excluded from the results. For\
        \ more use case information, see [Get All Segments](/api_guide/segment_get_all.html)\
        \ in the API guide."
      operationId: "getAccountSegments"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "The number of segments to return on a page."
        required: false
        type: "string"
        default: "1000"
        x-example: "1000"
      - name: "sort_by"
        in: "query"
        description: "Specify the segment sort order to use. Sort by name (`sort_by=name`)\
          \ in ascending order, or sort by date (`sort_by=date`) in descending order\
          \ with the most recently updated segments listed first."
        required: false
        type: "string"
        default: "date"
        x-example: "sort_by=date"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/SegmentsDTO"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:read"
      x-sdk-methodName: "getAllSegments"
    post:
      tags:
      - "Segments"
      summary: "POST (create) a Segment"
      description: "Use this method to create a new segment. You create segments to\
        \ target a subset of your contacts that meet your specific criteria for a\
        \ marketing campaign. The segment `name` must be unique. The `segment_criteria`\
        \ requires single-string escaped JSON. Constant Contact uses the contact data\
        \ that you specify in the `segment_criteria` to evaluate and identify the\
        \ contacts you want to target. Contact data can be grouped from different\
        \ data sources, including:\n\n  -  **`tracking`**: Supports **or** and **and**\
        \ groups.\n\n\n  -  **`contact`**: Supports **or** and **and** groups.\n\n\
        \n  -  **`list_membership`**: Supports **or** groups.\n\n  -  **`tags`**:\
        \ Supports **or** groups.\n\nIf you do not specify `list_membership` as criteria,\
        \ Constant Contact evaluates all contacts in your account. To avoid returning\
        \ a 400 error response, when specifying the `segment_criteria` do not request\
        \ more than 500 email campaigns or a date range greater than 1825 days (5\
        \ years) be evaluated.\n\nFor more use case information, see the [Segments\
        \ Overview](/api_guide/segments_overview.html) in the API guide."
      operationId: "createSegment"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The segment `name` and `segment_criteria` (requires single-string\
          \ escaped JSON)."
        required: true
        schema:
          $ref: "#/definitions/SegmentData"
        x-example: "test"
      responses:
        "201":
          description: "Segment successfully created."
          schema:
            $ref: "#/definitions/SegmentDetail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
  /segments/{segment_id}:
    get:
      tags:
      - "Segments"
      summary: "GET a Segment's Details"
      description: "Use this method to get details about a segment, including the\
        \ segment criteria. If you know the `segment_id` You can also use this method\
        \ to get details about a deleted segment. For more use case information, see\
        \ [Get a Segment's Details](/api_guide/segment_get.html) in the API guide."
      operationId: "getSegmentDetail"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "segment_id"
        in: "path"
        description: "The system-generated unique ID that identifies a segment."
        required: true
        type: "integer"
        format: "int32"
        x-example: 14
      responses:
        "200":
          description: "The segment was successfully returned."
          schema:
            $ref: "#/definitions/SegmentDetail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:read"
      x-sdk-methodName: "getSegmentById"
    put:
      tags:
      - "Segments"
      summary: "PUT (update) a Segment"
      description: "Use this method to update an existing segment's name (`name`)\
        \ and/or contact selection criteria (`segment_criteria`). You must specify\
        \ both the `name` and the `segment_criteria` in the request body, even if\
        \ you don't plan to update both. The segment's name must be unique and the\
        \ JSON must be valid (requires single-string escaped JSON). To avoid returning\
        \ a 400 error response, when specifying the `segment_criteria` do not request\
        \ more than 500 email campaigns or a date range greater than 1825 days (5\
        \ years) be evaluated. For more use case information, see [Update Segment\
        \ Details](/api_guide/segment_update.html) in the API guide."
      operationId: "updateSegment"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "segment_id"
        in: "path"
        description: "The system generated ID that uniquely identifies the segment\
          \ that you want to modify."
        required: true
        type: "integer"
        format: "int32"
        x-example: 14
      - in: "body"
        name: "body"
        description: "Include both the `name` and `segment_criteria` (single-string\
          \ escaped JSON) in the body request, then make updates to either or both."
        required: true
        schema:
          $ref: "#/definitions/SegmentData"
      responses:
        "200":
          description: "The segment was successfully updated."
          schema:
            $ref: "#/definitions/SegmentDetail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
    delete:
      tags:
      - "Segments"
      summary: "DELETE a Segment"
      description: "Use this method to delete a segment from your account. Before\
        \ deleting a segment, verify that the segment is not associated with a scheduled\
        \ campaign.\n\nDeleted segments do not display in the results when using the\
        \ `GET /segments` endpoint. If you know the `segment_id`, you can use the\
        \ `GET /segments/{segment_id}` endpoint to view the deleted segment's details.\
        \ A segment's details are preserved for external reference purposes, such\
        \ as displaying the segment name in a campaign's history. For more use case\
        \ information, see [Delete a Segment](/api_guide/segment_delete.html) in the\
        \ API guide."
      operationId: "deleteSegment"
      produces:
      - "application/json"
      parameters:
      - name: "segment_id"
        in: "path"
        description: "The system generated ID that uniquely identifies the segment."
        required: true
        type: "integer"
        format: "int32"
        x-example: 14
      responses:
        "204":
          description: "The segment was successfully deleted."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
  /segments/{segment_id}/name:
    patch:
      tags:
      - "Segments"
      summary: "PATCH (rename) a Segment"
      description: "Use this method to update an existing segment `name` with a new\
        \ unique name in the request body. For more use case information, see [Rename\
        \ a Segment](/api_guide/segment_rename.html) in the API guide."
      operationId: "updateSegmentName"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "segment_id"
        in: "path"
        description: "The system generated ID that uniquely identifies the segment\
          \ that you want to modify."
        required: true
        type: "integer"
        format: "int32"
        x-example: 14
      - in: "body"
        name: "body"
        description: "Include the existing segment `name` in the body request, then\
          \ rename the segment using a unique new name."
        required: true
        schema:
          $ref: "#/definitions/SegmentName"
      responses:
        "200":
          description: "The segment name was successfully updated."
          schema:
            $ref: "#/definitions/SegmentDetail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
  /contacts/{contact_id}:
    get:
      tags:
      - "Contacts"
      summary: "GET a Contact"
      description: "This endpoint GETs a specific contact resource (contact_id). Use\
        \ the `include` query parameter to add any of the available contact sub-resources\
        \ to the response payload."
      operationId: "getContact"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "Unique ID of contact to GET"
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      - name: "include"
        in: "query"
        description: "Use `include` to specify which contact sub-resources to include\
          \ in the response. Use a comma to separate multiple sub-resources. Valid\
          \ values: `custom_fields`, `list_memberships`, `phone_numbers`, `street_addresses`,\
          \ `notes`, and `taggings`."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "custom_fields"
        - "list_memberships"
        - "phone_numbers"
        - "street_addresses"
        - "taggings"
        - "notes"
        x-example: "custom_fields,list_memberships"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
      x-sdk-methodName: "getContactById"
    put:
      tags:
      - "Contacts"
      summary: "PUT (update) a Contact"
      description: "The PUT method updates an existing contact. You must include the\
        \ `update_source` property in the PUT request payload. To restore  a deleted\
        \ contact you must specify the `update_source` as `Account`. When updating\
        \ any resource using PUT, all properties are updated, overwriting all previous\
        \ values. Any properties left blank or not included in the request are overwritten\
        \ with null value - however this does not apply to contact subresources. \n\
        \nAdd or change any of the subresources by including them in the PUT request\
        \ payload. Omitted subresources are not overwritten with null. If the contact\
        \ being updated is deleted, the contact will be revived.\nIf `email_address`\
        \ is specified: <div class=\"Msg\"><p class=\"note-text\"> **Only use this\
        \ method when a contact gives you their explicit permission to send them an\
        \ email. It is a violation of anti-spam and telemarketing laws, as well as\
        \ a serious violation of the Constant Contact Terms of Service to use the\
        \ Opt-in features of the API to opt a contact back in without his or her own\
        \ action and consent.</p></div>\n\nIf `sms_channel` is specified: <div class=\"\
        Msg\"><p class=\"note-text\">Only use this method when a contact gives you\
        \ their explicit permission to send them an SMS. It is a violation of anti-spam\
        \ and telemarketing laws, as well as a serious violation of the Constant Contact\
        \ Terms of Service to use the Opt-in features of the API to opt a contact\
        \ back in without his or her own action and consent.</p></div>"
      operationId: "putContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "Unique ID of contact to update"
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      - in: "body"
        name: "body"
        description: "JSON payload defining the contact object, with updates. Any\
          \ properties left blank or not included in the PUT payload are overwritten\
          \ with null value - does not apply to contact subresources."
        required: true
        schema:
          $ref: "#/definitions/ContactPutRequest"
      responses:
        "200":
          description: "Contact resource has been updated"
          schema:
            $ref: "#/definitions/ContactResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "updateContact"
    delete:
      tags:
      - "Contacts"
      summary: "DELETE a Contact"
      description: "Deletes the contact identified by the contact_id path parameter.\
        \ Deleted contacts won't receive email from you, and they don't count as active\
        \ contacts. Unlike unsubscribed contacts, deleted contacts can be revived,\
        \ or added back to an account. Learn how to [revive deleted contacts](/api_guide/contacts_delete.html#revive)."
      operationId: "deleteContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "Unique ID of contact to DELETE"
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "204":
          description: "Request successful; No content returned"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contacts:
    get:
      tags:
      - "Contacts"
      summary: "GET Contacts Collection"
      description: "Use this method to return a collection of contacts. Use the query\
        \ parameters to search for contacts that match specific contact properties\
        \ and sub-resource properties as criteria. For example, you can search using\
        \ the contact's `email` address, `lists` memberships, and by the date range\
        \ that a contact was created or updated. Use the `limit` query parameter to\
        \ limit the number of results returned per page. Use the `include` query parameter\
        \ to include contact sub-resources in the response and `include_count` to\
        \ include the total number of contacts that meet your specified search criteria.\n\
        \nBy default, this method returns all contacts that are not deleted. Use the\
        \ `status` query parameter with the value `all` to return all contacts including\
        \ deleted contacts."
      operationId: "getContacts"
      produces:
      - "application/json"
      parameters:
      - name: "status"
        in: "query"
        description: "Use the `status` query parameter to search for contacts by status.\
          \ This parameter accepts one or more comma separated values: `all`, `active`,\
          \ `deleted`, `not_set`, `pending_confirmation`, `temp_hold`, and `unsubscribed`."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "all"
        - "active"
        - "deleted"
        - "not_set"
        - "pending_confirmation"
        - "temp_hold"
        - "unsubscribed"
      - name: "email"
        in: "query"
        description: "Use the `email` query parameter to search for a contact using\
          \ a specific email address."
        required: false
        type: "string"
        x-example: "xyz@example.com"
      - name: "lists"
        in: "query"
        description: "Use the `lists` query parameter to search for contacts that\
          \ are members of one or more specified lists. Use a comma to separate multiple\
          \ `list_id` values, up to a maximum of 25."
        required: false
        type: "string"
        maximum: 25
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a,04fe9a-a579-43c5-bb1a-58ed29bf0a6a,04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      - name: "segment_id"
        in: "query"
        description: "Use to get contacts that meet the segment criteria for a single\
          \ specified `segment_id`. This query parameter can only be combined with\
          \ the limit query parameter. When using the `segment_id` query parameter,\
          \ the V3 API may return a 202 response code instead of a 200 response. The\
          \ 202 response code indicates that your request has been accepted, but not\
          \ fully completed. Retry sending your API request to return the completed\
          \ results and a 200 response code."
        required: false
        type: "string"
        maximum: 1
        x-example: "14"
      - name: "tags"
        in: "query"
        description: "Use to get contact details for up to 50 specified tags. Use\
          \ a comma to separate each `tag_id`."
        required: false
        type: "string"
        maximum: 50
        format: "uuid"
        x-example: "fa85f64-5717-4562-b3fc-2c963f66afa6"
      - name: "updated_after"
        in: "query"
        description: "Use `updated_after` to search for contacts that have been updated\
          \ after the date you specify. To search for updated contacts within a date\
          \ range, specify both `updated_after` and `updated_before` dates. Accepts\
          \ ISO-8601 formatted dates."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2022-01-01T16:37:59.091Z"
      - name: "updated_before"
        in: "query"
        description: "Use `updated_before` to search for contacts that have been updated\
          \ before a specified date. To search for updated contacts within a date\
          \ range, specify both `updated_after` and `updated_before` dates. Accepts\
          \ ISO-8601 formatted dates."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2022-07-16T16:37:59.091Z"
      - name: "created_after"
        in: "query"
        description: "Use `created_after` to search for contacts created after a specified\
          \ date. To search for contacts created within a date range, specify both\
          \ `created_after` and `created_before` dates. Accepts ISO-8601 formatted\
          \ dates."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2021-01-01T16:37:59.091Z"
      - name: "created_before"
        in: "query"
        description: "Use `created_before` to search for contacts created before a\
          \ specified date. To search for contacts created within a date range, specify\
          \ both `created_after` and `created_before` dates. Accepts ISO-8601 formatted\
          \ dates."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2022-07-16T16:37:59.091Z"
      - name: "optout_after"
        in: "query"
        description: "Use `optout_after` to search for contacts that unsubscribed\
          \ after a specified date."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2022-11-16T16:20:59.091Z"
      - name: "optout_before"
        in: "query"
        description: "Use `optout_before` to search for contacts that unsubscribed\
          \ before a specified date."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2022-11-16T16:20:59.091Z"
      - name: "include"
        in: "query"
        description: "Use `include` to specify which contact sub-resources to include\
          \ in the response. Use a comma to separate multiple sub-resources. Valid\
          \ values: `custom_fields`, `list_memberships`, `taggings`, `notes`,`phone_numbers`,\
          \ `street_addresses`."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "custom_fields"
        - "list_memberships"
        - "phone_numbers"
        - "street_addresses"
        - "taggings"
        - "notes"
        x-example: "custom_fields,list_memberships"
      - name: "sms_status"
        in: "query"
        description: "Use to get contacts by their SMS status. This parameter accepts\
          \ one or more comma separated values: `all`, `explicit`, `unsubscribed`,\
          \ `pending_confirmation`, `not_set`."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "all"
        - "explicit"
        - "unsubscribed"
        - "pending_confirmation"
        - "not_set"
      - name: "include_count"
        in: "query"
        description: "Set `include_count=true` to include the total number of contacts\
          \ (`contacts_count`) that meet all search criteria in the response body."
        required: false
        type: "boolean"
        x-example: "true"
      - name: "limit"
        in: "query"
        description: "Specifies the number of results displayed per page of output\
          \ in the response, from 1 - 500, default = 50."
        required: false
        type: "integer"
        default: 50
        maximum: 500
        minimum: 1
        x-example: 25
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/Contacts"
        "202":
          description: "Accepted"
          schema:
            $ref: "#/definitions/Contacts"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
      x-sdk-methodName: "getAllContacts"
    post:
      tags:
      - "Contacts"
      summary: "POST (create) a Contact"
      description: "\nCreates a new contact resource. You must include the `create_source`\
        \ property and at least one of the following properties: `first_name`, `last_name`,\
        \ a unique `email_address` (specified using the `EmailAddress` object), or\
        \ the `sms_channel` property (specified using the `ContactSmsChannel` object).\n\
        \n<div class=\"Msg\"><p class=\"note-text\">If `email_address` is specified:\
        \ **Only use this method when a contact gives you their explicit permission\
        \ to send them an email. It is a violation of anti-spam and telemarketing\
        \ laws, as well as a serious violation of the Constant Contact Terms of Service\
        \ to use the Opt-in features of the API to opt a contact back in without his\
        \ or her own action and consent.</p></div>\n\nIf `sms_channel` is specified:\
        \ <div class=\"Msg\"><p class=\"note-text\">Only use this method when a contact\
        \ gives you their explicit permission to send them an SMS. It is a violation\
        \ of anti-spam and telemarketing laws, as well as a serious violation of the\
        \ Constant Contact Terms of Service to use the Opt-in features of the API\
        \ to opt a contact back in without his or her own action and consent.</p></div>"
      operationId: "createContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload defining the contact"
        required: true
        schema:
          $ref: "#/definitions/ContactPostRequest"
      responses:
        "201":
          description: "New contact successfully created"
          schema:
            $ref: "#/definitions/ContactResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type; the payload must be in JSON format,\
            \ and Content-Type must be application/json"
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contacts/sign_up_form:
    post:
      tags:
      - "Contacts"
      summary: "Create or Update a Contact"
      description: "Use this method to create a new contact or update an existing\
        \ contact. In the request body, this method requires including the `list_memberships`\
        \ array as well as either the contact's `email_address` string or `sms_channel`\
        \ object which includes the contact's SMS number. The information you specify\
        \ determines if a new contact is either created (the email address or SMS\
        \ number does not already exist in the account), or if an existing contact\
        \ is updated (the email address or SMS number already exists). The SMS product\
        \ feature does not need to be enabled to include a contacts SMS details.\n\
        \nUpdates to existing contacts are partial updates. This method only updates\
        \ the contact properties you include in the request body. Updates append new\
        \ contact lists or custom fields to the existing `list_memberships` or `custom_fields`\
        \ arrays.\n\nIf `email_address` is specified: <div class=\"Msg\"><p class=\"\
        note-text\">Only use this method when a contact gives you their explicit permission\
        \ to send them an email. It is a violation of anti-spam and telemarketing\
        \ laws, as well as a serious violation of the Constant Contact Terms of Service\
        \ to use the Opt-in features of the API to opt a contact back in without his\
        \ or her own action and consent.</p></div>\n\nIf `sms_channel` is specified:\
        \ <div class=\"Msg\"><p class=\"note-text\">Only use this method when a contact\
        \ gives you their explicit permission to send them an SMS. It is a violation\
        \ of anti-spam and telemarketing laws, as well as a serious violation of the\
        \ Constant Contact Terms of Service to use the Opt-in features of the API\
        \ to opt a contact back in without his or her own action and consent.</p></div>\n\
        \nWhen this method creates a new contact, it returns a 201 response code.When\
        \ this method updates an existing contact, it returns a 200 response code.\
        \ Updating a deleted contact restores the contact.\n\nThe method automatically\
        \ modifies the contact's `permission_to_send` and `opt_in_source` properties\
        \ depending on the [Confirmed Opt-In](https://knowledgebase.constantcontact.com/articles/KnowledgeBase/5533-obtain-permission-to-send-email-campaigns-to-your-contacts-by-using-confirmed-opt-in)\
        \ Constant Contact account setting:\n\nIf Confirmed Opt-in is _enabled_, this\
        \ method automatically sets the `permission_to_send` property as `pending_confirmation`\
        \ for new contacts. If Confirmed Opt-in is _disabled_, this method automatically\
        \ sets the `permission_to_send` property as explicit and the `opt_in_source`\
        \ property as `Contact` for new contacts. Updated contacts have their `permission_to_send`\
        \ property set as explicit.\n      "
      operationId: "createOrUpdateContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "A JSON request body payload that contains the contact resource\
          \ you are creating or updating. The request body must contain the `email_address`\
          \ property and `list_memberships` array, or the `sms_channel` object."
        required: true
        schema:
          $ref: "#/definitions/ContactCreateOrUpdateInput"
      responses:
        "200":
          description: "Contact successfully updated."
          schema:
            $ref: "#/definitions/ContactCreateOrUpdateResponse"
        "201":
          description: "Contact successfully created."
          schema:
            $ref: "#/definitions/ContactCreateOrUpdateResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. You sent simultaneous requests that are attempting\
            \ to modify the same contact."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contacts/contact_id_xrefs:
    get:
      tags:
      - "Contacts"
      summary: "GET a collection of V2 and V3 API contact IDs"
      description: "<div class=\"Msg Msg--warning\"><p class=\"note-text\">Use this\
        \ endpoint to migrate your locally stored V2 contact ids to the new V3 format.\
        \ Developers are expected to use this endpoint sparingly. This endpoint is\
        \ NOT intended for regular or repeated use. Constant Contact will eventually\
        \ deprecate and remove this endpoint.</p></div>\n\nThis GET call retrieves\
        \ a collection of cross-referenced contact sequence IDs (`id` used in the\
        \ V2 API) and UUIDs (`contact_id` used in the V3 API). This endpoint is intended\
        \ for developers who have an existing V2 API integration, and are migrating\
        \ their users to a new V3 API integration. The V2 and V3 APIs use different\
        \ resource ID formats. Use the `sequence_ids` query parameter to specify a\
        \ set of comma delimited V2 contacts ids to cross-referenced with their V3\
        \ `contact_ids`. See [Migrating to V3](/api_guide/migration_overview.html)\
        \ to learn more."
      operationId: "getContactIdXrefs"
      produces:
      - "application/json"
      parameters:
      - name: "sequence_ids"
        in: "query"
        description: "Comma delimited list of V2 API contact `ids` to cross-reference\
          \ with the V3 API `contact_id` value. Endpoint accepts a maximum of 500\
          \ ids at a time."
        required: true
        type: "string"
        maxItems: 500
        format: "csv"
        x-example: "1995998026,1882999944,1775099999"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactXrefs"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
  /contact_custom_fields/{custom_field_id}:
    get:
      tags:
      - "Contacts Custom Fields"
      summary: "GET a custom_field"
      description: "This GET call retrieves a `custom_field` resource, specified by\
        \ `custom_field_id`."
      operationId: "getCustomField"
      produces:
      - "application/json"
      parameters:
      - name: "custom_field_id"
        in: "path"
        description: "Unique ID of the `custom_field` on which to operate."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/CustomFieldResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
    put:
      tags:
      - "Contacts Custom Fields"
      summary: "PUT (update) a custom_field"
      description: "This PUT request updates an existing `custom_field` object."
      operationId: "putCustomField"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "custom_field_id"
        in: "path"
        description: "Unique ID of the `custom_field` on which to operate."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      - in: "body"
        name: "body"
        description: "The JSON payload used to update an existing custom field. Any\
          \ properties omitted in the PUT request are overwritten with a null value."
        required: true
        schema:
          $ref: "#/definitions/CustomFieldInput"
      responses:
        "200":
          description: "Success - custom_field updated"
          schema:
            $ref: "#/definitions/CustomFieldResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "updateCustomField"
    delete:
      tags:
      - "Contacts Custom Fields"
      summary: "DELETE a custom_field"
      description: "This DELETE request deletes a custom_field from the user's account"
      operationId: "deleteCustomField"
      consumes:
      - "application/json"
      parameters:
      - name: "custom_field_id"
        in: "path"
        description: "Unique ID of the custom_field on which to operate."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "204":
          description: "Request successful; No content returned"
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contact_custom_fields:
    get:
      tags:
      - "Contacts Custom Fields"
      summary: "GET custom_fields Collection"
      description: "This GET request returns all `custom_fields` defined in the user's\
        \ account.\n<div class=\"Msg\"><p class=\"note-text\">This method does not\
        \ currently support filtering results using the custom field update date.</p></div>"
      operationId: "getCustomFields"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Specifies the number of results displayed per page of output,\
          \ from 1 - 100, default = 50."
        required: false
        type: "integer"
        default: 50
        maximum: 100
        minimum: 1
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/CustomFields"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
      x-sdk-methodName: "getAllCustomFields"
    post:
      tags:
      - "Contacts Custom Fields"
      summary: "POST (create) a custom_field"
      description: "This POST request adds a new `custom_field` to the user's account.\
        \ A user can configure up to 100 `custom_fields` in their account."
      operationId: "postCustomFields"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload required to create a new `custom_field`"
        required: true
        schema:
          $ref: "#/definitions/CustomFieldInput"
      responses:
        "201":
          description: "New custom_field successfully created"
          schema:
            $ref: "#/definitions/CustomFieldResource"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type; the payload must be in JSON format,\
            \ and Content-Type must be application/json."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
      x-sdk-methodName: "createCustomFields"
  /contact_lists/{list_id}:
    get:
      tags:
      - "Contact Lists"
      summary: "GET a List"
      description: "Use this method to get details about a specific contact list (`list_id`)."
      operationId: "getList"
      produces:
      - "application/json"
      parameters:
      - name: "list_id"
        in: "path"
        description: "The system generated ID that uniquely identifies a contact list."
        required: true
        type: "string"
        format: "uuid"
        x-example: "cbc05bac-6a41-46fa-a063-79961763bf4b"
      - name: "include_membership_count"
        in: "query"
        description: "Returns the total number of contacts per list that meet your\
          \ selection criteria. Set the `include_membership_count` to `active`, to\
          \ count only active contacts, or `all` to include all contacts in the count."
        required: false
        type: "string"
        enum:
        - "all"
        - "active"
        x-example: "all"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactList"
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:read"
    put:
      tags:
      - "Contact Lists"
      summary: "PUT (update) a List"
      description: "Updates an existing contact list resource, specified by `list_id`"
      operationId: "putList"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "list_id"
        in: "path"
        description: "Unique ID of the contact list to update"
        required: true
        type: "string"
        format: "uuid"
        x-example: "cbc05bac-6a41-46fa-a063-79961763bf4b"
      - in: "body"
        name: "JSON PUT body"
        description: "JSON payload containing updates to the specified contact list"
        required: true
        schema:
          $ref: "#/definitions/ListInput"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactListPutPost"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
      x-sdk-methodName: "updateList"
    delete:
      tags:
      - "Contact Lists"
      summary: "DELETE a List"
      description: "Deletes the specified contact list and its membership. DELETE\
        \ List requests are processed asynchronously, and you can track the status\
        \ of the request by making a GET call to the URI shown in the `_links` property\
        \ in the response."
      operationId: "deleteListActivity"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "list_id"
        in: "path"
        description: "Unique ID of the list to delete"
        required: true
        type: "string"
        format: "uuid"
        x-example: "cbc05bac-6a41-46fa-a063-79961763bf4b"
      responses:
        "202":
          description: "Accepted"
          headers:
            Location:
              type: "string"
              description: "URL to retrieve the delete activity status"
          schema:
            $ref: "#/definitions/ActivityDeleteListResponse"
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
      x-sdk-methodName: "deleteList"
  /contact_lists:
    get:
      tags:
      - "Contact Lists"
      summary: "GET Lists Collection"
      description: "Use this method to return details about all contact lists for\
        \ the account.\n<div class=\"Msg\"><p class=\"note-text\">This method does\
        \ not currently support filtering results using the contact list update date.</p></div>"
      operationId: "getLists"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Use to specify the number of results displayed per page of output,\
          \ from 1 - 500, default = 50."
        required: false
        type: "integer"
        default: 50
        maximum: 1000
        minimum: 1
      - name: "include_count"
        in: "query"
        description: "Set `include_count` to `true` to return the total number of\
          \ contact lists that meet your selection criteria."
        required: false
        type: "boolean"
        default: false
        x-example: true
      - name: "include_membership_count"
        in: "query"
        description: "Use to include the total number of contacts per list. Set to\
          \  `active`, to count only active (mailable) contacts, or `all` to count\
          \ all contacts."
        required: false
        type: "string"
        enum:
        - "all"
        - "active"
        x-example: "all"
      - name: "name"
        in: "query"
        description: "Use to get details for a single list by entering the full name\
          \ of the list."
        required: false
        type: "string"
        x-example: "TopTier"
      - name: "status"
        in: "query"
        description: "Use to get lists by status. Accepts comma-separated status values."
        required: false
        type: "string"
        enum:
        - "all"
        - "active"
        - "deleted"
        x-example: "all"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactListArray"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:read"
      x-sdk-methodName: "getAllLists"
    post:
      tags:
      - "Contact Lists"
      summary: "POST (create) a List"
      description: "Create a new contact list resource"
      operationId: "createList"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "JSON payload defining the new contact list"
        required: true
        schema:
          $ref: "#/definitions/ListInput"
      responses:
        "201":
          description: "New list successfully created"
          schema:
            $ref: "#/definitions/ContactListPutPost"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:write"
  /contact_lists/list_id_xrefs:
    get:
      tags:
      - "Contact Lists"
      summary: "GET a collection of V2 and V3 API List IDs"
      description: "<div class=\"Msg Msg--warning\"><p class=\"note-text\">Use this\
        \ endpoint to migrate your locally stored V2 contact list data to the new\
        \ V3 format. Developers are expected to use this endpoint sparingly. This\
        \ endpoint is NOT intended for regular or repeated use. Constant Contact will\
        \ eventually deprecate and remove this endpoint.</p></div>\n\nThis GET call\
        \ retrieves a collection of cross-referenced list sequence IDs (`id` used\
        \ in the V2 API) and UUIDs (`list_id` used in the V3 API). This endpoint is\
        \ intended for developers who have an existing V2 API integration, and are\
        \ migrating their users to a new V3 API integration. The V2 and V3 APIs use\
        \ different resource ID formats. Use the `sequence_ids` query parameter to\
        \ specify a set of comma delimited V2 list ids to cross-reference. See [Migrating\
        \ Apps and Data to V3](/api_guide/migration_overview.html) to learn more.\""
      operationId: "getListIdXrefs"
      produces:
      - "application/json"
      parameters:
      - name: "sequence_ids"
        in: "query"
        description: "Comma delimited list of V2 API list `ids` to cross-reference\
          \ with the V3 API `list_id` value. Endpoint accepts a maximum of 500 ids\
          \ at a time."
        required: true
        type: "string"
        maxItems: 500
        format: "csv"
        x-example: "1995998026,1882999944,1775099999"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ListXrefs"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:lists:read"
  /contacts/sms_engagement_history/{contact_id}:
    get:
      tags:
      - "Contacts"
      summary: "GET SMS Engagement History for a Contact"
      description: "Use this method to return SMS engagement details for a contact,\
        \ such as SMS consent and advertising frequency details."
      operationId: "getSmsEngagementHistory"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "The contact's unique ID."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/SmsEngagementHistory"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
  /contacts/counts:
    get:
      tags:
      - "Contacts"
      summary: "GET Contact Consent Counts"
      description: "Use to get the total contacts count for the account and the total\
        \ contact-consent counts for each consent state. Optionally, to include the\
        \ total number of contacts that subscribed within the last 30 days in the\
        \ results, use `new_subscribers` in the `include` query parameter. To optimize\
        \ open rates, reduce spam reports, and help grow your business,  you must\
        \ value your contact's consent to receive or to not receive your emails."
      operationId: "countContact"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "include"
        in: "query"
        description: "Use to return the total number of contacts that subscribed within\
          \ the last 30 days in the results."
        required: false
        type: "string"
        enum:
        - "new_subscriber"
        x-example: "new_subscriber"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/ContactsCounts"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
      x-sdk-methodName: "getContactCounts"
  /contacts/resubscribe/{contact_id}:
    put:
      tags:
      - "Contacts"
      summary: "PUT Resubscribe a Contact"
      description: "Use this endpoint to send a confirmation resubscribe email to\
        \ a contact in order to get their confirmation to resubscribe. This endpoint\
        \ also adds the resubscribed contact to the contact lists you specify in the\
        \ request body. You can only send a resubscribe email to the unsubscribed\
        \ contact once. The contact is not resubscribed until after you receive their\
        \ confirmation. "
      operationId: "resubscribeContact"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "The ID that uniquely identifies the contact to resubscribe."
        required: true
        type: "string"
        x-example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
      - in: "body"
        name: "body"
        description: "The JSON payload used to specify one (or more) contact lists\
          \ to which the contact requested to be resubscribed."
        required: true
        schema:
          $ref: "#/definitions/ContactResubscribeRequest"
        x-example: "50429486-338f-11ed-a355-fa163ef30863"
      responses:
        "200":
          description: "Contact resource has been updated."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contact_tags/{tag_id}:
    get:
      tags:
      - "Contact Tags"
      summary: "GET Tag Details"
      description: "Use this method to get tag details for a specified `tag_id`. Use\
        \ the `include_count` query parameter to include or exclude the total number\
        \ of contacts to which this tag is assigned. To learn more, see  [Get a Tag's\
        \ Details](/api_guide/tags_get_single.html)."
      operationId: "getTag"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "tag_id"
        in: "path"
        description: "The ID that uniquely identifies a tag (UUID format)."
        required: true
        type: "string"
        format: "uuid"
        x-example: "d938260a-af1e-11e9-a540-fa163e595123"
      - name: "include_count"
        in: "query"
        description: "Use to include (`true`) or exclude (`false`) the total number\
          \ of tagged contacts (`contacts_count`) from the results."
        required: false
        type: "boolean"
        default: false
        x-example: true
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Tag"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
        oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
    put:
      tags:
      - "Contact Tags"
      summary: "PUT (Update) a Tag"
      description: "Use this method to rename an existing tag to a new unique tag\
        \ name (`name`). The maximum length is 255 characters. The `tag_source` value\
        \ cannot be updated using this method. You can set the `tag_source` value\
        \ using the `POST contact_tags method`. [Learn more](/api_guide/tags_update.html)"
      operationId: "putTag"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "tag_id"
        in: "path"
        description: "The system generated ID used to uniquely identify the tag that\
          \ you want to rename (UUID format)."
        required: true
        type: "string"
        format: "uuid"
        x-example: "30c97dd0-332e-11eb-923c-fa163e595327"
      - in: "body"
        name: "body"
        description: "The JSON payload used to update the tag name (`name`)."
        required: true
        schema:
          $ref: "#/definitions/TagPut"
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Tag"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
    delete:
      tags:
      - "Contact Tags"
      summary: "DELETE a Tag"
      description: "Use this method to create an activity used to un-assign a tag\
        \ from all assigned contacts and delete the tag. This is an asynchronous activity.\
        \ To view activity details for the delete request, use the href link returned\
        \ in the response. [Learn more](/api_guide/tags_delete.html)."
      operationId: "deleteTag"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "tag_id"
        in: "path"
        description: "The ID that uniquely identifies a tag in UUID format."
        required: true
        type: "string"
        format: "uuid"
        x-example: "30c97dd0-332e-11eb-923c-fa163e595327"
      responses:
        "202":
          description: "The asynchronous request was successfully accepted. To view\
            \ the results of the activity request, use the href link returned in the\
            \ response."
          schema:
            $ref: "#/definitions/ActivityGeneric"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "406":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
        oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /contact_tags:
    get:
      tags:
      - "Contact Tags"
      summary: "GET Details for All Tags"
      description: "Use this endpoint to get details for all tags in your account.\
        \ Use the <code>include_count</code> query parameter to include the total\
        \ number of contacts assigned each tag. Use the <code>limit</code> query parameter\
        \ to limit the number of tag results returned per page. To get the next page\
        \ of results, copy the <code>cursor={the cursor ID}</code> from the resulting\
        \ href link and add it (<code>&</code>) to the URL. For example:\n\n<p><code>/v3/contact_tags?limit=1&cursor=</code></p><p><code>bGltaXQ9MSZuZXh0PTJjZDgwMjdhLTc4YzAtMTFlOS1iZmQwLWZhMTYzZTZiMDFjMQ=</code></p>\n\
        To learn more, see [Get Tags](/api_guide/tags_get.html)."
      operationId: "getTags"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Use to specify the number of tag results (up to `500`) to display\
          \ per page of output. The default is `50`."
        required: false
        type: "integer"
        default: 50
        maxLength: 500
        minLength: 1
        x-example: 25
      - name: "include_count"
        in: "query"
        description: "Returns the total number of contacts (`contacts_count`) to which\
          \ a tag applies."
        required: false
        type: "boolean"
        default: false
        x-example: true
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Tags"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
        oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:read"
      x-sdk-methodName: "getAllTags"
    post:
      tags:
      - "Contact Tags"
      summary: "POST (Create) a Tag"
      description: "Use this method to create a new tag. The tag `name` is required\
        \ and must be unique and can include most common keyboard symbols. Optionally,\
        \ when creating a new tag you can specify the source (`tag_source`) used to\
        \ identify the contacts to tag in the request body. [Learn more](/api_guide/tags_create.html)."
      operationId: "postTag"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "The JSON payload to use to create a new tag."
        required: true
        schema:
          $ref: "#/definitions/TagPost"
      responses:
        "201":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/Tag"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "contacts:write"
  /emails:
    get:
      tags:
      - "Email Campaigns"
      summary: "GET a Collection of Email Campaigns"
      description: "Use this method to list and get details about your email campaigns.\
        \ By default, this method returns all email campaigns for the user account\
        \ including deleted email campaigns. To get email campaigns within a date-range,\
        \ use the `after_date` and `before_date` query parameters.\n\nThis endpoint\
        \ does not return campaign activity details for each email campaign in the\
        \ collection. To get email campaign activity details for a single email campaign,\
        \ use the GET `/emails/{campaign_id}` endpoint.\"\n<div class=\"Msg\"><p class=\"\
        note-text\">This method does not currently support filtering results using\
        \ the email campaign creation date.</p></div>\n"
      operationId: "retrieveEmailCampaignsUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Specifies the number of campaigns to display on each page of\
          \ output that is returned (from return 1 - 500). The default returns 50\
          \ campaigns per page."
        required: false
        type: "integer"
        default: 50
        format: "int32"
      - name: "before_date"
        in: "query"
        description: "Use to return email campaigns with `updated_at` timestamps that\
          \ are before a specific date and time (in ISO-8601 format). Use with the\
          \ `after_date` query parameter to get email campaigns sent within a specific\
          \ date range."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2021-01-10T11:42:57.000Z"
      - name: "after_date"
        in: "query"
        description: "Use to return email campaigns with last `updated_at` timestamps\
          \ that are after a specific date and time (in ISO-8601 format). Use with\
          \ the `before_date` query parameter to get email campaigns sent within a\
          \ specific date range."
        required: false
        type: "string"
        format: "date-time"
        x-example: "2021-03-10T11:42:57.000Z"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/PagedEmailCampaignResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getAllEmailCampaigns"
    post:
      tags:
      - "Email Campaigns"
      summary: "POST (Create) a New Email Campaign"
      description: "Use this method to create a new email campaign. This method also\
        \ creates new `primary_email` and `permalink` email campaign activities and\
        \ associates them with the new email campaign.\n\nThe request body must contain\
        \ the `name` property and the `email_campaign_activities` array. The `name`\
        \ must be unique. The `email_campaign_activities` array contains the main\
        \ content of your email campaign and must include `format_type`, `from_name`,\
        \ `from_email`, `reply_to_email`, `subject`, and `html_content` properties.\
        \ The `from_email` address you use must use a verified email address for your\
        \ account.\nNOTE: If you create an email campaign using a legacy (V7) format,\
        \ Constant Contact automatically converts it to the newer custom code format.\n"
      operationId: "createEmailCampaignUsingPOST"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "A JSON request body that contains the email content."
        required: true
        schema:
          $ref: "#/definitions/EmailCampaignComplete"
      responses:
        "200":
          description: "Request successful. NOTE: If you created an email campaign\
            \ using a legacy (V7) format, Constant Contact successfully converted\
            \ it to the newer custom code format."
          schema:
            $ref: "#/definitions/EmailCampaign"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:write"
      x-sdk-methodName: "createEmailCampaign"
  /emails/{campaign_id}:
    get:
      tags:
      - "Email Campaigns"
      summary: "GET Details About a Single Email Campaign"
      description: "Use this method to get details about a single email campaign and\
        \ campaign related activities. Details include the email campaign name, current\
        \ status, create date, last update date, and a list of campaign activities;\
        \ including the `campaign_activity_id` and `role`."
      operationId: "retrieveEmailCampaignUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_id"
        in: "path"
        description: "The ID (UUID format) that uniquely identifies this email campaign."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailCampaign"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignById"
    delete:
      tags:
      - "Email Campaigns"
      summary: "DELETE an Email Campaign"
      description: "Use this method to delete an email campaign and the email campaign\
        \ activities associated with the email campaign. You cannot delete an email\
        \ campaign when it has a `Scheduled` status.\n\nConstant Contact users can\
        \ restore deleted email campaigns using the UI.\n"
      operationId: "removeEmailCampaignUsingDELETE"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_id"
        in: "path"
        description: "The unique ID for the email campaign you are deleting."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "204":
          description: "Email campaign successfully deleted. No response body returned."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:delete"
      x-sdk-methodName: "deleteEmailCampaign"
    patch:
      tags:
      - "Email Campaigns"
      summary: "PATCH (Update) an Email Campaign Name"
      description: "Use this method to rename an email campaign. The name is not visible\
        \ to contacts. The name must be unique and cannot exceed 80 characters. You\
        \ cannot rename email campaigns that have a `Removed` status."
      operationId: "renameEmailCampaignUsingPATCH"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_id"
        in: "path"
        description: "The unique identifier for an email campaign."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "body"
        description: "A JSON payload that contains the new email campaign name."
        required: true
        schema:
          $ref: "#/definitions/EmailCampaignName"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailCampaign"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:write"
      x-sdk-methodName: "patchEmailCampaignName"
  /emails/campaign_id_xrefs:
    get:
      tags:
      - "Email Campaigns"
      summary: "GET a Collection of V2 and V3 API Email Campaign Identifiers"
      description: "<div class=\"Msg Msg--warning\"><p class=\"note-text\">Use this\
        \ endpoint to migrate your locally stored V2 email campaign data to the new\
        \ V3 format. Developers are expected to use this endpoint sparingly. This\
        \ endpoint is NOT intended for regular or repeated use. Constant Contact will\
        \ eventually deprecate and remove this endpoint.</p></div>\n\nUse this method\
        \ to migrate your local V2 API email data to the V3 API format. For each value\
        \ that you provide in the `v2_email_campaign_ids` query parameter, this method\
        \ returns the corresponding V3 `campaign_id` and V3 `campaign_activity_id`\
        \ UUID value. For more information on the changes to the email campaign resource\
        \ model, see [V3 Email Campaign Resource Changes](/api_guide/v3_v2_email_campaign_deltas.html)\
        \ in the API guide.\n"
      operationId: "retrieveXrefMappingsUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "v2_email_campaign_ids"
        in: "query"
        description: "Comma separated list of V2 API `campaignId` values. You can\
          \ enter up to 50 V2 `campaignId` values in each request."
        required: true
        type: "string"
        maxItems: 50
        format: "csv"
        x-example: "1100567546598,1604567396117,12002485195578"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/CrossReferenceResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignXrefs"
  /emails/activities/{campaign_activity_id}:
    get:
      tags:
      - "Email Campaigns"
      summary: "GET a Single Email Campaign Activity"
      description: "Use this method to return a specific email campaign activity.\
        \ Each email campaign activity contains the email content, metadata, and styling\
        \ information of an email. Email campaign activities can also contain either\
        \ contact lists or segments. Constant Contact uses this information to determine\
        \ who to send the email campaign activity to when you schedule it. You cannot\
        \ get email campaign activities that have a `REMOVED` status.\n"
      operationId: "retrieveEmailCampaignActivityUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - name: "include"
        in: "query"
        description: "Use the `include` query parameter to enter a comma separated\
          \ list of additional email campaign activity properties for the V3 API to\
          \ return. Valid values are `physical_address_in_footer`, `permalink_url`,\
          \ `html_content`, and `document_properties`."
        required: false
        type: "string"
        format: "csv"
        enum:
        - "physical_address_in_footer"
        - "permalink_url"
        - "html_content"
        - "document_properties"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailCampaignActivity"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignActivity"
    put:
      tags:
      - "Email Campaigns"
      summary: "PUT (Update) An Email Campaign Activity"
      description: "Use this method to update an email campaign activity by including\
        \ the complete email campaign activity with your changes in the request body.\
        \ The request body requires the `from_name`, `from_email`, `reply_to_email`,\
        \ and `subject` properties.\n\nYou can only update email campaign activities\
        \ that have the `primary_email` role and that are in `DRAFT` or `Done` status.\n\
        When you use a PUT method to update a resource, the V3 API overwrites any\
        \ properties that are missing in the request body. However, the V3 API does\
        \ not overwrite subresources that you omit in the request body or missing\
        \ properties in subresources. This method considers `physical_address_in_footer`,\
        \ `document_properties`, `html_content`, and `permalink_url` subresources\
        \ of the email campaign activity.\n"
      operationId: "updateEmailCampaignActivityUsingPUT"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the email campaign activity you are updating."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "body"
        description: "A request body payload that contains the complete email campaign\
          \ activity with your changes."
        required: true
        schema:
          $ref: "#/definitions/EmailCampaignActivity"
      responses:
        "200":
          description: "Email campaign activity successfully updated."
          schema:
            $ref: "#/definitions/EmailCampaignActivity"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:write"
      x-sdk-methodName: "updateEmailCampaignActivity"
  /emails/activities/{campaign_activity_id}/schedules:
    get:
      tags:
      - "Email Scheduling"
      summary: "GET an Email Campaign Activity Schedule"
      description: "Use this method to return the current schedule for an email campaign\
        \ activity. This schedule contains the date that Constant Contact will send\
        \ the email campaign activity to contacts. If the email campaign activity\
        \ is not in `SCHEDULED` status, this method returns an empty array and a 200\
        \ response code."
      operationId: "retrieveEmailSchedulesUsingGET"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity."
        required: true
        type: "string"
        format: "uuid"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailScheduleResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignActivitySchedule"
    post:
      tags:
      - "Email Scheduling"
      summary: "POST (Create) an Email Campaign Activity Schedule"
      description: "Use this method to schedule when Constant Contact will send an\
        \ email campaign activity to contacts. Use the `scheduled_date` request body\
        \ property to enter the ISO-8601 format date that you want Constant Contact\
        \ to send the email campaign activity on. \n\nBefore you schedule an email\
        \ campaign activity, you must update the email campaign activity and specify\
        \ which contacts you want Constant Contact to send the email to. When you\
        \ make a PUT call to update an email campaign activity, use the `contact_list_ids`\
        \ or `segment_ids` array to add contacts.\n\nYou can only schedule email campaign\
        \ activities that have the `primary_email` role and are in `DRAFT`, `DONE`,\
        \ or `ERROR` status. When you schedule an email campaign activity in `DONE`\
        \ status, Constant Contact does not send the email campaign activity to contacts\
        \ that already received it. Constant Contact only sends the email campaign\
        \ activity to any new contacts in the contact lists or segment you use.\n"
      operationId: "scheduleEmailCampaignActivityUsingPOST"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity. You can only schedule\
          \ email campaign activities that have the `primary_email` role."
        required: true
        type: "string"
        format: "uuid"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "body"
        description: "A request body payload that contains the date that you want\
          \ Constant Contact to send your email campaign activity on. Use `\"0\"`\
          \ as the date to have Constant Contact immediately send the email campaign\
          \ activity."
        required: true
        schema:
          $ref: "#/definitions/EmailScheduleInput"
      responses:
        "201":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailScheduleResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:send"
      x-sdk-methodName: "scheduleEmailCampaignActivity"
    delete:
      tags:
      - "Email Scheduling"
      summary: "DELETE an Email Campaign Activity Schedule"
      description: "Use this method to unschedule an email campaign activity by deleting\
        \ the schedule. You can only unschedule email campaign activities that are\
        \ in `SCHEDULED` status. Unscheduling reverts the email campaign activity\
        \ to the status prior to `SCHEDULED`."
      operationId: "unscheduleEmailCampaignActivityUsingDELETE"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity."
        required: true
        type: "string"
        format: "uuid"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "204":
          description: "Email campaign activity schedule successfully deleted. No\
            \ response body returned."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:send"
      x-sdk-methodName: "unscheduleEmailCampaignActivity"
  /emails/activities/{campaign_activity_id}/tests:
    post:
      tags:
      - "Email Scheduling"
      summary: "POST Test Send an Email Campaign Activity"
      description: "Use this method to send a test email to specific email addresses.\
        \ Test emails allow you to verify how the email campaign activity will look\
        \ before you send it to contacts. This method uses the `email_addresses` array\
        \ in the request body to determine the recipients of the test email. The test\
        \ email does not process any dynamic content in the email campaign activity.\
        \ Dynamic content includes contact and custom field variables.\n\nYou can\
        \ send up to 50 test emails each day. Each recipient you add to the `email_addresses`\
        \ array in the request body counts towards this limit. Successfully sending\
        \ a test email returns a 204 response code without a response body.\n"
      operationId: "testSendCampaignActivityUsingPOST"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity. You can only test\
          \ send email campaign activities that have the `primary_email` role."
        required: true
        type: "string"
        format: "uuid"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "email_test_send_input"
        description: "A JSON request body that contains the recipients of the test\
          \ email and an optional personal message."
        required: true
        schema:
          $ref: "#/definitions/EmailTestSendInput"
      responses:
        "204":
          description: "Test email campaign activity successfully sent. No response\
            \ body returned."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:send"
      x-sdk-methodName: "testSendEmailCampaignActivity"
  /emails/activities/{campaign_activity_id}/previews:
    get:
      tags:
      - "Email Scheduling"
      summary: "GET the HTML Preview of an Email Campaign Activity"
      description: "Use this method to get the HTML preview of an email campaign activity.\
        \ The HTML preview allows you to verify how the email campaign activity will\
        \ look before you send it to contacts.\n\nCustom code emails (`format_type`\
        \ 5) use the Constant Contact account owner's contact information to process\
        \ contact, custom field, and account variables in the preview.\n\nThis method\
        \ returns the HTML preview encoded as a JSON string. You will need to decode\
        \ the string before you can use it as valid HTML.\n"
      operationId: "retrieveEmailCampaignActivityPreviewUsingGET"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity."
        required: true
        type: "string"
        format: "uuid"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailCampaignActivityPreview"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignActivityPreview"
  /emails/activities/{campaign_activity_id}/send_history:
    get:
      tags:
      - "Email Scheduling"
      summary: "GET the Send History of an Email Campaign Activity"
      description: "Use this method to return the send history of an email campaign\
        \ activity. This method returns the send history as an array containing an\
        \ object for each time you sent a specific email campaign activity to contacts.\
        \ \n\nEach send history object contains the email campaign activity send date,\
        \ the number of contacts it was sent to, and the contact lists or segments\
        \ used to send it. Each send history object also includes if the send attempt\
        \ completed or encountered an error, and the reason why each error occurred.\
        \ This method returns results in ascending order starting with the first send\
        \ attempt. \n\nIf the email campaign activity has not been sent to contacts,\
        \ this method returns a 200 response and an empty array.\n"
      operationId: "retrieveEmailSendHistoryUsingGET"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity. You can return\
          \ the send history for `primary_email` and `resend` role email campaign\
          \ activities."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/EmailSendHistory"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getEmailCampaignActivitySendHistory"
  /emails/activities/{campaign_activity_id}/non_opener_resends:
    get:
      tags:
      - "Email Campaigns"
      summary: "GET Details for a Resend to Non-openers Campaign Activity"
      description: "Get details about a resend to non-openers campaign activity. If\
        \ resend activity does not exist for the specified `campaign_activity_id`,\
        \ an empty list is returned in the results. You can only create one resend\
        \ activity per email campaign."
      operationId: "retrieveResendToNonOpenersUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/ResendToNonOpeners"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getResendEmailCampaign"
    post:
      tags:
      - "Email Campaigns"
      summary: "POST a Resend to Non-openers Campaign Activity"
      description: "Use this POST method to resend a primary campaign activity to\
        \ contacts that did not open a campaign activity that has a current `status`\
        \ of `Draft`, `Scheduled`, or `Done`. You can only create one resend activity\
        \ per email campaign.\n \n After an email campaign activity is sent to contacts,\
        \ Constant Contact waits the specified number of `delay_days` or `delay_minutes`\
        \ (properties are mutually exclusive) before resending to non-openers. If\
        \ you set both `delay_days` or `delay_minutes`, `delay_minutes` is ignored\
        \ in the request. You can resend to non-openers a minimum of twelve hours\
        \ (720 minutes) and a maximum of up to 10 days (or 10 x 1440 minutes) after\
        \ the initial send date.\n \n "
      operationId: "createResendToNonOpenersUsingPOST"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "resend_schedule"
        description: "A JSON request body that specifies when to resend the campaign\
          \ activity to non-openers."
        required: true
        schema:
          $ref: "#/definitions/ResendToNonOpenersInput"
      responses:
        "201":
          description: "Request successful."
          schema:
            $ref: "#/definitions/ResendToNonOpenersObject"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:send"
      x-sdk-methodName: "createResendEmailCampaign"
  /emails/activities/{campaign_activity_id}/non_opener_resends/{resend_request_id}:
    delete:
      tags:
      - "Email Campaigns"
      summary: "DELETE a Resend to Non Openers Activity"
      description: "Use this `DELETE` method to delete (unschedule) a resend to non\
        \ openers activity."
      operationId: "deleteResendToNonOpenersUsingDELETE"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - name: "resend_request_id"
        in: "path"
        description: "The unique ID associated with the resend for the email campaign\
          \ activity (for example: `389093`). If the email campaign activity is currently\
          \ in draft status, specify `DRAFT` as the ID."
        required: true
        type: "string"
        x-example: "389093"
      responses:
        "204":
          description: "Request successful."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:send"
      x-sdk-methodName: "deleteResendEmailCampaign"
  /emails/activities/{campaign_activity_id}/abtest:
    get:
      tags:
      - "Email Campaigns AB Tests"
      summary: "GET A/B Test Details for an Email Campaign Activity"
      description: "Use this method to get A/B test details for a primary email campaign\
        \ activity, such as the alternate email subject line, the contact test percentage\
        \ size, and the number of hours to wait to determine the winning subject line\
        \ to use. Currently, A/B tests support subject line only."
      operationId: "retrieveEmailCampaignABTestUsingGET"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/ABTestData"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:read"
      x-sdk-methodName: "getABTestEmailCampaign"
    post:
      tags:
      - "Email Campaigns AB Tests"
      summary: "POST (Create) an A/B Test for an Email Campaign Activity"
      description: "Use this method to create a new A/B test for a primary email campaign\
        \ activity. You must specify an alternative subject line, the percentage of\
        \ contact to use for the A/B test, and the number of hours to wait after the\
        \ A/B test is sent before determining the winning subject line. To create\
        \ an A/B test, the campaign must have a `current_status` of `DRAFT`. When\
        \ you create an A/B test, the `type` changes from Newsletter (code= `10`)\
        \ to A/B Test (code= `57`)."
      operationId: "createEmailCampaignABTestUsingPOST"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      - in: "body"
        name: "abtest"
        description: "Specify the `alternative_subject` line, `test_size` percentage\
          \ of contacts (value must from `5` to `50` inclusively), and the `winner_wait_duration`\
          \ (value must be `6`, `12`, `24`, or `48` hours)."
        required: true
        schema:
          $ref: "#/definitions/ABTestData"
      responses:
        "201":
          description: "Request successful."
          schema:
            $ref: "#/definitions/ABTestData"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:write"
      x-sdk-methodName: "createABTestEmailCampaign"
    delete:
      tags:
      - "Email Campaigns AB Tests"
      summary: "DELETE an A/B Test for an Email Campaign Activity"
      description: "Deletes an A/B Test on an primary email campaign activity. You\
        \ can only delete A/B tests that have a `current_status` of `Draft`. Deleting\
        \ an A/B tests reverts the email campaign activity `type` from A/B Test (code=\
        \ `57`) back to NewsLetter (code= `10`). Constant Contact uses the original\
        \ subject line, rather than the alternate A/B test subject line, when an A/B\
        \ test is deleted."
      operationId: "deleteEmailCampaignABTestUsingDELETE"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for the primary email campaign activity."
        required: true
        type: "string"
        x-example: "91569d46-00e4-4a4d-9a4c-d17d98740d04"
      responses:
        "204":
          description: "A/B test successfully deleted."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "429":
          description: "Too many requests. You exceeded the request rate limit."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "campaign:write"
      x-sdk-methodName: "deleteABTestEmailCampaign"
  /reports/contact_reports/{contact_id}/activity_details:
    get:
      tags:
      - "Contacts Reporting"
      summary: "GET Contact Activity Details"
      description: "<p>Gets the tracking activity data for a single contact, sorted\
        \ in descending activity date order.</p> <p>You must chose either the `tracking_activities_list`\
        \ query parameter and or the `tracking_activity_type` query parameter to specify\
        \ one or more tracking activity types In the request. The `tracking_activities_list`\
        \  and `tracking_activities_type` query parameters are mutually exclusive.</p>\n\
        \      <table><tr><td colspan='2'>Valid tracking activity types</td></tr>\n\
        \        <tr><td><b>em_sends</b></td><td>Send activities</td></tr>\n     \
        \   <tr><td><b>em_opens</b></td><td>Email open tracking activities</td></tr>\n\
        \        <tr><td><b>em_clicks</b></td><td>Link click-through tracking activities</td></tr>\n\
        \        <tr><td><b>em_bounces</b></td><td>Bounce tracking activities</td></tr>\n\
        \        <tr><td><b>em_optouts</b></td><td>Opt-out tracking activities</td></tr><tr>\n\
        \        <td><b>em_forwards</b></td><td>Forward to a friend tracking activities</td></tr>\n\
        \        <tr><td><b>p_contact_open</b></td><td>Landing page opens</td></tr>\n\
        \        <tr><td><b>p_contact_click</b></td><td>Landing page clicks</td></tr>\n\
        \        <tr><td><b>p_contact_add</b></td><td>Landing page adds</td></tr>\n\
        \        <tr><td><b>p_contact_update </b></td><td> Landing page updates</td></tr>\n\
        \      </table>"
      operationId: "getContactTracking"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "The contact's ID for which tracking activity data is requested."
        required: true
        type: "string"
        x-example: "aa9ff7b0-478d-11e6-8059-00163e3c8e19"
      - name: "tracking_activities_list"
        in: "query"
        description: "Specify one or more tracking activity types to include as a\
          \ comma-delimited string. The `tracking_activities_list`  and `tracking_activities_type`\
          \ query parameters are mutually exclusive."
        required: false
        type: "string"
        items:
          type: "string"
          enum:
          - "em_sends"
          - "em_opens"
          - "em_clicks"
          - "em_bounces"
          - "em_optouts"
          - "em_forwards"
          - "p_contact_open"
          - "p_contact_click"
          - "p_contact_add"
          - "p_contact_update"
        collectionFormat: "multi"
        format: "csv"
        x-example: "em_clicks,em_opens"
      - name: "tracking_activity_type"
        in: "query"
        description: "Specify one or more tracking activity types to include as an\
          \ array. The `tracking_activities_list`  and `tracking_activities_type`\
          \ query parameters are mutually exclusive."
        required: false
        type: "array"
        items:
          type: "string"
        x-example: "`tracking_activity_type=em_sends&tracking_activity_type=em_opens`"
      - name: "include_campaign_activity_names"
        in: "query"
        description: "Default (`true`) returns campaign activity names in the results.\
          \ Not including campaign activity names in the results (`false`), is more\
          \ efficient."
        required: false
        type: "boolean"
        default: true
        x-example: "true"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return in a single page.\
          \ Valid values are 1 to 100. Default is 100."
        required: false
        type: "string"
        default: "100"
        maximum: 100
        minimum: 1
        x-example: "20"
      responses:
        "200":
          description: "successful operation"
          schema:
            $ref: "#/definitions/ContactTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getContactTrackingReport"
  /reports/contact_reports/{contact_id}/open_and_click_rates:
    get:
      tags:
      - "Contacts Reporting"
      summary: "GET Average Open and Click Rates"
      description: "<p>Gets the average open and click rate for a given account and\
        \ contact.<p>Looks at all tracking activities for bulk emails from a given\
        \ contact over the given date range. Range cannot exceed 5 years.</p><p>Returns\
        \ the rates and the number of campaign activities that were included in the\
        \ calculation.</p><p>If no activities fall into the given date range, all\
        \ rates will return 0 and the number of included activities will be 0.</p>"
      operationId: "getContactOpenClickRate"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "The contact id which is requesting tracking activity data (e.g.\
          \ aa9ff7b0-478d-11e6-8059-00163e3c8e19)"
        required: true
        type: "string"
        x-example: "aa9ff7b0-478d-11e6-8059-00163e3c8e19"
      - name: "start"
        in: "query"
        description: "The starting date, in ISO 8601 format, to use to get campaigns.\
          \ For example: 2019-01-01T00:00:00-0500."
        required: true
        type: "string"
      - name: "end"
        in: "query"
        description: "The ending date, in ISO 8601 format, to use to get campaigns.\
          \ For example: 2019-12-01T00:00:00-0500."
        required: true
        type: "string"
      responses:
        "200":
          description: "Request Successful"
          schema:
            $ref: "#/definitions/ContactOpenAndClickRates"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getContactOpenClickRateReport"
  /reports/contact_reports/{contact_id}/activity_summary:
    get:
      tags:
      - "Contacts Reporting"
      summary: "GET Contact Action Summary"
      description: "Get a list of the recent emails (aka, campaign activities) sent\
        \ to a specific contact and a summary of the actions the contact took on that\
        \ email for the most recent 200 campaigns."
      operationId: "getContactTrackingCount"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "contact_id"
        in: "path"
        description: "The contact id which is requesting tracking activity data (e.g.\
          \ aa9ff7b0-478d-11e6-8059-00163e3c8e19)"
        required: true
        type: "string"
        x-example: "aa9ff7b0-478d-11e6-8059-00163e3c8e19"
      - name: "start"
        in: "query"
        description: "The starting date, in ISO 8601 format, to use to get campaigns.\
          \ For example: 2019-01-01T00:00:00-0500."
        required: true
        type: "string"
      - name: "end"
        in: "query"
        description: "The ending date, in ISO 8601 format, to use to get campaigns.\
          \ For example: 2019-12-01T00:00:00-0500."
        required: true
        type: "string"
      responses:
        "200":
          description: "successful operation"
          schema:
            $ref: "#/definitions/ContactCampaignActivitiesSummary"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "contact_data"
      - oauth2_access_code:
        - "contact_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getContactTrackingCountReport"
  /reports/email_reports/{campaign_activity_id}/links:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Links Report"
      description: "Use this method to return link details, including the number of\
        \ unique contacts that clicked each link in an email campaign activity, and\
        \ the type of action associated with clicking each link. To include link details\
        \ for links that were not clicked, set the `no_clicks` query parameter to\
        \ `true`.\n\nYou can return reporting data for `primary_email` and `resend`\
        \ role email campaign activities. For more use case information, see [Get\
        \ an Email Links Report](/api_guide/email_links_report.html) in the API guide."
      operationId: "getCampaignActivityLinkStats"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity."
        required: true
        type: "string"
        format: "uuid"
        x-example: "8892baf9-970a-4de6-8400-fa4ec461987c"
      - name: "no_clicks"
        in: "query"
        description: "Set this query parameter to `true` to  return details for links\
          \ that were not clicked in the response results."
        required: false
        type: "boolean"
        default: false
        x-example: "true"
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/EmailLinks"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getCampaignActivityLinkReport"
  /reports/email_reports/{campaign_activity_id}/tracking/sends:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Sends Report"
      description: "Use this method to get each contact that was sent a specific email\
        \ campaign activity. This sends report includes general contact data such\
        \ as the date and time that the email campaign activity was sent to a contact's\
        \ email address, the contact's first and last name, and unique ID. This report\
        \ lists the most recent activity first. For more use case information, see\
        \ [Get an Sends report for an Email Campaign Activity](/api_guide/email_summary_sends_report.html)\
        \ in the API guide."
      operationId: "getSends"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity to use for this\
          \ report."
        required: true
        type: "string"
        format: "uuid"
        x-example: "8892baf9-970a-4de6-8400-fa4ec461987c"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/SendsTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getEmailSendsReport"
  /reports/email_reports/{campaign_activity_id}/tracking/opens:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Opens Report"
      description: "Use this method to get each time a contact opened a specific email\
        \ campaign activity. This report includes general contact information such\
        \ as the contact's email address and unique ID, the date and time they opened\
        \ the email campaign activity, and the type of device they used to open it.\
        \ This report lists the most recent activity first. For more use case information,\
        \ see [Get an Opens report for an Email Campaign Activity](/api_guide/email_summary_opens_report.html)\
        \ in the API guide."
      operationId: "getOpens"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The unique ID for an email campaign activity to use for this\
          \ report."
        required: true
        type: "string"
        format: "uuid"
        x-example: "8892baf9-970a-4de6-8400-fa4ec461987c"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/OpensTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getEmailOpensReport"
  /reports/email_reports/{campaign_activity_id}/tracking/unique_opens:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Unique Opens Report"
      description: "Use this method to get a unique opens report that provides details\
        \ about the last time that each contact opened the specified email campaign\
        \ activity. This report includes general contact information such as the contact's\
        \ email address and unique ID, the date and time they opened the email campaign\
        \ activity, and the type of device they used to open it. This report lists\
        \ the most recent activity first. For more use case information, see [Get\
        \ an Unique Opens Report for an Email Campaign Activity](/api_guide/email_summary_unique_opens_report.html)\
        \ in the API guide."
      operationId: "getUniqueOpens"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
        x-example: "8892baf9-970a-4de6-8400-fa4ec461987c"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/OpensTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getUniqueOpensReport"
  /reports/email_reports/{campaign_activity_id}/tracking/didnotopens:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Did Not Opens Report"
      description: "Use this method to get a report listing each contact that was\
        \ sent, but did not open the specified email campaign activity. This report\
        \ lists contact information such as the contact's email address and unique\
        \ ID, and the date and time that the email campaign activity was sent. This\
        \ report lists the most recent activity first. For more use case information,\
        \ see [Get a Did Not Opens Report for an Email Campaign Activity](/api_guide/email_summary_non_opens_report.html)\
        \ in the API guide."
      operationId: "getDidNotOpens"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
        x-example: "8892baf9-970a-4de6-8400-fa4ec461987c"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/DidNotOpensTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getDidNotOpensReport"
  /reports/email_reports/{campaign_activity_id}/tracking/clicks:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Clicks Report"
      description: "Use this method to get each time a contact clicked a link, the\
        \ click date and time, and the device type they used. Use the `url_id` query\
        \ parameter to get a clicks report for a specific link URL. Clicks report\
        \ data is sorted with most recent activity listed first."
      operationId: "getClicks"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
        x-example: "c8cdf384-15ca-4dcc-9b6f-4c91121fdc23"
      - name: "url_id"
        in: "query"
        description: "The ID that uniquely identifies a single link URL for which\
          \ you want to get a clicks report."
        required: false
        type: "integer"
        format: "int64"
        x-example: "49920742166"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/ClicksTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getClicksReport"
  /reports/email_reports/{campaign_activity_id}/tracking/forwards:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Forwards Report"
      description: "Use this method to get a report listing each time a contact forwarded\
        \ the email campaign activity using the forwarding link in the email footer.\
        \ The report includes general contact information, such as the contact's email\
        \ address and unique ID, and the date and time that the email campaign activity\
        \ was forwarded. Forwards report data is sorted with the most recent activity\
        \ listed first. For more use case information, see [Get an Email Forwards\
        \ Report](/api_guide/email_summary_forwards_report.html) in the API guide."
      operationId: "getForwards"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/ForwardsTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getForwardsReport"
  /reports/email_reports/{campaign_activity_id}/tracking/optouts:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Opt-outs Report"
      description: "Use this method to get a report listing each contact that clicked\
        \ the unsubscribe link in the email campaign activity to opt-out from receiving\
        \ emails sent from your Constant Contact account. This report includes contact\
        \ information, such as the contact's email address, unique ID, and the opt-out\
        \ date and time. Opt-out report data is sorted with the most recent activity\
        \ listed first. For more use case information, see [Get an Email Opt-outs\
        \ Report](/api_guide/email_summary_optouts_report.html) in the API guide."
      operationId: "getOptouts"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/OptoutsTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getOptoutsReport"
  /reports/email_reports/{campaign_activity_id}/tracking/bounces:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Bounces Report"
      description: "Use this method to get a report listing contact bounce data for\
        \ the specified email campaign activity. This report lists the most recent\
        \ bounce data first and includes contact information, such as the contact's\
        \ email address, unique ID, and the email bounce date and time.\nUse the <code>bounce_code</code>\
        \ query parameter to limit the type of bounce data to return.\n\nFor more\
        \ use case information, see [Get a Bounces Report for an Email Campaign Activity](/api_guide/email_summary_bounces_report.html)\
        \ in the API guide."
      operationId: "getBounces"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The ID that uniquely identifies the email campaign activity\
          \ to use for this report."
        required: true
        type: "string"
        format: "uuid"
      - name: "bounce_code"
        in: "query"
        description: "To return results for a specific bounce code, select the `bounce_code`\
          \ from the drop-down list. To return results for multiple codes, repeat\
          \ the bounce code parameter for each. For example, to return results for\
          \ bounce codes `B` and `D` use `bounce_code=B&bounce_code=D`."
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "B"
          - "D"
          - "F"
          - "S"
          - "V"
          - "X"
          - "Z"
        collectionFormat: "multi"
      - name: "limit"
        in: "query"
        description: "The number of tracking activities to return on a page."
        required: false
        type: "string"
        default: "500"
        maximum: 500
        minimum: 1
      responses:
        "200":
          description: "Request was successful"
          schema:
            $ref: "#/definitions/BouncesTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getBouncesReport"
  /reports/summary_reports/email_campaign_summaries:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Campaigns Summary Report"
      description: "Use this method to get aggregate email campaign statistics for\
        \ up to five hundred email campaigns. The response results include the total\
        \ number of times that each contact uniquely interacted with each tracked\
        \ campaign activity.\n\nResults are sorted in descending order by the date\
        \ that the email was last sent (<code>last_sent_date</code>). Use the <code>limit</code>\
        \ query parameter to limit the number of email campaign summary reports listed\
        \ on each page.\n\n\n\n For more use case information, see \"[Get an Email\
        \ Campaign Summary Report](/api_guide/email_bulk_campaign_summary_report.html)\""
      operationId: "getAllBulkEmailCampaignSummaries"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Use the `limit` query parameter to limit the number of email\
          \ campaign summaries to return on a single page. The default is `50` and\
          \ the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/BulkEmailCampaignSummariesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getEmailCampaignReport"
  /reports/stats/email_campaigns/{campaign_ids}:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Campaign Stats Report"
      description: "Use this method to get email campaign performance tracking statistics\
        \ for one or more campaigns, including the total number of times contacts\
        \ interacted with your campaigns and how.\n\nFor each `campaign_id`, this\
        \ method returns lists that include total counts (`stats`) for each type of\
        \ tracked email and relevant campaign-related percentages (`percents`). It\
        \ also returns the date and time at which the campaign stats were last refreshed.\n\
        If any specified `campaign_id` is invalid, a 404 error response is returned\
        \ for all campaigns."
      operationId: "getEmailSummary"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_ids"
        in: "path"
        description: "A comma-separated list of `campaign_id`s (UUID's)."
        required: true
        type: "string"
        maximum: 150
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/CampaignStatsQueryResultEmail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getEmailStatsReport"
  /reports/stats/email_campaign_activities/{campaign_activity_ids}:
    get:
      tags:
      - "Email Reporting"
      summary: "GET an Email Campaign Activity Stats Report"
      description: "Use this method to get performance tracking statistics for up\
        \ to ten email campaign activities. Statistics include the total number of\
        \ times contacts interacted with your campaigns and how.\n\nFor each `campaign_activity_id`,\
        \ this method returns the `campaign_id`, the total counts (`stats`) for each\
        \ type of tracked email activity, and the date and time that Constant Contact\
        \ last refreshed (`last_refresh_time`) the `stats`.\n\nWhen requesting statistics\
        \ for multiple email campaign activities, if one or more of the `campaign_activity_ids`\
        \ do not exist, were deleted, or do not have any stats associated with it,\
        \ the `campaign_activity_ids` and error details display under `errors`. If\
        \ any single specified `campaign_activity_id` is invalid (malformed), a 404\
        \ error response is returned for all campaign activities."
      operationId: "getEmailCampaignActivitySummary"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_ids"
        in: "path"
        description: "A comma-separated list of `campaign_activity_id`s (UUID's)."
        required: true
        type: "string"
        maximum: 10
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/CampaignActivityStatsQueryResultEmail"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
      x-sdk-methodName: "getEmailCampaignActivityReport"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_clicks:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Unique Contacts Clicks Landing Page Report"
      description: "Use this method get details about each contact that clicked a\
        \ link on a landing page campaign activity. Unique contact clicks are identified\
        \ by both the `contact_id` and `url_id`. The same contact may appear more\
        \ than once in the results, if they clicked more than one link on the landing\
        \ page. The resulting contact data is listed with most recent activity first."
      operationId: "getUniqueContactClicks"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact click results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to return only contacts that match\
          \ a contacts full or partial first or last name, or email. For example:\
          \ Josie or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactClickTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_opens:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Unique Contacts Opens Landing Page Report"
      description: "Use this method get details about each contact that opens a link\
        \ on a landing page. Contacts are uniquely identified by `contact_id`.  The\
        \ resulting contact data is listed with most recent activity first."
      operationId: "getUniqueContactOpens"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact open results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to only include contacts that contain\
          \ a certain value. This parameter does full and partial matches and applies\
          \ to the contact first name, last name, and email fields. For example: Josie\
          \ or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactOpensTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_contact_opens:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Contacts Opens Landing Page Report"
      description: "Use this method get contact details for each time a contact opens\
        \ a link on a landing page.  The resulting contact data is listed with most\
        \ recent activity first."
      operationId: "getContactOpens"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact open results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to only include contacts that contain\
          \ a certain value. This parameter does full and partial matches and applies\
          \ to the contact first name, last name, and email fields. For example: Josie\
          \ or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactOpensTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_updates:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Unique Contacts Updates Landing Page Report"
      description: "Use this method to get contact details for each contact that updated\
        \ their contact data from a landing page. Contacts are uniquely identified\
        \ by `contact_id`.  The resulting contact data is listed with most recent\
        \ activity first."
      operationId: "getUniqueContactUpdates"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact open results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to only include contacts that contain\
          \ a certain value. This parameter does full and partial matches and applies\
          \ to the contact first name, last name, and email fields. For example: Josie\
          \ or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactUpdateTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_adds:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Unique Contacts Adds Landing Page Report"
      description: "Use this method to get details about each contact added to the\
        \ account from a specified landing page. Contacts are identified by `contact_id`.\
        \ The resulting contact data is listed with most recent activity first."
      operationId: "getContactAdds"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to only include contacts that contain\
          \ a certain value. This parameter does full and partial matches and applies\
          \ to the contact first name, last name, and email fields. For example: Josie\
          \ or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactAddTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_sms_optins:
    get:
      tags:
      - "Landing Pages Reporting"
      summary: "GET a Unique Contacts SMS Opt-In Landing Page Report"
      description: "Use this method get details about unique contacts that click a\
        \ link on a landing page to opt in to receiving SMS text messages. Contacts\
        \ are uniquely identified by `contact_id``.  The resulting contact data is\
        \ listed with most recent activity first."
      operationId: "getUniqueContactSMSOptIns"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "campaign_activity_id"
        in: "path"
        description: "The landing page `campaign_activity_id` (UUID's) to use to get\
          \ unique contact click results."
        required: true
        type: "string"
        format: "uuid"
        x-example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
      - name: "limit"
        in: "query"
        description: "Use to limit the number of contact tracking activities to return\
          \ on a single page. The default is `50` and the maximum is `500` per page."
        required: false
        type: "string"
        default: "50"
        x-example: "100"
      - name: "contacts_filter"
        in: "query"
        description: "Use to filter the results to return only contacts that match\
          \ a contacts full or partial first or last name, or email. For example:\
          \ Josie or Jo."
        required: false
        type: "string"
        x-example: "Jo"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/PContactSMSOptInTrackingActivitiesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /reports/summary_reports/sms_campaign_summaries:
    get:
      tags:
      - "SMS Reporting"
      summary: "GET an SMS Campaigns Summary Report"
      description: "Use this method to get SMS campaign summary details, including\
        \ the total number of times that each contact uniquely interacted with each\
        \ tracked campaign activity and aggregate tracking statistics. Results are\
        \ sorted in descending order by the date the SMS was last sent (`last_sent_date`).\n\
        The `start_at` date is required. Use both the `start_at` and `end_at` date\
        \ query parameters to return only SMS campaign summary details that occurred\
        \ within a specified date range.\nUse the `limit` query parameter to limit\
        \ the number of results returned per page. "
      operationId: "getAllBulkSmsCampaignSummaries"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "limit"
        in: "query"
        description: "Use to limit the number of results to return on a single page\
          \ (from 1 to 50). The default setting is 50."
        required: false
        type: "string"
        default: "50"
        x-example: "15"
      - name: "start_at"
        in: "query"
        description: "Use to limit the results to include SMS campaign summary details\
          \ for SMS campaigns sent on or after the required `start_at` date you specify.\
          \ ISO 8601 format."
        required: true
        type: "string"
        x-example: "2023-01-27T21:56:37.011Z"
      - name: "end_at"
        in: "query"
        description: "Use to limit the results to include SMS campaign summary details\
          \ for SMS campaigns sent on or before the `end_at` date you specify. ISO\
          \ 8601 format."
        required: false
        type: "string"
        x-example: "2024-01-27T21:56:37.011Z"
      responses:
        "200":
          description: "Request was successful."
          schema:
            $ref: "#/definitions/SmsCampaignSummariesPage"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - oauth2_implicit:
        - "campaign_data"
      - oauth2_access_code:
        - "campaign_data"
      x-authorization-privileges:
      - "ui:campaign:metrics"
  /partner/accounts:
    get:
      tags:
      - "Technology Partners"
      summary: "GET Partner Client Accounts"
      description: "Get all Constant Contact client accounts managed under your technology\
        \ partner account. Use the `limit` query parameter to set the number of accounts\
        \ to return on each results page. Use the `account_type` query parameter to\
        \ filter client account results by type: `all` (default), `managed`, or `unmanaged`.\n\
        Only technology partners can access partner endpoints and partner endpoints\
        \ cannot be tested using the API reference tester.\nFor more use case information,\
        \ see [Get all Partner Client Accounts](/api_guide/partners_accts_get.html)\
        \ in the API guide."
      operationId: "getPartnerSiteOwners"
      produces:
      - "application/json"
      parameters:
      - name: "offset"
        in: "query"
        description: "Depending on the `limit` you specify, the system determines\
          \ the `offset` parameter to use (number of records to skip) and includes\
          \ it in the link used to get the next page of results"
        required: false
        type: "string"
      - name: "limit"
        in: "query"
        description: "The number of client accounts to return on each page of results.\
          \ The default value is `50`. Entering a `limit` value less than the minimum\
          \ (`10`) or greater than the maximum (`50`) is ignored and the system uses\
          \ the default values. Depending on the `limit` you specify, the system determines\
          \ the `offset` parameter to use (number of records to skip) and includes\
          \ it in the link used to get the next page of results."
        required: false
        type: "string"
        default: "50"
        maximum: 50
        minimum: 10
        format: "int32"
        x-example: "50"
      - name: "account_type"
        in: "query"
        description: "Filters client account results by account type: `all` (default),\
          \ `managed`, or `unmanaged`. Excluding the `account_type` query parameter\
          \ returns all client accounts for the partner."
        required: false
        type: "string"
        default: "all"
        enum:
        - "all"
        - "managed"
        - "unmanaged"
        x-example: "managed"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/PartnerAccount"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "getAccounts"
    post:
      tags:
      - "Technology Partners"
      summary: "POST (create) a Partner Client Account"
      description: "Use this POST method to create a new Constant Contact client account\
        \ under your partner account, set up the billing plan for the account, and\
        \ to add the new client to the default contact list.\n\nNewly created accounts\
        \ are free trials which give the user up to 60 days to try Constant Contact\
        \ before buying. Trial accounts have limits depending on the services that\
        \ are included.\n\nIf a field validation error occurs, a 400 response message\
        \ is returned.\n\nIf provisioning does not complete successfully due to unavailable\
        \ dependencies, such as database or dependent services, a 503 response message\
        \ is returned. By default, the client account provision data is stored and\
        \ processed when provisioning becomes available.\n\nIf the partner client\
        \ account has the Single Sign On (SSO) for all users feature enabled, all\
        \ users in the client account can sign into the account using SSO. This feature\
        \ must be set up through the Constant Contact Partner team. For feature details,\
        \ see [Configuring Identity Provider Initiated SSO](/api_guide/partner_sso_config.html).\
        \ Some client account features will be supported in future releases. \n\n\
        For more use case information, see [Create a new Partner Client Account](/api_guide/partners_accts_create.html)\
        \ in the API guide."
      operationId: "provision"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "provision"
        description: "Create a new Constant Contact client account under your partner\
          \ account. All required properties must be included in the JSON payload\
          \ request."
        required: true
        schema:
          $ref: "#/definitions/Provision"
      responses:
        "201":
          description: "Request successful."
          schema:
            $ref: "#/definitions/ProvisionResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
        "503":
          description: "Our internal service is temporarily unavailable."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "createAccount"
  /partner/accounts/{encoded_account_id}/plan:
    get:
      tags:
      - "Technology Partners"
      summary: "GET Billing Plan Details for a Client Account"
      description: "Use this GET method to return billing plan details for a client's\
        \ Constant Contact account.\nIf you are not on the latest billing plan, contact\
        \ the Constant Contact Partner Team. However, older billing plans and `plan_type`\
        \ enum values will continue to be supported. Only technology partners can\
        \ access partner endpoints and partner endpoints cannot be tested using the\
        \ API reference tester.\nFor more use case information, see [Get Billing Plan\
        \ Details for a Client Account](/api_guide/partners_plans_get.html) in the\
        \ API guide."
      operationId: "getPlan"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "encoded_account_id"
        in: "path"
        description: "Specify the client's unique `encoded_account_id`."
        required: true
        type: "string"
        x-example: "a07e1lxqqqo0"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/PlanTiersObject"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "405":
          description: "Unsupported method used."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "getAccountBillingPlan"
    put:
      tags:
      - "Technology Partners"
      summary: "PUT (update) Billing Plan Details for a Client Account"
      description: "Use this PUT method to update the type of billing plan to assign\
        \ to the Constant Contact client account. The type of billing plan determines\
        \ which Constant Contact product features that the client account can access.\
        \ The billing plan that you specify in the request body (`plan_type`) must\
        \ already exist in the plan group. Attempting to change to a plan that is\
        \ currently not available within your partner plan group results in a 400\
        \ error response code.\n\nWhen you create a new client account, the `plan_type`\
        \ defaults to `TRIAL` and the `billing_day_of_month` defaults to `null`. The\
        \ `billing_day_of_month` property is required if a client account is not set\
        \ up to use single billing. You can change the day of month (`billing_day_of_month`)\
        \ in which to bill a client account only when changing the `plan_type` value\
        \ from `TRIAL` to a different `plan_type`, otherwise the `billing_day_of_month`\
        \ value you enter is ignored. You can choose to enter a specific day of the\
        \ month or accept the default value, which is the day on which the `plan_type`\
        \ value changes from a `TRIAL` plan to a different `plan_type`. Changing the\
        \ `plan_type` from `TRIAL` to another `plan_type` automatically changes the\
        \ `billing_status` from `Trial` to `Open`.\n\nOnly technology partners can\
        \ access partner endpoints and partner endpoints cannot be tested using the\
        \ API reference tester. If you are not on the latest billing plan, contact\
        \ the Constant Contact Partner Team. However, older billing plans and `plan_type`\
        \ enum values will continue to be supported.\n\nFor more use case information,\
        \ see [PUT Billing Plan Details for a Client Account](/api_guide/partners_plans_update.html)\
        \ in the API guide."
      operationId: "setPlan"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "encoded_account_id"
        in: "path"
        description: "Specify the client's unique `encoded_account_id`."
        required: true
        type: "string"
        x-example: "a07e1lxqqqo0"
      - in: "body"
        name: "body"
        description: "`plan_type`: Updates the billing plan assigned to a client account\
          \ to a different `plan_type`.   \n\n`plan_group_id`: To update an older\
          \ `plan_type` to a current a `plan_type`, use the `plan_group_id` parameter\
          \ to specify the older billing `plan_type` number. \n\n- If the specified\
          \ `plan_group_id` does not exist under the account's current plan group,\
          \ the default partner plan group is used.\n- If the specified `plan_group_id`\
          \ exists but does not match the account's current plan group, an error is\
          \ returned.\n- If the `plan_group_id` parameter is not included in the request,\
          \ the accounts current plan group is used.\n\n`billing_day_of _month`: \
          \  Updates the day of month in which to bill the client account. This property\
          \ is required if a client account is not set up to use single billing. \
          \     "
        required: false
        schema:
          $ref: "#/definitions/PlanInfo"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/PlanTiersObject"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "405":
          description: "Unsupported method used."
        "415":
          description: "Unsupported Media Type."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "updateAccountBillingPlan"
  /partner/accounts/{encoded_account_id}/status/cancel:
    put:
      tags:
      - "Technology Partners"
      summary: "PUT Cancel the Billing Plan for a Client Account"
      description: "Use this PUT method to cancel a client's Constant Contact account.\
        \ If the specified client account or technology partner account does not exist,\
        \ the system returns a 404 error response. If the client account exists under\
        \ a different technology partner account, the system returns a 400 error response.\n\
        \n\n  To get a list of all canceled client accounts (`\"billing_status\":\
        \ \"Canceled\"`), make a `GET` call to the `/partner/accounts` endpoint.\n\
        \n  Only technology partners can access partner endpoints and partner endpoints\
        \ cannot be tested using the API reference tester.\n\n  For more use case\
        \ information, see [Cancel the Billing Plan for a Client Account](/api_guide/partners_plans_cancel.html)\
        \ in the API guide.\""
      operationId: "cancelAccount"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "encoded_account_id"
        in: "path"
        description: "The system generated ID that uniquely identifies the client\
          \ account."
        required: true
        type: "string"
        x-example: "a07e1lxqqqo0"
      - in: "body"
        name: "body"
        description: "By default, the current date and time is automatically used\
          \ as the cancellation date. However, you can specify a future date and time\
          \ to cancel the account (`effective_date`) in the request body in ISO format.\
          \ You can also enter the client's cancellation reason (`reason_id`)."
        required: false
        schema:
          $ref: "#/definitions/AccountCancellation"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/AccountCancellation"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "cancelAccountBillingPlan"
  /partner/accounts/{encoded_account_id}/account_operations/sync:
    post:
      tags:
      - "Technology Partners"
      summary: "POST Send an API request on Behalf of a Client Account"
      description: "Use this API method to send an API request on behalf of a managed\
        \ client account in your partnership.\n\nThe request body properties you use\
        \ in this partner API call determine the structure of the API request that\
        \ Constant Contact sends on behalf of the managed client account. This includes\
        \ the HTTP url, HTTP method type, request body, request url parameters, request\
        \ query parameters, and headers that for the request. You can use this `/partner/accounts/{encoded_account_id}/account_operations/sync`\
        \ API method to send a request using non-partner v3 API methods."
      operationId: "partnerAccountOperationsPostSync"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "encoded_account_id"
        in: "path"
        description: "An encoded account id for a managed account in your partnership."
        required: true
        type: "string"
        x-example: "a07e1lxqqqo0"
      - in: "body"
        name: "body"
        description: "A JSON request body that contains the structure of the HTTP\
          \ request you are instructing Constant Contact to send on behalf of specific\
          \ managed account in your partnership."
        required: false
        schema:
          $ref: "#/definitions/PartnerAccountOperationsRequest"
      responses:
        "200":
          description: "Request successful. The response body schema returned by this\
            \ method corresponds to the specific API request you provided in the request\
            \ body."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "Not found. This may indicate that the encoded_account_id you\
            \ provided is invalid, or the API request you are sending on behalf of\
            \ an account returned a 404."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "sendRequestUsingManagedAccount"
  /partner/accounts/{encoded_account_id}/users/sso:
    post:
      tags:
      - "Technology Partners"
      summary: "POST a User Under a Partner's SSO-Enabled Client Account"
      description: "Use this endpoint to create a new user under a partner client\
        \ account that has the Single Sign On (SSO) for all users feature enabled."
      operationId: "createSSOUser"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "encoded_account_id"
        in: "path"
        description: "The encoded account ID that identifies the partner's client\
          \ account to which to add the new user. "
        required: true
        type: "string"
        x-example: "a07e1lxqqqo0"
      - in: "body"
        name: "SSO User"
        description: "The JSON payload used to create a new user under the specified\
          \ partner's client account. All request body properties are required (`first_name`,\
          \ `last_name`, `role_name`, `contact_email`, `login_name`, `external_id`,\
          \ `external_provider`)."
        required: true
        schema:
          $ref: "#/definitions/SSOUser"
      responses:
        "201":
          description: "Request successful."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "409":
          description: "Conflict. The resource you are creating or updating conflicts\
            \ with an existing resource."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
  /partner/webhooks/subscriptions:
    get:
      tags:
      - "Technology Partners Webhooks"
      summary: "GET a Collection of Webhook Topic Subscriptions"
      description: "Use this GET method to return a collection containing your application's\
        \ webhook subscriptions."
      operationId: "getWebhooksCollection"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters: []
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/WebhooksSubscriptionCollection"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "getAllWebhooks"
  /partner/webhooks/subscriptions/{topic_id}:
    get:
      tags:
      - "Technology Partners Webhooks"
      summary: "GET Webhook Topic Subscription"
      description: "Use this GET method to return subscription information for a certain\
        \ `topic_id`. Possible `topic_id` values include:\n\n  * `1` - Billing tier\
        \ upgrade.\n  * `2` - Billing tier downgrade.\n  * `3` - Account cancelled.\n\
        \  * `4` - Account disabled."
      operationId: "getWebhooksTopic"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "topic_id"
        in: "path"
        description: "Identifies a webhook topic."
        required: true
        type: "string"
        x-example: "1"
      responses:
        "200":
          description: "Request successful"
          schema:
            $ref: "#/definitions/WebhooksSubscriptionResponse"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "getWebhooksTopicById"
    put:
      tags:
      - "Technology Partners Webhooks"
      summary: "PUT Webhook Topic Subscription"
      description: "Use this PUT method to subscribe your application to a `topic_id`\
        \ or to update the callback URI for an existing subscription. Possible `topic_id`\
        \ values include:\n\n * `1` - Billing tier upgrade.\n * `2` - Billing tier\
        \ downgrade.\n * `3` - Account cancelled.\n * `4` - Account disabled.\n\n\
        After you subscribe your application, Constant Contact will automatically\
        \ start sending POST notifications for your chosen topic to your application's\
        \ callback URI. This is an example of the POST notification request body:\n\
        \n  ```\n  {\"url\":\"https://l1.api.cc.email/v3/partner/accounts/a07e1my9tbw0/plan\"\
        ,\n  \"api_key\":\"90ed8738-5190-44a3-bc12-c172930db12c\",\n  \"event_type\"\
        :\"tier.increase\"}\n  ```\n</br>\nIf your application does not return a success\
        \ response after receiving a notification, Constant Contact will retry sending\
        \ the POST notification at 1 minute intervals for up to an hour."
      operationId: "putWebhooksTopic"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "topic_id"
        in: "path"
        description: "Identifies a webhook topic."
        required: true
        type: "string"
        x-example: "1"
      - in: "body"
        name: "body"
        description: "A JSON payload containing a callback URI. Constant Contact uses\
          \ this callback URI to notify you about your chosen topic."
        required: true
        schema:
          $ref: "#/definitions/WebhooksSubscriptionBody"
      responses:
        "200":
          description: "Request successful."
          schema:
            $ref: "#/definitions/WebhooksSubscriptionPutResp"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: "updateWebhooksTopic"
    delete:
      tags:
      - "Technology Partners Webhooks"
      summary: "DELETE Webhook Topic Subscriptions"
      description: "Use this DELETE method to unsubscribe your application from notifications\
        \ on a certain `topic_id`. Possible `topic_id` values include:\n\n * `1` -\
        \ Billing tier upgrade.\n * `2` - Billing tier downgrade.\n * `3` - Account\
        \ cancelled.\n * `4` - Account disabled."
      operationId: "deleteWebhooksSubscriptions"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "topic_id"
        in: "path"
        description: "Identifies a webhook topic."
        required: true
        type: "string"
        x-example: "1"
      responses:
        "204":
          description: "Webhooks subscription successfully deleted."
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
  /partner/webhooks/subscriptions/{topic_id}/tests:
    post:
      tags:
      - "Technology Partners Webhooks"
      summary: "POST Test Send Webhook Notification"
      description: "Use this POST method to validate a webhook subscription by triggering\
        \ a test notification for your chosen webhook `topic_id`. Possible `topic_id`\
        \ values include:\n\n * `1` - Billing tier upgrade.\n * `2` - Billing tier\
        \ downgrade.\n * `3` - Account cancelled.\n * `4` - Account disabled.\n\n\
        After you successfully send this request, Constant Contact will automatically\
        \ send a POST notification to your chosen topic's callback URI with example\
        \ data."
      operationId: "testSendWebhooksTopic"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "topic_id"
        in: "path"
        description: "Identifies a webhook topic."
        required: true
        type: "string"
        x-example: "1"
      responses:
        "201":
          description: "Test notification successfully sent to your callback URI."
          schema:
            $ref: "#/definitions/WebhooksTestSend"
        "400":
          description: "Bad request. Either the JSON was malformed or there was a\
            \ data validation error."
        "401":
          description: "The Access Token used is invalid."
        "403":
          description: "Forbidden request. You lack the necessary scopes, you lack\
            \ the necessary user privileges, or the application is deactivated."
        "404":
          description: "The requested resource was not found."
        "500":
          description: "There was a problem with our internal service."
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
securityDefinitions:
  oauth2_implicit:
    type: "oauth2"
    authorizationUrl: "https://authz.constantcontact.com/oauth2/default/v1/authorize"
    flow: "implicit"
    scopes:
      contact_data: "Read or modify contact data."
      campaign_data: "Read or modify email campaign data."
      account_read: "Read account data."
      account_update: "Modify account data."
  oauth2_access_code:
    type: "oauth2"
    authorizationUrl: "https://authz.constantcontact.com/oauth2/default/v1/authorize"
    tokenUrl: "https://authz.constantcontact.com/oauth2/default/v1/token"
    flow: "accessCode"
    scopes:
      contact_data: "Read or modify contact data."
      campaign_data: "Read or modify email campaign data."
      account_read: "Read account data."
      account_update: "Modify account data."
  ctctPartnerAuthorizer:
    description: "Partner Authentication"
    type: "oauth2"
    authorizationUrl: "https://v3api-partner.auth.us-east-1.amazoncognito.com/oauth2/token"
    flow: "implicit"
    scopes:
      v3api/general.partner: "Access to general partner API methods"
  api_key:
    type: "apiKey"
    name: "x-api-key"
    in: "header"
definitions:
  UserPrivilegesResource:
    type: "array"
    items:
      type: "object"
      properties:
        privilege_id:
          type: "integer"
          example: 30
          description: "Identifies a user privilege in Constant Contact."
        privilege_name:
          type: "string"
          example: "campaign:create"
          description: "The name of the Constant Contact user privilege."
  AuthorizationErrorSchema:
    type: "object"
    properties:
      error_key:
        type: "string"
        example: "unauthorized"
        description: "Identifies the type of error."
      error_message:
        type: "string"
        example: "Unauthorized"
        description: "Description of the error."
  APIErrorSchema:
    type: "array"
    items:
      type: "object"
      properties:
        error_key:
          type: "string"
          example: "contacts.api.validation.error"
          description: "Identifies the type of error."
        error_message:
          type: "string"
          example: "include_membership_count does not have a valid value"
          description: "Description of the error."
  CompanyLogo:
    type: "object"
    properties:
      url:
        type: "string"
        example: "https://files.constantcontact.com/3a20c2f5701/780c1ff3-7fc6-4712-a862-ad5b6af57d38.jpg."
        description: "The internal URL used to get the company logo image file hosted\
          \ locally in your account's MyLibrary."
      external_url:
        type: "string"
        example: "https://www.google.com/images/logos/google_logo_41.png."
        description: "The external URL used to get the company logo image file that\
          \ is hosted on an external website."
      internal_id:
        type: "string"
        example: "ACCOUNT.IMAGE.5"
        description: "The internal ID used to identify the image hosted in your account's\
          \ MyLibrary."
  Customer:
    type: "object"
    properties:
      contact_email:
        type: "string"
        example: "InstaPrinz@gmail.com"
        description: "Email addresses that are associated with the Constant Contact\
          \ account owner."
      contact_phone:
        type: "string"
        example: "5081111212"
        description: "The account owner's contact phone number (up to 25 characters\
          \ in length)."
        maxLength: 25
      country_code:
        type: "string"
        example: "US"
        description: "The uppercase two-letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> representing the organization's country."
      encoded_account_id:
        type: "string"
        example: "p07e1l8cdif9dl"
        description: "The readOnly encoded account ID that uniquely identifies the\
          \ account."
        readOnly: true
      first_name:
        type: "string"
        example: "Lola"
        description: "The account owner's first name."
      last_name:
        type: "string"
        example: "Zang"
        description: "The account owner's last name."
      organization_name:
        type: "string"
        example: "InstaPrinz"
        description: "The name of the organization that is associated with this account."
      organization_phone:
        type: "string"
        example: "333-333-3335"
        description: "The phone number of the organization that is associated with\
          \ this account."
      state_code:
        type: "string"
        example: "MA"
        description: "The uppercase two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> for the organization's state. This\
          \ property is required if the <code>country_code</code> is US (United States)."
      time_zone_id:
        type: "string"
        example: "US/Eastern"
        description: "The time zone that is automatically set based on the <code>state_code</code>\
          \ setting; as defined in the IANA time-zone database (see http://www.iana.org/time-zones)."
      website:
        type: "string"
        example: "http://InstaPriz4me.com"
        description: "The organization's website URL."
      physical_address:
        type: "object"
        properties:
          address_line1:
            type: "string"
            example: "123 Maple Street"
            description: "Line 1 of the organization's street address."
            minLength: 1
            maxLength: 80
          address_line2:
            type: "string"
            example: "Unit 1"
            description: "Line 2 of the organization's street address."
            minLength: 1
            maxLength: 80
          address_line3:
            type: "string"
            example: "Apartment 234"
            description: "Line 3 of the organization's street address."
            minLength: 1
            maxLength: 80
          city:
            type: "string"
            example: "Boston"
            description: "The city where the organization is located."
          state_code:
            type: "string"
            example: "MA"
            description: "The two letter ISO 3166-1 code for the organization's state\
              \ and only used if the <code>country_code</code> is <code>US</code>\
              \ or <code>CA</code>. If not, exclude this property from the request\
              \ body."
            maxLength: 2
          state_name:
            type: "string"
            example: "EXCLUDE if country_code is US."
            description: "Use if the state where the organization is physically located\
              \ is not in the United States or Canada. If  <code>country_code</code>\
              \ is  <code>US</code> or <code>CA</code>, exclude this property from\
              \ the request body."
          postal_code:
            type: "string"
            example: "02451"
            description: "The postal code address (ZIP code) of the organization.\
              \ This property is required if the <code>state_code</code> is <code>US</code>\
              \ or <code>CA</code>, otherwise exclude this property from the request\
              \ body."
          country_code:
            type: "string"
            example: "US"
            description: "The two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
              \ target='_blank'>ISO 3166-1 code</a> for the organization's country."
        required:
        - "address_line1"
        - "city"
        - "country_code"
      company_logo:
        description: "Used to include an existing company logo in the response body.\
          \ If a company logo does not exist, nothing is returned in the response\
          \ body. This property is optional."
        $ref: "#/definitions/CompanyLogo"
  CustomerPut:
    type: "object"
    properties:
      contact_email:
        type: "string"
        example: "InstaPrinz@gmail.com"
        description: "The confirmed email address that is associated with the account\
          \ owner."
      contact_phone:
        type: "string"
        example: "5081111212"
        description: "The account owner's contact phone number (up to 25 characters\
          \ in length)."
        maxLength: 25
      country_code:
        type: "string"
        example: "US"
        description: "The two-letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> representing the organization's country."
      encoded_account_id:
        type: "string"
        example: "p07e1l8cdif9dl"
        description: "The read only encoded account ID that uniquely identifies the\
          \ account."
        readOnly: true
      first_name:
        type: "string"
        example: "Lola"
        description: "The account owner's first name."
      last_name:
        type: "string"
        example: "Zang"
        description: "The account owner's last name."
      organization_name:
        type: "string"
        example: "InstaPrinz"
        description: "The name of the organization that is associated with this account."
      organization_phone:
        type: "string"
        example: "333-333-3335"
        description: "The phone number of the organization that is associated with\
          \ this account."
      state_code:
        type: "string"
        example: "MA"
        description: "The two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> used to specify the state to associate\
          \ with the account. This property is required if the <code>country_code</code>\
          \ is US (United States)."
      time_zone_id:
        type: "string"
        example: "US/Eastern"
        description: "The time zone to use for the account; as defined in the IANA\
          \ time-zone database (see http://www.iana.org/time-zones)."
      website:
        type: "string"
        example: "http://InstaPriz4me.com"
        description: "The organization's website URL."
  AccountPhysicalAddress:
    type: "object"
    required:
    - "address_line1"
    - "city"
    - "country_code"
    properties:
      address_line1:
        type: "string"
        example: "123 Maple Street"
        description: "Line 1 of the organization's street address."
        minLength: 1
        maxLength: 80
      address_line2:
        type: "string"
        example: "Unit 1"
        description: "Line 2 of the organization's street address."
        minLength: 1
        maxLength: 80
      address_line3:
        type: "string"
        example: "Apartment 234"
        description: "Line 3 of the organization's street address."
        minLength: 1
        maxLength: 80
      city:
        type: "string"
        example: "Boston"
        description: "The city where the organization is located."
      state_code:
        type: "string"
        example: "MA"
        description: "The two letter ISO 3166-1 code for the organization's state\
          \ and only used if the <code>country_code</code> is <code>US</code> or <code>CA</code>.\
          \ If not, exclude this property from the request body."
        maxLength: 2
      state_name:
        type: "string"
        example: "EXCLUDE if country_code is US."
        description: "Use if the state where the organization is physically located\
          \ is not in the United States or Canada. If  <code>country_code</code> is\
          \  <code>US</code> or <code>CA</code>, exclude this property from the request\
          \ body."
      postal_code:
        type: "string"
        example: "02451"
        description: "The postal code address (ZIP code) of the organization. This\
          \ property is required if the <code>state_code</code> is <code>US</code>\
          \ or <code>CA</code>, otherwise exclude this property from the request body."
      country_code:
        type: "string"
        example: "US"
        description: "The two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> for the organization's country."
  AccountEmails:
    type: "array"
    items:
      type: "object"
      properties:
        email_address:
          type: "string"
          description: "An email address associated with a Constant Contact account\
            \ owner."
          maxLength: 80
        email_id:
          type: "integer"
          format: "int64"
          description: "The unique ID for an email address in a Constant Contact account."
          minimum: 1
        confirm_status:
          type: "string"
          description: "The confirmation status of the account email address. When\
            \ you add a new email address to an account, Constant Contact automatically\
            \ sends an email to that address with a link to confirm it. You can use\
            \ any account email address with a <code>CONFIRMED</code> status to create\
            \ an email campaign.\n"
        confirm_time:
          type: "string"
          format: "date-time"
          description: "The date that the email address changed to <code>CONFIRMED</code>\
            \ status in ISO-8601 format."
        confirm_source_type:
          type: "string"
          description: "Describes who confirmed the email address. Valid values are:\n\
            \  <ul>\n  <li>SITE_OWNER — The Constant Contact account owner confirmed\
            \ the email address.</li>\n  <li>SUPPORT — Constant Contact support staff\
            \ confirmed the email address.</li>\n  <li>FORCEVERIFY — Constant Contact\
            \ confirmed the email address without sending a confirmation email.</li>\n\
            \  <li>PARTNER — A Constant Contact partner confirmed the email address.</li>\n\
            \  </ul>\n"
        roles:
          type: "array"
          description: "Specifies the current role of a confirmed email address in\
            \ an account. Each email address can have multiple roles or no role. Possible\
            \ role values are: <ul> <li>CONTACT — The contact email for the Constant\
            \ Contact account owner. Each account can only have one <code>CONTACT</code>\
            \ role email.</li> <li>BILLING — The billing address for the Constant\
            \ Contact account. Each account can only have one <code>BILLING</code>\
            \ role email.</li> <li>JOURNALING — An email address that Constant Contact\
            \ forwards all sent email campaigns to as part of the partner journaling\
            \ compliance feature.</li> <li>REPLY_TO — The contact email used in the\
            \ email campaign signature. Each account can only have one <code>REPLY_TO</code>\
            \ role email.</li> <li>OTHER — An email address that does not fit into\
            \ the other categories.</li> </ul> You can use any confirmed email address\
            \ in the email campaign <code>from_email</code> and <code>reply_to_email</code>\
            \ headers.\n"
          items:
            type: "string"
        pending_roles:
          type: "array"
          description: "The planned role for an unconfirmed email address. Possible\
            \ role values are: <ul> <li>CONTACT — The contact email for the Constant\
            \ Contact account owner. Each account can only have one <code>CONTACT</code>\
            \ role email.</li> <li>BILLING — The billing address for the Constant\
            \ Contact account. Each account can only have one <code>BILLING</code>\
            \ role email.</li> <li>JOURNALING — The email address that Constant Contact\
            \ forwards all sent email campaigns to as part of the partner journaling\
            \ compliance feature.</li> <li>REPLY_TO — The contact email used in the\
            \ email campaign signature. Each account can only have one <code>REPLY_TO</code>\
            \ role email. </li> <li>OTHER — An email address that does not fit into\
            \ the other categories.</li> </ul>\n"
          items:
            type: "string"
  AccountEmailInput:
    type: "object"
    properties:
      email_address:
        type: "string"
        example: "dlang@example.com"
        description: "The new email address you want to add to a Constant Contact\
          \ account."
        maxLength: 80
  AccountEmailCreateResponse:
    type: "object"
    properties:
      email_address:
        type: "string"
        example: "dlang@example.com"
        description: "An email address associated with a Constant Contact account\
          \ owner."
        maxLength: 80
      email_id:
        type: "integer"
        format: "int64"
        example: 2
        description: "The unique ID for an email address in a Constant Contact account."
        minimum: 1
      confirm_status:
        type: "string"
        example: "UNCONFIRMED"
        description: "The confirmation status of the account email address. When you\
          \ add a new email address to an account, Constant Contact automatically\
          \ sends an email to that address with a link to confirm it. You can use\
          \ any account email address with a <code>CONFIRMED</code> status to create\
          \ an email campaign.\n"
  TierObject:
    type: "object"
    properties:
      usage_type:
        type: "string"
        example: "CONTACTS"
        description: "Identifies the tier usage type that is associated with the billing\
          \ plan."
        readOnly: true
        default: "CONTACTS"
      current_usage:
        type: "number"
        format: "float"
        example: 10.0
        description: "The number of active contacts (default) used within the current\
          \ tier."
        readOnly: true
      tier:
        type: "integer"
        format: "int32"
        example: 1
        description: "The billing tier level that is associated with a client account.\
          \ By default, the system determines the tier level to use based on the number\
          \ of active contacts currently in the client account at the time of billing.\
          \ Billing tiers may differ. The following shows an example billing tier:\
          \ <ul>\n  <li>level <code>1</code> = 0 - 500 contacts</li>\n  <li>level\
          \ <code>2</code> = 501 - 1000 contacts</li>\n  <li>level <code>3</code>\
          \ = 1001 - ...</li>\n</ul>"
        readOnly: true
      tier_min:
        type: "number"
        format: "float"
        example: 0.0
        description: "The minimum number of active contacts for the tier level."
        readOnly: true
      tier_max:
        type: "number"
        format: "float"
        example: 500.0
        description: "The maximum number of active contacts for the tier level."
        readOnly: true
      price:
        type: "number"
        format: "float"
        example: 20.0
        description: "The billing price set for the tier used to bill the client account\
          \ each month."
        readOnly: true
      currency_code:
        type: "string"
        example: "USD"
        description: "The currency (ISO currency code) used to price the tier for\
          \ a client account."
        readOnly: true
    description: "The usage tier that is associated with a client's Constant Contact\
      \ account and is used to calculate the monthly billing price."
  PlanTiersObject:
    type: "object"
    properties:
      plan_type:
        type: "string"
        example: "GOLD"
        description: "The billing plan that is associated with a client's Constant\
          \ Contact account. The billing plan determines which Constant Contact product\
          \ features that the client account can access. If you are not on the latest\
          \ billing plan, contact the Constant Contact Partner Team. However, older\
          \ billing plans and <code>plan_type</code> enum values will continue to\
          \ be supported. <ul>\n  <li><code>TRIAL</code>: Provides limited product\
          \ features for a non-billed account and the account has an expiration date.</li>\n\
          \  <li><code>BRONZE</code>: Billable plan that provides basic email and\
          \ marketing tools.</li>  \n  <li><code>SILVER</code>: Billable plan that\
          \ provides all features available in the <code>BRONZE</code> plan, and adds\
          \ some additional email campaign to features, such as contact segmentation\
          \ and social media ads integration.</li>\n  <li><code>GOLD</code>: Billable\
          \ plan that provides all available product features.</li>\n</ul>"
      current_tiers:
        type: "array"
        description: "Lists the billing plan tiers that are currently associated with\
          \ a client account."
        items:
          $ref: "#/definitions/TierObject"
      billing_status:
        type: "string"
        example: "Open"
        description: "The client's account billing status. When you first create a\
          \ client account the <code>billing_status</code> defaults to <code>Trial</code>.\
          \ Billing status values include:\n  <ul>\n    <li><code>Trial</code> - A\
          \ non-paying trial client account (default value).</li>\n    <li><code>Open</code>\
          \ - An active and paying client account.</li>\n    <li><code>Canceled</code>\
          \ - A canceled client account.</li>\n    <li><code>Trial End</code> - The\
          \ trial period has ended for this client account.</li>\n  </ul>"
      billing_day_of_month:
        type: "integer"
        format: "int32"
        example: 15
        description: "This property is required when an account is not set up to use\
          \ single billing. For trial accounts, the value is initially set to <code>null</code>.\
          \ The value can only be changed when changing the <code>plan_type</code>\
          \ from a trial account to a different type of plan, otherwise the value\
          \ you enter is ignored. You can choose to enter a specific day of month\
          \ or except the default value, which is the day that the <code>plan_type</code>\
          \ value changes from a trial account plan to a different plan. Valid <code>billing_day_of_month</code>\
          \ values include <code>1</code> through and including <code>31</code>."
    description: "Specifies client billing plan details including the type of plan,\
      \ the plan tiers used, the current billing status, and the day of the month\
      \ that the client is billed. When a client account is first provisioned, the\
      \ `plan_type` defaults to a `Trial` account. After you change an account `billing_status`\
      \ from `Trial` to any other `billing_status`, you cannot change it back to a\
      \ `Trial` account."
  ActivityStatus:
    type: "object"
    properties:
      items_total_count:
        type: "integer"
        example: 2200
        description: "The total number of items to be processed."
        readOnly: true
      items_completed_count:
        type: "integer"
        example: 2100
        description: "The number of items processed in the activity request."
        readOnly: true
      person_count:
        type: "integer"
        example: 8750
        description: "The total number of contacts in an import contacts request."
        readOnly: true
      error_count:
        type: "integer"
        example: 1
        description: "The number of non-correctable errors encountered during an import\
          \ contacts request."
        readOnly: true
      correctable_count:
        type: "integer"
        example: 1
        description: "The number of correctable errors. Correctable errors include\
          \ invalid email address format, birthday or anniversary format error, or\
          \ does not have minimal contact information (no name or email address).\
          \ Correctable errors are available in the product UI to correct."
      cannot_add_to_list_count:
        type: "integer"
        example: 1
        description: "The number of contacts that cannot be added to a list because\
          \ they were previously unsubscribed, valid for contacts_file_ or json_import\
          \ requests."
      list_count:
        type: "integer"
        example: 3
        description: "The number of lists processed in an add or remove list membership\
          \ activity request."
        readOnly: true
  ActivityStatusExportLink:
    type: "object"
    properties:
      self:
        type: "object"
        description: "HATEOS-style link to the activity status (this object)."
        properties:
          href:
            type: "string"
            example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
      results:
        type: "object"
        description: "Link to an activity result resource; as an example, for file_export,\
          \ the link to the exported contacts file."
        properties:
          href:
            type: "string"
            example: "/v3/contacts_exports/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
  Link:
    type: "object"
    properties:
      href:
        type: "string"
        example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
  PagingLinks:
    type: "object"
    properties:
      next:
        $ref: "#/definitions/Link"
  Activities:
    type: "object"
    properties:
      activities:
        type: "array"
        description: "A list of bulk activity jobs and status submitted by the account\
          \ over the past 10 days."
        items:
          type: "object"
          description: "Generic bulk activity status response object"
          properties:
            activity_id:
              type: "string"
              format: "uuid"
              example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
              description: "Unique ID for the activity."
              readOnly: true
            state:
              type: "string"
              example: "initialized"
              description: "The state of the request: <p><ul>\n  <li>initialized -\
                \ request has been received</li>\n  <li>processing - request is being\
                \ processed</li>\n  <li>completed - job completed</li>\n  <li>cancelled\
                \ - request was cancelled</li>\n  <li>failed - job failed to complete</li>\n\
                \  <li>timed_out - the request timed out before completing\"</li>\n\
                \  </ul> </p>"
            started_at:
              type: "string"
              format: "date-time"
              example: "2016-01-23T13:48:44.108Z"
              description: "Timestamp showing when we began processing the activity\
                \ request, in ISO-8601 format."
              readOnly: true
            completed_at:
              type: "string"
              format: "date-time"
              example: "2016-01-23T13:48:44.108Z"
              description: "Timestamp showing when we completed processing the activity,\
                \ in ISO-8601 format."
              readOnly: true
            created_at:
              type: "string"
              format: "date-time"
              example: "2016-01-23T13:48:44.108Z"
              description: "Timestamp showing when we created the activity, in ISO-8601\
                \ format."
              readOnly: true
            updated_at:
              type: "string"
              format: "date-time"
              example: "2016-01-23T13:48:44.108Z"
              description: "Timestamp showing when we last updated the activity, in\
                \ ISO-8601 format."
              readOnly: true
            source_file_name:
              type: "string"
              example: "2016-21-04-contact_import.xls"
              description: "Name of the file used for an add_contacts activity."
              readOnly: true
            percent_done:
              type: "integer"
              example: 75
              description: "Shows the percent done for an activity that we are still\
                \ processing."
              readOnly: true
            activity_errors:
              type: "array"
              description: "Array of messages describing the errors that occurred."
              items:
                type: "string"
                example: "Message describing the error condition."
                description: "Message describing the error condition."
                readOnly: true
            status:
              $ref: "#/definitions/ActivityStatus"
            _links:
              $ref: "#/definitions/ActivityStatusExportLink"
      _links:
        $ref: "#/definitions/PagingLinks"
  Activity:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request: <p><ul> <li>initialized - request\
          \ has been received</li> <li>processing - request is being processed</li>\
          \ <li>completed - job completed</li> <li>cancelled - request was cancelled</li>\
          \ <li>failed - job failed to complete</li> <li>timed_out - the request timed\
          \ out before completing\"</li> </ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      source_file_name:
        type: "string"
        example: "2016-21-04-contact_import.xls"
        description: "Name of the file used for an add_contacts activity."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        $ref: "#/definitions/ActivityStatus"
      _links:
        $ref: "#/definitions/ActivityStatusExportLink"
    description: "Generic bulk activity status response object"
  ContactsExport:
    type: "object"
    properties:
      contact_ids:
        type: "array"
        description: "Exports up to 500 specific contacts.  This property is mutually\
          \ exclusive with all other filtering criteria except with<code>status</code>."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 500
      list_ids:
        type: "array"
        description: "Exports all of the contacts inside of up to 50 contact lists.\
          \ This property is mutually exclusive with all other filtering criteria\
          \ except with either <code>status</code> or <code>exclude</code>."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 50
      tag_ids:
        type: "array"
        description: "Exports contacts assigned one or more of the tags (<code>tag_id</code>)\
          \ specified. This property is mutually exclusive with all other filtering\
          \ criteria."
        items:
          type: "string"
          format: "uuid"
          example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        maxItems: 50
      new_subscriber:
        type: "boolean"
        example: true
        description: "Set to <code>true</code> to only export contacts that subscribed\
          \ within the last 30 days. Default setting is <code>false</code>. This property\
          \ is mutually exclusive with all other filtering criteria except  with either\
          \  <code>list_ids</code> or <code>exclude</code>. "
      segment_id:
        type: "integer"
        example: 12
        description: "Specify the <code>segment_id</code> from which you want to export\
          \ all contacts that meet the specified <code>segment_criteria</code>. You\
          \ can only specify one <code>segment_id</code>. This property is mutually\
          \ exclusive with all other filtering criteria."
      fields:
        type: "array"
        description: "By default , all fields are returned. Use this array to only\
          \ export specific contact fields. You must export <code>email_address</code>\
          \ to successfully export <code>email_optin_source</code>, <code>email_optin_date</code>,\
          \ <code>email_optout_source</code>, <code>email_optout_date</code>, or <code>email_optout_reason</code>."
        items:
          type: "string"
          example: "email_address"
      status:
        type: "string"
        example: "unsubscribed"
        description: "Allows you to export only contacts that have a specific status\
          \ value. This property is mutually exclusive with all other filtering criteria\
          \ except with either  <code>contact_ids</code> or <code>list_ids</code>."
      exclude:
        type: "object"
        properties:
          contact_ids:
            type: "array"
            description: "Excludes up to 50 specified contacts (<code>contact_id</code>)\
              \ from being exported. This property is mutually exclusive with all\
              \ other filtering criteria except  with either <code>list_ids</code>\
              \ or <code>new_subscriber</code> ."
            items:
              type: "string"
              format: "uuid"
              example: "4d88f172-21d1-11ea-b5ae-fa163e56c9b0"
              description: "An array of <code>contact_id</code>s to exclude."
    description: "Export contact objects to a CSV file. By default, all contacts in\
      \ the user's account are exported unless a filtering parameter is specified."
  ActivityExportStatus:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "<p> The state of the request: <ul>\n <li>initialized - request\
          \ has been received</li>\n <li>processing - request is being processed</li>\n\
          \ <li>completed - job completed</li>\n <li>cancelled - request was cancelled</li>\n\
          \ <li>failed - job failed to complete</li>\n <li>timed_out - the request\
          \ timed out before completing\"</li>\n </ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        type: "object"
        properties:
          items_total_count:
            type: "integer"
            example: 8751
            description: "The total number of contacts to export."
            readOnly: true
          items_completed_count:
            type: "integer"
            example: 351
            description: "The number of contacts processed for export."
            readOnly: true
      _links:
        $ref: "#/definitions/ActivityStatusExportLink"
    description: "Activity status for contact_exports activity"
  ActivityGetExport:
    type: "string"
    description: "CSV file containing exported contacts"
  ContactDelete:
    type: "object"
    properties:
      contact_ids:
        type: "array"
        description: "Specify up to 500 contacts by <code>contact_id</code> to delete;\
          \ mutually exclusive with <code>list_ids</code>."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
          description: ""
        maxItems: 500
      list_ids:
        type: "array"
        description: "The contacts on the lists (up to 50) specified will be deleted;\
          \ mutually exclusive with <code>contact_ids</code>."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
          description: ""
        maxItems: 50
  ActivityDeleteStatus:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request: <p><ul> <li>initialized - request\
          \ has been received</li> <li>processing - request is being processed</li>\
          \ <li>completed - job completed</li> <li>cancelled - request was cancelled</li>\
          \ <li>failed - job failed to complete</li> <li>timed_out - the request timed\
          \ out before completing\"</li> </ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        type: "object"
        properties:
          list_count:
            type: "integer"
            example: 4
            description: "The number of lists if request specifies contacts to delete\
              \ by list_ids."
          items_total_count:
            type: "integer"
            example: 375
            description: "The total number of contacts to delete."
            readOnly: true
          items_completed_count:
            type: "integer"
            example: 351
            description: "The number of contacts deleted."
            readOnly: true
      _links:
        type: "object"
        properties:
          self:
            type: "object"
            description: "Link to the activity status (this object) to retrieve the\
              \ activity status."
            properties:
              href:
                type: "string"
                example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
    description: "Activity status for contact_delete activity"
  ActivityStatusLink:
    type: "object"
    properties:
      self:
        type: "object"
        description: "HATEOS-style link to the activity status (this object)."
        properties:
          href:
            type: "string"
            example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
  ActivityImport:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request:\n <p><ul>\n   <li>initialized - request\
          \ has been received</li>\n  <li>processing - request is being processed</li>\n\
          \  <li>completed - job completed</li>\n  <li>cancelled - request was cancelled</li>\n\
          \  <li>failed - job failed to complete</li>\n  <li>timed_out - the request\
          \ timed out before completing\"</li>\n</ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:40.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      source_file_name:
        type: "string"
        example: "2016-21-04-contact_import.xls"
        description: "Name of the file used for an file_import activity."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        readOnly: true
        items:
          type: "string"
          example: "Message describing the error condition."
      status:
        type: "object"
        properties:
          items_total_count:
            type: "integer"
            example: 87
            description: "The total number of rows, including the header row, in the\
              \ import file."
            readOnly: true
          person_count:
            type: "integer"
            example: 20
            description: "The total number of contacts in the import file."
            readOnly: true
          error_count:
            type: "integer"
            example: 1
            description: "The number of non-correctable errors encountered during\
              \ the file import."
            readOnly: true
          correctable_count:
            type: "integer"
            example: 1
            description: "The number of correctable errors. Correctable errors are:\
              \ invalid email address format, birthday or anniversary format error,\
              \ or does not have minimal contact information (no name or email address).\
              \ Correctable errors are available in the product UI to correct."
            readOnly: true
          cannot_add_to_list_count:
            type: "integer"
            example: 1
            description: "The number of previously unsubscribed contacts in the import\
              \ - they cannot be added to a list."
            readOnly: true
      _links:
        $ref: "#/definitions/ActivityStatusLink"
    description: "Activity status for contacts_json_import and contacts_file_import\
      \ activities"
  JsonImportContact:
    type: "object"
    properties:
      email:
        type: "string"
        example: "joe.jones@example.com"
        description: "The email address of the contact. This method identifies each\
          \ unique contact using their email address. Required if `sms_number` is\
          \ not specified."
        maxLength: 50
      first_name:
        type: "string"
        example: "Joe"
        description: "The first name of the contact."
        maxLength: 50
      last_name:
        type: "string"
        example: "Jones"
        description: "The last name of the contact."
        maxLength: 50
      job_title:
        type: "string"
        example: "Chief Innovation Officer"
        description: "The job title of the contact."
        maxLength: 50
      company_name:
        type: "string"
        example: "RelativeGravity, Inc."
        description: "The name of the company where the contact works."
        maxLength: 50
      birthday_month:
        type: "integer"
        example: 11
        description: "The month value for the contact's birthday. Valid values are\
          \ from 1 through 12. The <code>birthday_month</code> property is required\
          \ if you use <code>birthday_day</code>."
      birthday_day:
        type: "integer"
        example: 24
        description: "The day value for the contact's birthday. Valid values are from\
          \ 1 through 31. The <code>birthday_day</code> property is required if you\
          \ use <code>birthday_month</code>."
      anniversary:
        type: "string"
        example: "2006-11-15"
        description: "The anniversary date for the contact. For example, this value\
          \ could be the date when the contact first became a customer of an organization\
          \ in Constant Contact. Valid date formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD,\
          \ YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY, or M-DD-YYYY."
      phone:
        type: "string"
        example: "555-555-5555"
        description: "The primary phone number for the contact. Use this field to\
          \ add the default kind of phone number to the imported contact's phone number.\
          \ Default <code>kind</code> is <code>other</code>."
        maxLength: 50
      home_phone:
        type: "string"
        example: "555-555-5555"
        description: "The home phone number for the contact."
        maxLength: 50
      work_phone:
        type: "string"
        example: "555-555-4444"
        description: "The work phone number for the contact."
        maxLength: 50
      mobile_phone:
        type: "string"
        example: "555-555-3333"
        description: "The mobile phone number for the contact."
        maxLength: 50
      other_phone:
        type: "string"
        example: "555-555-2222"
        description: "A phone number for the contact."
        maxLength: 50
      street:
        type: "string"
        example: "123 Maple Lane"
        description: "Line one of the primary street address for the contact. Use\
          \ this field to add the default kind of street to the imported contact's\
          \ street address. The default <code>kind</code> is <code>home</code>. which\
          \ maps to the <code>street_addresses</code> array` in the response."
        maxLength: 255
      street2:
        type: "string"
        example: "Apt. 337"
        description: "Line two of the primary street address for the contact. This\
          \ value is automatically appended to the <code>street</code> value. Use\
          \ this field to add the default kind for line two of the street address\
          \ to the imported contact's address. The default <code>kind</code> is <code>other</code>."
        maxLength: 255
      city:
        type: "string"
        example: "Chicago"
        description: "The name of the primary city for the contact. Use this field\
          \ to add the default kind of city to the imported contact's home address.\
          \ The default <code>kind</code> is <code>home</code>."
        maxLength: 50
      state:
        type: "string"
        example: "Illinois"
        description: "The name of the primary state or province for the contact. Use\
          \ this field to add the default kind of state to the imported contact's\
          \ home address. The default <code>kind</code> is <code>home</code>."
        maxLength: 50
      zip:
        type: "string"
        example: "60609"
        description: "The zip or postal code associated with the contact's primary\
          \ address. Use this field to add the default kind of zip to the imported\
          \ contact's street address. The default <code>kind</code> is <code>home</code>."
        maxLength: 50
      country:
        type: "string"
        example: "United States"
        description: "The name of the primary country where the contact is located.\
          \ Use this field to add the default kind of country to the imported contact's\
          \ street address. The default <code>kind</code> is <code>home</code>."
        maxLength: 50
      home_street:
        type: "string"
        example: "123 Maple Lane"
        description: "Line one of the home street address for the contact."
        maxLength: 255
      home_street2:
        type: "string"
        example: "Apt. 337"
        description: "Line two of the home street address for the contact. This value\
          \ is automatically appended to the <code>home_street</code> value."
        maxLength: 255
      home_city:
        type: "string"
        example: "Chicago"
        description: "The name of the city where the contact lives."
        maxLength: 50
      home_state:
        type: "string"
        example: "Illinois"
        description: "The name of the home state or province where the contact lives."
        maxLength: 50
      home_zip:
        type: "string"
        example: "60609"
        description: "The zip or postal code associated with the contact's home address."
        maxLength: 50
      home country:
        type: "string"
        example: "United States"
        description: "The name of the country where the contact lives."
        maxLength: 50
      work_street:
        type: "string"
        example: "123 Maple Lane"
        description: "Line one of the work street address for the contact."
        maxLength: 255
      work_street2:
        type: "string"
        example: "Apt. 337"
        description: "Line two of the work street address for the contact. This value\
          \ is automatically appended to the <code>work_street</code> value."
        maxLength: 255
      work_city:
        type: "string"
        example: "Chicago"
        description: "The name of the city where the contact works."
        maxLength: 50
      work_state:
        type: "string"
        example: "Illinois"
        description: "The name of the state or province where the contact works."
        maxLength: 50
      work_zip:
        type: "string"
        example: "60609"
        description: "The zip or postal code associated with the contact's work address."
        maxLength: 50
      work_country:
        type: "string"
        example: "United States"
        description: "The name of the country where the contact works."
        maxLength: 50
      other_street:
        type: "string"
        example: "123 Maple Lane"
        description: "Line one of the other street address for the contact."
        maxLength: 255
      other_street2:
        type: "string"
        example: "Apt. 337"
        description: "Line two of the other street address for the contact. This value\
          \ is automatically appended to the <code>other_street</code> value."
        maxLength: 255
      other_city:
        type: "string"
        example: "Chicago"
        description: "The name of another city where the contact is located."
        maxLength: 50
      other_state:
        type: "string"
        example: "Illinois"
        description: "The name of another state or province where the contact is located."
        maxLength: 50
      other_zip:
        type: "string"
        example: "60609"
        description: "The zip or postal code associated with the contact's other address."
        maxLength: 50
      other_country:
        type: "string"
        example: "Canada"
        description: "The name of another country where the contact is located."
        maxLength: 50
      cf:custom_field_name:
        type: "string"
        example: "Tesla S 2017"
        description: "The name of this property is dynamic based on the custom fields\
          \ you want to import. Use a key-value pair where the key is an existing\
          \ custom field name prefixed with <code>cf:</code>, and the value is a custom\
          \ field string value. For example, if you have a custom field named <code>first_name</code>\
          \ you can use <code>\"cf:first_name\":\"Joe\"</code>. Each contact can contain\
          \ up to 25 different custom fields."
        maxLength: 255
      sms_number:
        type: "string"
        example: "5081231235"
        description: "The US phone number to associate with the contact's SMS-enabled\
          \ phone. The country code must be valid. Valid formats are <code>1231231234</code>\
          \ or <code>123-123-1234</code>. Required if `email` is not specified."
        maxLength: 16
      sms_consent_date:
        type: "string"
        example: "07-03-2024"
        description: "Required if the SMS permission is set to `explicit`. The date\
          \ that the contact consented to receiving SMS messages. Valid date formats\
          \ are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD, YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY,\
          \ or M-DD-YYYY."
        maxLength: 16
  ContactsJsonImport:
    type: "object"
    required:
    - "import_data"
    - "list_ids"
    properties:
      import_data:
        type: "array"
        description: "An array containing the contacts to import."
        items:
          $ref: "#/definitions/JsonImportContact"
      list_ids:
        type: "array"
        description: "Specify which contact lists you are adding all imported contacts\
          \ to as an array of up to 50 contact <code>list_id</code> string values."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 50
        minItems: 1
      sms_permission_to_send:
        type: "string"
        example: "explicit"
        description: "Specifies if the contact gave <code>explicit</code> SMS permission\
          \ or if the SMS permission was not set (<code>not_set</code>). If `explicit,\
          \ the <code>sms_consent_date</code> must be provided."
  ListActivityRemoveContacts:
    type: "object"
    required:
    - "list_ids"
    - "source"
    properties:
      source:
        type: "object"
        description: "Specifies the contacts to remove from your target list(s) using\
          \ one of several mutually exclusive properties."
        properties:
          list_ids:
            type: "array"
            description: "Include up to 50 <code>list_id</code> values to remove all\
              \ contact list members from your target list(s). This property is mutually\
              \ exclusive with all other <code>source</code> properties."
            items:
              type: "string"
              format: "uuid"
              example: "5bbf758c-d8ce-11e9-8d3a-fa163e56c9b0"
            maxItems: 0
          contact_ids:
            type: "array"
            description: "Include up to 500 <code>contact_id</code> values to remove\
              \ the contacts from your target lists. This property is mutually exclusive\
              \ with all other <code>source</code> properties."
            items:
              type: "string"
              format: "uuid"
              example: "4d88f172-21d1-11ea-b5ae-fa163e56c9b0"
            maxItems: 0
          all_active_contacts:
            type: "boolean"
            example: true
            description: "Removes all active (billable) contacts from your targeted\
              \ lists. This property is mutually exclusive with all other <code>source</code>\
              \ properties."
            default: false
          engagement_level:
            type: "string"
            example: "high"
            description: "Removes all contacts that meet the selected  <code>engagement_level\
              \ </code> to your target lists. This property is mutually exclusive\
              \ with all other <code>source</code> properties."
          tag_ids:
            type: "array"
            description: "Removes all contacts assigned with the specified <code>tag_id</code>s\
              \ from your target lists. This property is mutually exclusive with all\
              \ other <code>source</code> properties."
            items:
              type: "string"
              format: "uuid"
              example: "5e88f172-21d1-11ea-b5ae-fa163e56c9b9"
            maxItems: 0
      exclude:
        type: "object"
        properties:
          contact_ids:
            type: "array"
            description: "Excludes specified contacts (<code>contact_id</code>) from\
              \ being deleted from the target list and only applicable if using either\
              \ the <code>all_active_contacts</code> (billable) or <code>list_ids</code>\
              \ as the source."
            items:
              type: "string"
              format: "uuid"
              example: "4d88f172-21d1-11ea-b5ae-fa163e56c9b0"
              description: "An array of <code>contact_id</code>s to exclude."
      list_ids:
        type: "array"
        description: "Specify up to 50 target <code>list_id</code>s from which to\
          \ remove contacts."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
          description: "Target list from which to remove contacts."
        maxItems: 0
  ActivityListsMembership:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request: <p><ul> <li>initialized - request\
          \ has been received</li> <li>processing - request is being processed</li>\
          \ <li>completed - job completed</li> <li>cancelled - request was cancelled</li>\
          \ <li>failed - job failed to complete</li> <li>timed_out - the request timed\
          \ out before completing\"</li> </ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        type: "object"
        properties:
          items_total_count:
            type: "integer"
            example: 2200
            description: "Total number of contacts to add to or remove from lists."
            readOnly: true
          items_completed_count:
            type: "integer"
            example: 652
            description: "The number of contacts processed."
            readOnly: true
          list_count:
            type: "integer"
            example: 3
            description: "The number of lists specified in the request."
            readOnly: true
      _links:
        $ref: "#/definitions/ActivityStatusLink"
  ListActivityAddContacts:
    type: "object"
    required:
    - "list_ids"
    - "source"
    properties:
      source:
        type: "object"
        description: "The <code>source</code> object specifies which contacts you\
          \ are adding to your targeted lists using one of four mutually exclusive\
          \ properties."
        properties:
          list_ids:
            type: "array"
            description: "Specifies which contacts you are adding to lists as an array\
              \ of up to 50 contact <code>list_id</code> values. This property is\
              \ mutually exclusive with <code>contact_ids</code>, <code>all_active_contacts</code>\
              \ (billable), and <code>segment_id</code>."
            items:
              type: "string"
              format: "uuid"
              example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
            maxItems: 50
          all_active_contacts:
            type: "boolean"
            example: true
            description: "Adds all active (billable) contacts to your targeted lists.\
              \ This property is mutually exclusive with <code>contact_ids</code>,\
              \ <code>list_ids</code>, and <code>segment_id</code>."
            default: false
          contact_ids:
            type: "array"
            description: "Specifies which contacts (up to 500) you are adding to lists\
              \ as an array of <code>contact_id</code> values. This property is mutually\
              \ exclusive with <code>list_ids</code>, <code>all_active_contacts</code>\
              \ (billable), and <code>segment_id</code>."
            items:
              type: "string"
              format: "uuid"
              example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
            maxItems: 500
          tag_ids:
            type: "array"
            description: "Adds all contacts assigned with the specified <code>tag_id</code>s\
              \ to your target lists. This property is mutually exclusive with all\
              \ other <code>source</code> properties."
            items:
              type: "string"
              format: "uuid"
              example: "5e88f172-21d1-11ea-b5ae-fa163e56c9b9"
            maxItems: 0
          engagement_level:
            type: "string"
            example: "high"
            description: "Adds all contacts that meet the selected  <code>engagement_level\
              \ </code> to your target lists. This property is mutually exclusive\
              \ with all other <code>source</code> properties."
          segment_id:
            type: "integer"
            example: 12
            description: "Specifies which contacts you are adding to lists as a single\
              \ <code>segment_id</code> value. This property is mutually exclusive\
              \ with <code>list_ids</code>, <code>all_active_contacts</code> (billable),\
              \ and <code>contact_ids</code>."
      exclude:
        type: "object"
        properties:
          contact_ids:
            type: "array"
            description: "Excludes specified contacts (<code>contact_id</code>) from\
              \ being added to the target list. Applicable if using either the <code>all_active_contacts</code>\
              \ (billable) or <code>list_ids</code> as the source."
            items:
              type: "string"
              format: "uuid"
              example: "4d88f172-21d1-11ea-b5ae-fa163e56c9b0"
              description: "An array of <code>contact_id</code>s to exclude."
      list_ids:
        type: "array"
        description: "Specifies which lists (up to 50) you are adding your source\
          \ contacts to."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 50
  ListIdList100:
    type: "object"
    required:
    - "list_ids"
    properties:
      list_ids:
        type: "array"
        description: "The array of contact lists <code>list_id</code> to delete."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 100
  ActivityDeleteListsResponse:
    type: "object"
    properties:
      activity_id:
        type: "string"
        example: "af86135c-8740-11eb-8abf-fa163ef30864"
        description: "The system assigned UUID that uniquely identifies an activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The activity processing state."
        readOnly: true
      started_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when processing started for the activity,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when processing completed for the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when the activity was first requested, in\
          \ ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when the activity was last updated, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 25
        description: "The processing percent complete for the activity."
        readOnly: true
      activity_errors:
        type: "array"
        description: "An array of error message strings describing the errors that\
          \ occurred."
        readOnly: true
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        type: "object"
        properties:
          list_count:
            type: "integer"
            example: 5
            description: "The number of lists deleted."
      _links:
        type: "object"
        properties:
          self:
            type: "object"
            description: "Link to the activity status to use in tracking the request\
              \ status."
            properties:
              href:
                type: "string"
                example: "/v3/activities/04fa57a7-cf55-4185-cc1a-58ed29bf0a6a"
  TagAddRemoveContacts:
    type: "object"
    required:
    - "source"
    - "tag_ids"
    properties:
      source:
        type: "object"
        description: "Select the source used to identify contacts to which a tag is\
          \ added or removed. Source types are mutually exclusive."
        properties:
          contact_ids:
            type: "array"
            description: "An array of contacts IDs."
            items:
              type: "string"
              format: "uuid"
              example: "358f6a5e-21f6-11ea-a1cb-fa163e56c9b0"
            maxItems: 500
          list_ids:
            type: "array"
            description: "An array of list IDs ( <code>list_id</code> )."
            items:
              type: "string"
              format: "uuid"
              example: "6eeb4756-1cf5-11ea-859f-fa163e56c9b0"
            maxItems: 50
          tag_ids:
            type: "array"
            description: "An array of tags ( <code>tag_id</code> )."
            items:
              type: "string"
              format: "uuid"
              example: "c6915956-fde3-4081-977e-c3b8d1b068a7"
            maxItems: 50
          all_active_contacts:
            type: "boolean"
            example: false
            description: "Use to identify contacts with an active (billable) status."
          new_subscriber:
            type: "boolean"
            example: true
            description: "Use to identify newly subscribed contacts."
      exclude:
        type: "object"
        description: "Use to exclude specified contacts from being added or removed\
          \ from a tag. Only applicable if the specified source is either <code>all_active_contacts</code>\
          \ (billable) or <code>list_ids</code>."
        properties:
          contact_ids:
            type: "array"
            description: "Identifies the contacts, by <code>contact_id</code>, to\
              \ exclude from the add or remove tags activity."
            items:
              type: "string"
              format: "uuid"
              example: "c7172ca0-f353-11e8-aff2-fa163e56c9b0"
      tag_ids:
        type: "array"
        description: "An array of tags (<code>tag_id</code>) to add to all contacts\
          \ meeting the specified source criteria."
        items:
          type: "string"
          format: "uuid"
          example: "5bbf758c-d8ce-11e9-8d3a-fa163e56c9b0"
          description: "A list of tags to which contacts are added or removed."
        maxItems: 50
  ActivityTaggingStatus:
    type: "object"
    properties:
      items_total_count:
        type: "integer"
        example: 100
        description: "The total number of items processed for the requested activity."
      items_completed_count:
        type: "integer"
        example: 25
        description: "The total number of items for which processing completed for\
          \ the requested activity."
    description: "Provides the status for the requested activity."
  ActivityLinks:
    type: "object"
    properties:
      self:
        type: "object"
        properties:
          href:
            type: "string"
      results:
        type: "object"
        properties:
          href:
            type: "string"
            description: "Use this link to view activity results."
  ActivityTagging:
    type: "object"
    required:
    - "activity_id"
    - "state"
    properties:
      activity_id:
        type: "string"
        example: "af86135c-8740-11eb-8abf-fa163ef30864"
        description: "The system assigned UUID that uniquely identifies an activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The activity processing state."
        readOnly: true
      started_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when processing started for the activity,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when processing completed for the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when the activity was first requested, in\
          \ ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2019-12-12T15:38:24Z"
        description: "Timestamp showing when the activity was last updated, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 25
        description: "The processing percent complete for the activity."
        readOnly: true
      activity_errors:
        type: "array"
        description: "An array of error message strings describing the errors that\
          \ occurred."
        readOnly: true
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      status:
        $ref: "#/definitions/ActivityTaggingStatus"
      _links:
        $ref: "#/definitions/ActivityLinks"
  TagIdList500Limit:
    type: "object"
    required:
    - "tag_ids"
    properties:
      tag_ids:
        type: "array"
        description: "The tag IDs (<code>tag_ids</code>) to delete."
        items:
          type: "string"
          format: "uuid"
          example: "00e4429c-3beb-11eb-9f34-fa163e56c9b9"
          description: "A list of tag_ids. Mutually exclusive with other filters and\
            \ criteria."
        maxItems: 500
  CustomFieldId100:
    type: "object"
    required:
    - "custom_field_ids"
    properties:
      custom_field_ids:
        type: "array"
        description: "The array of custom field IDs to delete."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
        maxItems: 0
  ActivityDeleteCustomFields:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        example: "86b90820-cc52-11ea-9dad-fa163e3d9194"
        description: "Unique ID for the activity."
        readOnly: true
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request: <p><ul> <li>initialized - request\
          \ has been received</li> <li>processing - request is being processed</li>\
          \ <li>completed - job completed</li> <li>cancelled - request was cancelled</li>\
          \ <li>failed - job failed to complete</li> <li>timed_out - the request timed\
          \ out before completing\"</li> </ul> </p>"
      started_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we began processing the activity request,\
          \ in ISO-8601 format."
        readOnly: true
      completed_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we completed processing the activity,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we created the activity, in ISO-8601\
          \ format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Timestamp showing when we last updated the activity, in ISO-8601\
          \ format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 75
        description: "Shows the percent done for an activity that we are still processing."
        readOnly: true
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      _links:
        type: "object"
        properties:
          self:
            type: "object"
            description: "Link to the activity status (this object) to retrieve the\
              \ activity status."
            properties:
              href:
                type: "string"
                example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
    description: "Activity status for contact_delete activity"
  AddressDto:
    type: "object"
    required:
    - "address_type"
    properties:
      address_type:
        type: "string"
        example: "EVENT"
        description: "The address type. Only `EVENT` is currently supported."
      line1:
        type: "string"
        example: "100 Seaport Blvd"
        description: "The first line of the address where the event takes place."
        minLength: 0
        maxLength: 80
      line2:
        type: "string"
        example: "100 Seaport Blvd"
        description: "The second line of the address where the event takes place."
        minLength: 0
        maxLength: 80
      city:
        type: "string"
        example: "Boston"
        description: "The city where the event takes place."
        minLength: 0
        maxLength: 80
      country:
        type: "string"
        example: "United States"
        description: "Name of the country where the event takes place."
        minLength: 0
        maxLength: 128
      country_code:
        type: "string"
        example: "US"
        description: "The country code associated with the country where the event\
          \ takes place."
        minLength: 0
        maxLength: 2
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "The create time of the event."
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "The last modification time of the event."
      latitude:
        type: "number"
        format: "float"
        example: 42.629368
        description: "The latitude number indicating where the event takes place."
      longitude:
        type: "number"
        format: "float"
        example: -71.27594
        description: "The longitude number indicating where the event takes place."
      location_name:
        type: "string"
        example: "Holiday Market at Snowport"
        description: "The venue name where the event takes place."
        minLength: 0
        maxLength: 100
      postal_code:
        type: "string"
        example: "02451"
        description: "The address postal code."
        minLength: 0
        maxLength: 25
      state:
        type: "string"
        example: "Queensland"
        description: "The State/Province where the event takes place."
        minLength: 0
        maxLength: 80
      state_code:
        type: "string"
        example: "MA"
        description: "The state code where the event takes place."
        minLength: 0
        maxLength: 2
    title: "AddressDto"
  EventRegistrationSummaryMetricDto:
    type: "object"
    properties:
      registration_count:
        type: "integer"
        format: "int32"
        description: "The total number of registrants for the event."
      ticket_sold:
        type: "integer"
        format: "int32"
        description: "The total number of tickets sold for the event."
      item_sold:
        type: "integer"
        format: "int32"
        description: "The total number of items sold for the event."
    description: "The event registration summary metrics"
  EventListingDto:
    type: "object"
    properties:
      event_id:
        type: "string"
        example: "05cf4d60-56ea-4023-bf49-b35e56a9c7b5"
        description: "The unique identifier for the event."
      title:
        type: "string"
        example: "Class of 2015 Reunion"
        description: "The title of the event."
      description:
        type: "string"
        example: "Join us for a night of reminiscing and celebration"
        description: "The description of the event."
      start_time:
        type: "string"
        example: "2023-12-01T20:30:00Z"
        description: "The start time of the event in UTC format."
      end_time:
        type: "string"
        example: "2023-12-01T21:30:00Z"
        description: "The end time of the event in UTC format."
      status:
        type: "string"
        example: "ACTIVE"
        description: "The current status of the event."
      registration_url:
        type: "string"
        example: "https://l1.constantcontactpages.com/ev/reg/scrk2u2"
        description: "The URL for event registration."
      name:
        type: "string"
        example: "Holiday Market at Snowport"
        description: "The name of the event."
      event_type:
        type: "string"
        example: "PERFORMING_ARTS"
        description: "The type of event."
      location_type:
        type: "string"
        example: "PHYSICAL"
        description: "Specifies if this is a physical or virtual event (or both),\
          \ or if the location is to be specified in the future."
      time_zone_type:
        type: "string"
        description: "The type of time zone."
      address:
        $ref: "#/definitions/AddressDto"
      event_registration_summary_metrics:
        $ref: "#/definitions/EventRegistrationSummaryMetricDto"
      create_time:
        type: "string"
        description: "The create time of the event in UTC format."
    description: "Provides information about the event listing."
  Href:
    type: "object"
    properties:
      href:
        type: "string"
  Links:
    type: "object"
    properties:
      self:
        $ref: "#/definitions/Href"
      next:
        $ref: "#/definitions/Href"
      prev:
        $ref: "#/definitions/Href"
    description: "HATEOAS links for navigation. Is null if no additional navigation\
      \ links are available."
  PaginationDtoEventListingDto:
    type: "object"
    properties:
      records:
        type: "array"
        description: "List of records for the current page"
        readOnly: true
        items:
          $ref: "#/definitions/EventListingDto"
      next_cursor:
        type: "string"
        example: "roBvv-Nidkuxg8gTAJ5joDU6yQufWMDdEHjRqzcTXnZ3qBZYR3jZChnZTC6McJ6j8M70fM4IFT8KNJvA076D0g"
        description: "Use to get the next page of results."
        readOnly: true
      prev_cursor:
        type: "string"
        example: "Z83W2HtZsQkzXXStyKDDKs5hkuPz7mQvqcg37Quq-Lb_BXnKqYmUf13Li6ZyeRCY8M70fM4IFT8KNJvA076D0g"
        description: "Use to get the previous page of results."
        readOnly: true
      _links:
        $ref: "#/definitions/Links"
      total_records:
        type: "integer"
        format: "int32"
        example: 26
        description: "Total number of records across all pages."
        readOnly: true
    description: "Generic pagination response with cursor-based navigation"
  ContactDto:
    type: "object"
    required:
    - "name"
    - "organization_name"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "The create time of the event."
      email_address:
        type: "string"
        example: "john.doe@aol.com"
        description: "The email address to use to when replying to email, as well\
          \ as the email that receives SO notifications."
        minLength: 0
        maxLength: 128
      from_email_address:
        type: "string"
        example: "john.doe@aol.com"
        description: "The email address to use for sending confirmation emails."
        minLength: 0
        maxLength: 128
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "The time the event was last modified. ISO format"
      name:
        type: "string"
        example: "John Doe"
        description: "The contact name to associate with the event."
        minLength: 0
        maxLength: 100
      organization_name:
        type: "string"
        example: "Doe Orchards"
        description: "The organization name to associate with the event."
        minLength: 0
        maxLength: 255
      phone_number:
        type: "string"
        example: "781 265 8956"
        description: "The phone number to associate with the event."
        minLength: 1
        maxLength: 25
    title: "ContactDto"
  EventMediaAssetDto:
    type: "object"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "Create time of the event media. ISO format."
      external_id:
        type: "string"
        example: "123456"
        description: "The external ID to associate with the event media."
      external_url:
        type: "string"
        description: "The event media URL."
      internal_id:
        type: "string"
        example: "123456"
        description: "The internal ID for the event media."
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "Last time the media was modified. ISO format."
      media_type:
        type: "string"
        example: "BNR"
        description: "Identifies the media type."
    title: "EventMediaAssetDto"
  ItemSummaryDto:
    type: "object"
    required:
    - "name"
    properties:
      associated:
        type: "boolean"
        example: true
        description: "Specifies if the item is associated with the promo code."
      display_item_on_promo_redemption:
        type: "boolean"
        example: true
        description: "Specifies if the item on promo code redemption displays."
      hidden_flag:
        type: "boolean"
        example: true
        description: "Specifies if the item is hidden."
      item_id:
        type: "string"
        example: "ITEM123"
        description: "The unique identifier for the item."
      name:
        type: "string"
        example: "T-shirt"
        description: "The name of the item."
    title: "ItemSummaryDto"
    description: "Summary information for an item."
  StatusDisplayLabelDto:
    type: "object"
    properties:
      label:
        type: "string"
        example: "Sold out"
        description: "The display text for the status. For example: Available, Sold\
          \ out."
        readOnly: true
      label_key:
        type: "string"
        example: "status_label.available"
        description: "The translation key for the status. For example: status_label.available,\
          \ status_label.sold_out."
        readOnly: true
    title: "StatusDisplayLabelDto"
    description: "Represents a display label for a status with the translation label\
      \ key."
  TicketSummaryDto:
    type: "object"
    required:
    - "name"
    - "ticket_type"
    properties:
      name:
        type: "string"
        example: "VIP Ticket"
        description: "The name to associate with the ticket."
      ticket_id:
        type: "string"
        example: "TICKET123"
        description: "The unique identifier for the ticket."
      ticket_type:
        type: "string"
        example: "PAID"
        description: "The type of ticket."
      associated:
        type: "boolean"
        example: false
        description: "Specifies if the ticket is associated with the promo code."
      display_ticket_on_promo_redemption:
        type: "boolean"
        example: true
        description: "Specifies if the ticket on the promo code redemption displays."
      hidden_flag:
        type: "boolean"
        example: true
        description: "Specifies if the ticket is hidden."
    title: "TicketSummaryDto"
  PromoCodeDto:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "WIN95"
        description: "The name of the promotional code."
      end_time:
        type: "string"
        example: "2026-11-17T17:33:21.652Z"
        description: "The date to end the promotional code. ISO format"
      deleted_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "Delete time of the promo code. ISO format."
      description:
        type: "string"
        example: "JAN_PROMO"
        description: "Promotional code description."
      discount_amount:
        type: "number"
        example: 10.0
        description: "The discount dollar amount date to apply to the promotional\
          \ code."
      discount_code_scope:
        type: "string"
        example: "ORDER_TOTAL"
        description: "The scope that applies to the discount code."
      discount_code_type:
        type: "string"
        example: "PERCENT"
        description: "The type of discount code to use for the event."
      discount_percent:
        type: "integer"
        format: "int32"
        example: 20
        description: "The promotional discount percentage to apply for the promotional\
          \ code."
      id:
        type: "string"
        example: "123456"
        description: "The ID to use for the promotion code."
      items:
        type: "array"
        example:
        - item_id: "item123"
          name: "T-shirt"
        description: "List of items associated with this promo code."
        items:
          $ref: "#/definitions/ItemSummaryDto"
      paused_flag:
        type: "boolean"
        example: false
        description: "Pauses the promotional code."
      quantity_available:
        type: "integer"
        format: "int32"
        example: 500
        description: "Total number of promotional codes available for use."
      quantity_total:
        type: "integer"
        format: "int32"
        example: 1000
        description: "Total number of promotional codes to accept."
      quantity_used:
        type: "integer"
        format: "int32"
        description: "Total number of promotional codes used."
      start_time:
        type: "string"
        example: "2026-11-10T17:33:21.652Z"
        description: "The date the promotional code starts. ISO format"
      status:
        type: "string"
        description: "The status of the promo code."
      status_labels:
        type: "array"
        example:
        - label: "Available"
          label_key: "status_label.available"
        - label: "Sold out"
          label_key: "status_label.sold_out"
        description: "Status display labels with display text and translation key."
        readOnly: true
        items:
          $ref: "#/definitions/StatusDisplayLabelDto"
      tickets:
        type: "array"
        items:
          $ref: "#/definitions/TicketSummaryDto"
      time_limit_flag:
        type: "boolean"
        example: false
        description: "Indicates a time limit applies to the promotional code."
    title: "PromoCodeDto"
    description: "Specifies promotion code details."
  AttributeDto:
    type: "object"
    required:
    - "name"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "Create time of the event."
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "Last modification time of the event."
      attribute_id:
        type: "string"
        example: "attr123"
        description: "The unique identifier for the attribute."
      display_order:
        type: "integer"
        format: "int32"
        example: 1
        description: "The order in which the attribute should display."
      name:
        type: "string"
        example: "Size"
        description: "The name of the attribute"
      quantity_total:
        type: "integer"
        format: "int32"
        example: 100
        description: "The total quantity available for this attribute."
      quantity_remaining:
        type: "integer"
        format: "int32"
        example: 20
        description: "The total quantity that remains available for this attribute."
      quantity_sold:
        type: "integer"
        format: "int32"
        example: 40
        description: "The total quantity sold for this attribute."
      paused_flag:
        type: "boolean"
        example: false
        description: "Specifies if the attribute is currently paused from sales."
      deleted_time:
        type: "string"
        example: "2025-05-01T00:00:00.000Z"
        description: "The time when the attribute was deleted."
      status_labels:
        type: "array"
        items:
          $ref: "#/definitions/StatusDisplayLabelDto"
    title: "AttributeDto"
  ItemDto:
    type: "object"
    required:
    - "name"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "The create time of the event is ISO format."
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "Last modification time of the event."
      item_id:
        type: "string"
        example: "ITEM123"
        description: "The unique identifier for the item."
      display_order:
        type: "integer"
        format: "int32"
        example: 1
        description: "The order in which to display an item."
      name:
        type: "string"
        example: "VIP Ticket"
        description: "The name of the item."
      description:
        type: "string"
        example: "Premium access to all event areas."
        description: "The description of the item."
      price:
        type: "number"
        example: 25.0
        description: "The price per item."
      quantity_total:
        type: "integer"
        format: "int32"
        example: 100
        description: "The total number of items available."
      quantity_remaining:
        type: "integer"
        format: "int32"
        example: 50
        description: "The total number of items still available."
      quantity_sold:
        type: "integer"
        format: "int32"
        example: 50
        description: "The total number of items sold."
      limit_per_order:
        type: "integer"
        format: "int32"
        example: 2
        description: "Limits the number of items per order."
      show_remaining_flag:
        type: "boolean"
        example: false
        description: "Set to display or not to display the number of remaining items\
          \ to customers."
      paused_flag:
        type: "boolean"
        example: true
        description: "Specifies if the item is currently paused from sales."
      deletable_flag:
        type: "boolean"
        example: true
        description: "Specifies if the item can be deleted."
        readOnly: true
      media_internal_id:
        type: "string"
        example: "rqla5y1"
        description: "The internal identifier for the item's image."
      media_url:
        type: "string"
        example: "https://example.com/media/image.jpg"
        description: "The URL to associate with the media."
      time_limit_flag:
        type: "boolean"
        example: false
        description: "Specifies if the item has time-based availability."
      start_time:
        type: "string"
        example: "2025-04-17T20:00:00.000Z"
        description: "The start time when the item becomes available."
      end_time:
        type: "string"
        example: "2025-05-17T20:00:00.000Z"
        description: "The time that the item become unavailable."
      hidden_flag:
        type: "boolean"
        example: false
        description: "Specifies if the item is hidden from customers."
      deleted_time:
        type: "string"
        example: "2024-05-17T20:00:00.000Z"
        description: "The time when the item was deleted."
      status_labels:
        type: "array"
        items:
          $ref: "#/definitions/StatusDisplayLabelDto"
      attributes:
        type: "array"
        items:
          $ref: "#/definitions/AttributeDto"
    title: "ItemDto"
  TrackDto:
    type: "object"
    required:
    - "campaign_activity_id"
    properties:
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "31bb0c22-1c72-4841-9d2c-8bd41ed526bc"
        description: "The campaign activity ID associated with the registration form."
        readOnly: true
      conf_email_campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "31bb0c22-1c72-4841-9d2c-8bd41ed526bc"
        description: "The confirmation email campaign activity ID."
        readOnly: true
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "The event's create time."
        readOnly: true
      items_header:
        type: "string"
        example: "Items"
        description: "items header"
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "The event's last modification time."
        readOnly: true
      media_assets:
        type: "array"
        description: "The list of media assets configured for the event."
        items:
          $ref: "#/definitions/EventMediaAssetDto"
      overall_ticket_capacity:
        type: "integer"
        format: "int32"
        example: 100
        description: "The total overall ticket capacity."
      platform_fee_scope_type:
        type: "string"
        example: "OWNER"
        description: "Specifies if the platform fee is passed to registrant or absorbed\
          \ by the event host."
      promo_codes:
        type: "array"
        description: "The list of <code>promo_codes</code> configured for the event."
        items:
          $ref: "#/definitions/PromoCodeDto"
      reg_manually_closed_flag:
        type: "boolean"
        example: true
        description: "Closes registration to prevent further registrations."
      registration_end_time:
        type: "string"
        example: "2024-01-01T20:30:00Z"
        description: "The date and time when registration should end. ISO format."
      registration_type:
        type: "string"
        example: "TICKET"
        description: "The registration type for the event."
      restrict_to_single_ticket_flag:
        type: "boolean"
        example: true
        description: "Restricts selection to a single ticket."
      tickets_header:
        type: "string"
        example: "Tickets"
        description: "The header to use for tickets."
      track_id:
        type: "string"
        example: "s8zabc"
        description: "The ticket <code>track id</code>."
        readOnly: true
      items:
        type: "array"
        readOnly: true
        items:
          $ref: "#/definitions/ItemDto"
    title: "TrackDto"
  EventMetaDataDto:
    type: "object"
    properties:
      items_enabled:
        type: "boolean"
        example: true
        description: "Specifies if the items are enabled for the event."
      paid_event:
        type: "boolean"
        example: true
        description: "Specifies if the event requires payment."
      promo_codes_enabled:
        type: "boolean"
        example: true
        description: "Specifies if promotion codes are enabled for the event."
    title: "EventMetaDataDto"
    description: "Additional information related to event"
  EventPromotionDto:
    type: "object"
    properties:
      assoc_activity_sub_type:
        type: "string"
        example: "EMAIL_INVITATION"
        description: "The type of associated activity"
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "123e4567-e89b-12d3-a456-426614174000"
        description: "The unique identifier for the campaign activity."
      document_id:
        type: "string"
        format: "uuid"
        example: "123e4567-e89b-12d3-a456-426614174000"
        description: "The unique identifier for the document."
      ext_id:
        type: "string"
        format: "uuid"
        example: "123e4567-e89b-12d3-a456-426614174000"
        description: "The external identifier."
      default:
        type: "boolean"
        example: false
        description: "Whether this is the default promotion."
    description: "Represents a promotion associated with an event."
  EventSettingsDto:
    type: "object"
    properties:
      event_requires_payments:
        type: "boolean"
        example: true
        description: "Specifies if the event is configured to require payment."
      item_configured:
        type: "boolean"
        example: false
        description: "Specifies if items exist for the event."
      online_payment_configured:
        type: "boolean"
        example: false
        description: "Specifies if online payment is configured for the event."
      payment_configured:
        type: "boolean"
        example: false
        description: "Specifies if payment is configured for the event."
      promo_code_configured:
        type: "boolean"
        example: false
        description: "Specifies if promo code is configured for the event."
      ticket_configured:
        type: "boolean"
        example: true
        description: "Specifies if ticketing is configured for the event"
  OnlineMeetingDto:
    type: "object"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "Create time of the event. ISO format."
      enabled_flag:
        type: "boolean"
        example: false
      instructions:
        type: "string"
      label:
        type: "string"
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "Last modification time of the event. ISO format."
      provider_type:
        type: "string"
        example: "ZOOM"
        description: "The type of online meeting provider for the event"
      url:
        type: "string"
        example: "https://meet.google.com/abc-defg-hij"
        description: "The URL to use for the online meeting."
    title: "OnlineMeetingDto"
  Message:
    type: "object"
    properties:
      error_key:
        type: "string"
      error_message:
        type: "string"
    description: "List of error messages associated with the payment option."
  PaymentOptionConfigurationDto:
    type: "object"
    properties:
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "Create time of the event."
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "Last modification time of the event."
      payment_account_id:
        type: "string"
        format: "uuid"
        example: "123e4567-e89b-12d3-a456-426614174000"
        description: "The unique identifier for the payment account."
      payment_option:
        type: "string"
        example: "WEPAY"
        description: "The type of payment option."
      visible:
        type: "boolean"
        example: true
        description: "Specifies if the payment option is visible to users."
      selected:
        type: "boolean"
        example: false
        description: "Specifies if the payment option is selected by default."
      additional_accounts:
        type: "boolean"
        example: false
        description: "Specifies if additional accounts are available."
      error_messages:
        type: "array"
        description: "List of error messages associated with the payment option."
        items:
          $ref: "#/definitions/Message"
    description: "Base configuration for payment options in an event."
  CheckPaymentOptionConfigurationDto:
    allOf:
    - $ref: "#/definitions/PaymentOptionConfigurationDto"
    - type: "object"
      properties:
        payable_to:
          type: "string"
          description: "The name to make the check payable too."
  PayPalPaymentConfigurationDto:
    allOf:
    - $ref: "#/definitions/PaymentOptionConfigurationDto"
    - type: "object"
      properties:
        email_address:
          type: "string"
        venmo_enabled:
          type: "boolean"
        pay_later_enabled:
          type: "boolean"
  OnlinePaymentOptionConfigurationDto:
    allOf:
    - $ref: "#/definitions/PaymentOptionConfigurationDto"
    - type: "object"
      properties:
        email_address:
          type: "string"
  AdditionalPaymentOptionConfigurationDto:
    type: "object"
    properties:
      payment_option:
        type: "string"
        example: "STRIPE"
        description: "Provides an additional form of payment option."
      payment_option_configurations:
        type: "array"
        example: "./events.yaml#/PaymentOptionConfigurationDto"
        description: "Provides additional payment option configurations."
        items: {}
    title: "AdditionalPaymentOptionConfigurationDto"
  EventPlatformFeeConfigurationBaseDto:
    type: "object"
    properties:
      currency_type:
        type: "string"
        example: "USD"
        description: "The type of currency to use for the event."
      exempt:
        type: "boolean"
        example: false
        description: "Specifies if the platform fee is exempt."
      flat_rate_component:
        type: "number"
        example: 1.0
        description: "Specifies the flat rate component of the platform fee."
      last_refreshed_time:
        type: "string"
        example: "2023-11-17T17:33:21.655Z"
        description: "The flat rate component of the platform fee"
      percent_component:
        type: "number"
        example: 2.5
        description: "The percentage component of the platform fee."
      platform_fee_instruction_keys:
        type: "array"
        description: "List of instruction keys for platform fees."
        items:
          type: "string"
          description: "List of instruction keys for platform fees."
    title: "EventPlatformFeeConfigurationBaseDto"
  PaymentConfigurationDto:
    type: "object"
    properties:
      currency_type:
        type: "string"
        example: "USD"
        description: "Identifies the currency used for payment."
      payment_instructions:
        type: "string"
        example: "{\"WEPAY\":\"Credit card payment instructions\"}"
        description: "Payment instructions for each payment option."
      payment_option_configurations:
        type: "array"
        description: "Payment options."
        items: {}
        maxItems: 1
      additional_payment_option_configurations:
        type: "array"
        description: "Additional configurations for payment options."
        items:
          $ref: "#/definitions/AdditionalPaymentOptionConfigurationDto"
      platform_fee_configuration:
        $ref: "#/definitions/EventPlatformFeeConfigurationBaseDto"
      platform_fee_scope_type:
        type: "string"
        example: "REGISTRANT"
        description: "The scope type for platform fees."
    title: "PaymentConfigurationDto"
  EventDto:
    type: "object"
    required:
    - "campaign_id"
    - "default_track"
    - "description"
    - "event_end"
    - "event_start"
    - "event_type"
    - "location_type"
    - "name"
    - "time_zone"
    - "title"
    properties:
      description:
        type: "string"
        example: "It's time for the High-Class Reunion. A night of reminiscing, networking,\
          \ and celebrating shared success amongst old friends."
        description: "Provides the event description."
        minLength: 0
        maxLength: 600
      title:
        type: "string"
        example: "Riverdale High - Class of 2015 Reunion"
        description: "The title for the event. The title does not have to be unique\
          \ for an account."
        maxLength: 100
      name:
        type: "string"
        example: "Class of 2015 Reunion"
        description: "The name of the event, has to be unique for the account."
        minLength: 1
        maxLength: 100
      event_id:
        type: "string"
        format: "uuid"
        example: "05cf4d60-56ea-4023-bf49-b35e56a9c7b5"
        description: "The ID that uniquely identifies the event."
      campaign_id:
        type: "string"
        format: "uuid"
        example: "05cf4d60-56ea-4023-bf49-b35e56a9c7b5"
        description: "The system assigned ID that uniquely identifies the event and\
          \ is identical to the `event_id`."
      event_start:
        type: "string"
        example: "2023-12-01T20:30:00Z"
        description: "The date the event starts."
      event_end:
        type: "string"
        example: "2023-12-01T21:30:00Z"
        description: "The date the event ends."
      event_type:
        type: "string"
        example: "PERFORMING_ARTS"
        description: "Identifies the event type."
      eso:
        type: "string"
        example: "001wQREZJ98vGM_rGt-fbtpGw=="
        description: "The encrypted SOId."
        readOnly: true
      contact:
        description: "The contact information associated with the event."
        $ref: "#/definitions/ContactDto"
      create_time:
        type: "string"
        example: "2023-11-17T17:33:21.652Z"
        description: "The time the event was created, in ISO format. Read-only."
      active_time:
        type: "string"
        example: "2023-11-17T17:33:21.655Z"
        description: "The time the event was published, in ISO format."
        readOnly: true
      cancelled_time:
        type: "string"
        example: "2023-11-17T17:33:21.655Z"
        description: "The time the event was cancelled, in ISO format. Read-only."
        readOnly: true
      deleted_time:
        type: "string"
        example: "2023-11-17T17:33:21.655Z"
        description: "The time the event was deleted, in ISO format. Read-only."
        readOnly: true
      last_update_time:
        type: "string"
        example: "2023-12-07T13:18:39.681Z"
        description: "The date and time the event was last modified."
      address:
        $ref: "#/definitions/AddressDto"
      currency_type:
        type: "string"
        example: "USD"
        description: "The accepted currency for payments. Required for events collecting\
          \ payments ['AUD','BRL','CAD','CHF','CZK','DKK','EUR','GBP','HKD','HUF','ILS','JPY','MXN','MYR','NOK','NZD','PHP','PLN','RUB','SEK','SGD','THB','TRY','TWD','USD']"
      default_track:
        $ref: "#/definitions/TrackDto"
      display_contact_flag:
        type: "boolean"
        example: true
        description: "Display or hide event contact information on the registration\
          \ form and registration confirmation message."
      display_end_time_flag:
        type: "boolean"
        example: true
        description: "Display or hide the event end time on the registration form\
          \ and registration confirmation message."
      display_on_calendar_flag:
        type: "boolean"
        example: true
        description: "Display the event on the Event Calendar."
      display_time_zone_flag:
        type: "boolean"
        example: true
        description: "Display the time zone on the registration form and registration\
          \ confirmation message."
      event_calendar_url:
        type: "string"
        example: "https://lp.constantcontactpages.com/ev/calendar/001wZREXJ98vGM_rGt-fbtpGw=="
        description: "The event calendar URL."
        readOnly: true
      event_metadata:
        description: "Includes additional event information."
        $ref: "#/definitions/EventMetaDataDto"
      event_code:
        type: "string"
        example: "EVENT124"
        description: "The short code to use for the event."
      event_promotions:
        type: "array"
        description: "List of event promotions."
        readOnly: true
        items:
          $ref: "#/definitions/EventPromotionDto"
      event_settings:
        $ref: "#/definitions/EventSettingsDto"
      event_widget_url:
        type: "string"
        example: "https://eventsfeed.constantcontact.com/widget/myevents.js?eso=001wZREXJ98vGM_rGt-fbtpGw=="
        description: "The event widget URL."
        readOnly: true
      failed_campaign_activities:
        type: "array"
        description: "List of failed campaign activities."
        readOnly: true
        items:
          type: "string"
          format: "uuid"
          description: "Lists the campaign activity ID for any failed campaign activities."
      location_type:
        type: "string"
        example: "PHYSICAL"
        description: "Specifies if the event is physical and/or virtual, or to be\
          \ determined."
      notify_owner_on_reg:
        type: "boolean"
        example: true
        description: "If `true`, sends an email to the event owner when a registration\
          \ is made."
      online_meeting:
        description: "The online meeting information for a virtual event."
        $ref: "#/definitions/OnlineMeetingDto"
      payment_configuration:
        description: "The virtual event's payment configuration information."
        $ref: "#/definitions/PaymentConfigurationDto"
      registration_url:
        type: "string"
        example: "https://l1.constantcontactpages.com/ev/reg/scrk2u2"
        description: "The event registration URL."
        readOnly: true
      status:
        type: "string"
        example: "ACTIVE"
        description: "Specifies the event's current status."
      time_zone:
        type: "string"
        example: "US/Eastern"
        description: "The time zone where the event takes place."
      time_zone_abbreviation:
        type: "string"
        example: "EST"
        description: "The abbreviation to use to indicate the time zone where the\
          \ event takes place."
        readOnly: true
  SegmentMaster:
    type: "object"
    properties:
      name:
        type: "string"
        example: "Re-engage contacts who did not open the last 5 campaigns."
        description: "The segment's unique descriptive name."
      segment_id:
        type: "integer"
        format: "int32"
        example: 14
        description: "The system generated number that uniquely identifies the segment."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The system generated date and time that the segment was created\
          \ (ISO-8601 format)."
        readOnly: true
      edited_at:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The system generated date and time that the segment's <code>name</code>\
          \ or <code>segment_criteria</code> was last updated (ISO-8601 format)."
        readOnly: true
  Next:
    type: "object"
    required:
    - "href"
    properties:
      href:
        type: "string"
        description: "The next link in the page, or null if there are no additional\
          \ pages."
  SegmentsDTO:
    type: "object"
    required:
    - "segments"
    properties:
      segments:
        type: "array"
        description: "Lists all segments for the account."
        items:
          $ref: "#/definitions/SegmentMaster"
      _links:
        description: "HAL property that contains next link if applicable."
        $ref: "#/definitions/segmentsLinks"
  SegmentData:
    type: "object"
    required:
    - "name"
    - "segment_criteria"
    properties:
      name:
        type: "string"
        example: "Re-engage contacts who did not open the last 5 email campaign activities."
        description: "The segment's unique descriptive name."
      segment_criteria:
        type: "string"
        example: "{\"version\":\"1.0.0\",\"criteria\":{\"type\":\"and\",\"group\"\
          :[{\"source\":\"tracking\",\"field\":\"not_opened\",\"op\":\"contains-any\"\
          ,\"const_value\":\"last-n-campaigns\",\"param\":\"5\"}]}}"
        description: "The <code>segment_criteria</code> specifies the contact data\
          \ that Constant Contact uses to evaluate and identify contacts that meet\
          \ your criteria. The <code>segment_criteria</code> must be formatted as\
          \ single-string escaped JSON. The top-level <code>group</code> <code>type</code>\
          \ must be <code>add</code>."
        maxLength: 20000
  SegmentDetail:
    type: "object"
    properties:
      name:
        type: "string"
        example: "Re-engage contacts who did not open the last 5 email campaign activities."
        description: "The segment's unique descriptive name."
      segment_criteria:
        type: "string"
        example: "{\"version\":\"1.0.0\",\"criteria\":{\"type\":\"and\",\"group\"\
          :[{\"source\":\"tracking\",\"field\":\"not_opened\",\"op\":\"contains-any\"\
          ,\"const_value\":\"last-n-campaigns\",\"param\":\"5\"}]}}"
        description: "The segment's contact selection criteria formatted as single-string\
          \ escaped JSON."
        maxLength: 20000
      segment_id:
        type: "integer"
        format: "int32"
        example: 14
        description: "The system generated number that uniquely identifies the segment."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The system generated date and time (ISO-8601) that the segment\
          \ was created."
        readOnly: true
      edited_at:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The system generated date and time (ISO-8601) that the segment's\
          \ <code>name</code> or <code> segment_criteria</code> was last updated."
        readOnly: true
  SegmentName:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "Contacts who did not open any email campaign within the last 100\
          \ days."
        description: "The segment's unique descriptive name."
  EmailAddress:
    type: "object"
    required:
    - "address"
    properties:
      address:
        type: "string"
        example: "dlang@example.com"
        description: "The email address of the contact. The email address must be\
          \ unique for each contact."
        maxLength: 80
      permission_to_send:
        type: "string"
        example: "implicit"
        description: "Identifies the type of permission that the Constant Contact\
          \ account has to send email to the contact. Types of permission: explicit,\
          \ implicit, not_set, pending_confirmation, temp_hold, unsubscribed."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the email_address was created, in ISO-8601\
          \ format. System generated."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the email_address was last updated, in ISO-8601\
          \ format. System generated."
        readOnly: true
      opt_in_source:
        type: "string"
        example: "Contact"
        description: "Describes who opted-in the email_address; valid values are Contact\
          \ or Account. Your integration must accurately identify <code>opt_in_source</code>\
          \ for compliance reasons; value is set on POST, and is read-only going forward."
      opt_in_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the email_address was opted-in to receive\
          \ email from the account, in ISO-8601 format. System generated."
        readOnly: true
      opt_out_source:
        type: "string"
        example: "Contact"
        description: "Describes the source of the unsubscribed/opt-out action: either\
          \ Account or Contact. If the Contact opted-out, then the account cannot\
          \ send any campaigns to this contact until the contact opts back in. If\
          \ the Account, then the account can add the contact back to any lists and\
          \ send to them. Displayed only if contact has been unsubscribed/opt-out."
        readOnly: true
      opt_out_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the contact unsubscribed/opted-out of receiving\
          \ email from the account, in ISO-8601 format. Displayed only if contact\
          \ has been unsubscribed/opt-out. System generated."
        readOnly: true
      opt_out_reason:
        type: "string"
        example: "I am no longer interested in this service."
        description: "The reason, as provided by the contact, that they unsubscribed/opted-out\
          \ of receiving email campaigns."
        maxLength: 255
      confirm_status:
        type: "string"
        example: "confirmed"
        description: "Indicates if the contact confirmed their email address after\
          \ they subscribed to receive emails. Possible values: pending, confirmed,\
          \ off."
        readOnly: true
    description: "A contact subresource describing the contact's email address."
  ContactCustomField:
    type: "object"
    required:
    - "custom_field_id"
    - "value"
    properties:
      custom_field_id:
        type: "string"
        format: "uuid"
        example: "1618ae62-4752-11e9-9c8a-fa163e6b01c1"
        description: "The custom_field's unique ID"
      value:
        type: "string"
        example: "Tesla S 2017"
        description: "The custom_field value."
        maxLength: 255
    description: "Custom fields allow Constant Contact users to add custom content\
      \ to a contact that can be used to personalize emails in addition to the standard\
      \ set of variables available for email personalization."
  PhoneNumber:
    type: "object"
    properties:
      phone_number_id:
        type: "string"
        format: "uuid"
        example: "6eec28a6-1cf5-11ea-859f-fa163e56c9b0"
        description: "Unique ID for the phone number"
        readOnly: true
      phone_number:
        type: "string"
        example: "+1-555-555-5555"
        description: "The contact's phone number."
        maxLength: 25
      kind:
        type: "string"
        example: "home"
        description: "Identifies the type of phone number; valid values are home,\
          \ work, mobile, or other."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the street address was created, in ISO-8601\
          \ format. System generated."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the phone number was last updated, in ISO-8601\
          \ format. System generated."
        readOnly: true
      update_source:
        type: "string"
        example: "Account"
        description: "Identifies who last updated the phone number; valid values are\
          \ Contact or Account"
      create_source:
        type: "string"
        example: "Account"
        description: "Identifies who added the phone number; valid values are Contact\
          \ or Account."
  StreetAddress:
    type: "object"
    required:
    - "kind"
    properties:
      street_address_id:
        type: "string"
        format: "uuid"
        example: "977a9a2e-3e00-11ea-804b-fa163e56c9b0"
        description: "Unique ID for the street address"
        readOnly: true
      kind:
        type: "string"
        example: "home"
        description: "Describes the type of address; valid values are home, work,\
          \ or other."
      street:
        type: "string"
        example: "123 Kashmir Valley Road"
        description: "Number and street of the address."
        maxLength: 255
      city:
        type: "string"
        example: "Chicago"
        description: "The name of the city where the contact lives."
        maxLength: 50
      state:
        type: "string"
        example: "Illinois"
        description: "The name of the state or province where the contact lives."
        maxLength: 50
      postal_code:
        type: "string"
        example: "60609"
        description: "The zip or postal code of the contact."
        maxLength: 50
      country:
        type: "string"
        example: "United States"
        description: "The name of the country where the contact lives."
        maxLength: 50
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the street address was created, in ISO-8601\
          \ format. System generated."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the street address was last updated, in ISO-8601\
          \ format. System generated."
        readOnly: true
  Note:
    type: "object"
    properties:
      note_id:
        type: "string"
        format: "uuid"
        example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        description: "The ID that uniquely identifies the note (UUID format)."
      created_at:
        type: "string"
        format: "date-time"
        example: "2021-05-12T13:48:44.108Z"
        description: "The date that the note was created."
      content:
        type: "string"
        example: "This contact resubscribed on 2021-05-12."
        description: "The content for the note."
        maxLength: 2000
    description: "A note about the contact."
  SmsChannelConsentDetails:
    type: "object"
    properties:
      sms_consent_permission:
        type: "string"
        example: "explicit"
        description: "Identifies the current permission status for the SMS channel."
      consent_type:
        type: "string"
        example: "promotional_sms"
      opt_in_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time, in ISO-8601 format, that the contact subscribed/opted-in\
          \ to receiving SMS from the account. Displays only if the contact subscribes/opts-in.\
          \ System generated."
        readOnly: true
      opt_out_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time, in ISO-8601 format, that the contact unsubscribed/opted-out\
          \ of receiving SMS from the account. Displays only if the contact unsubscribed/opted-out.\
          \ System generated."
        readOnly: true
      advertised_frequency:
        type: "string"
        example: "1"
        description: "The numeric used to set how often to send SMS advertisements\
          \ during a specified time interval (<code>advertised_interval</code>). For\
          \ example, if the <code>advertised_frequency</code> is set to <code>2</code>\
          \ and the  <code>advertised_interval</code> is set to <code>monthly</code>,\
          \ the contact can receive up to two advertisements per month."
      advertised_interval:
        type: "string"
        example: "monthly"
        description: "Identifies the unit of time used by Constant Contact to send\
          \ SMS advertisements as a string enum. For example, if the <code>advertised_frequency</code>\
          \ is set to <code>2</code> and the <code>advertised_interval</code> is set\
          \ to <code>monthly</code>, the contact can receive up to two advertisements\
          \ per month."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the SMS stats were created, in ISO-8601 format.\
          \ System generated."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the SMS stats were updated, in ISO-8601 format.\
          \ System generated."
        readOnly: true
    description: "Provides SMS consent details."
  ContactResource:
    type: "object"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "1618ae62-4752-11e9-9c8a-fa163e6b01c1"
        description: "Unique ID for each contact resource"
        readOnly: true
      email_address:
        $ref: "#/definitions/EmailAddress"
      first_name:
        type: "string"
        example: "Debora"
        description: "The first name of the contact."
        maxLength: 50
      last_name:
        type: "string"
        example: "Lang"
        description: "The last name of the contact."
        maxLength: 50
      job_title:
        type: "string"
        example: "Musician"
        description: "The job title of the contact."
        maxLength: 50
      company_name:
        type: "string"
        example: "Acme Corp."
        description: "The name of the company where the contact works."
        maxLength: 50
      birthday_month:
        type: "integer"
        example: 11
        description: "The month value for the contact's birthday. Valid values are\
          \ from 1 through 12. You must use this property with <code>birthday_month</code>."
      birthday_day:
        type: "integer"
        example: 24
        description: "The day value for the contact's birthday. Valid values are from\
          \ 1 through 12. You must use this property with <code>birthday_day</code>."
      anniversary:
        type: "string"
        example: "2006-11-15"
        description: "The anniversary date for the contact. For example, this value\
          \ could be the date when the contact first became a customer of an organization\
          \ in Constant Contact. Valid date formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD,\
          \ YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY, or M-DD-YYYY."
        maxLength: 10
      update_source:
        type: "string"
        example: "Contact"
        description: "Identifies who last updated the contact; valid values are  <code>Contact</code>\
          \ or <code>Account</code>."
      create_source:
        type: "string"
        example: "Account"
        description: "Describes who added the contact; valid values are <code>Contact</code>\
          \ or <code>Account</code>. Your integration must accurately identify <code>create_source</code>\
          \ for compliance reasons; value is set when contact is created."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "System generated date and time that the resource was created,\
          \ in ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "System generated date and time that the contact was last updated,\
          \ in ISO-8601 format."
        readOnly: true
      deleted_at:
        type: "string"
        format: "date"
        example: "2016-07-08"
        description: "For deleted contacts (<code>email_address</code> contains <code>opt_out_source</code>\
          \ and <code>opt_out_date</code>), shows the date of deletion."
        readOnly: true
      custom_fields:
        type: "array"
        description: "Array of up to 25 <code>custom_field</code> subresources."
        items:
          $ref: "#/definitions/ContactCustomField"
        maxItems: 25
      phone_numbers:
        type: "array"
        description: "Array of up to 3 <code>phone_numbers</code> subresources."
        items:
          $ref: "#/definitions/PhoneNumber"
        maxItems: 3
      street_addresses:
        type: "array"
        description: "Array of up to 3 <code>street_addresses</code> subresources."
        items:
          $ref: "#/definitions/StreetAddress"
        maxItems: 3
      list_memberships:
        type: "array"
        description: "Array of up to 50 <code>list_ids</code> to which the contact\
          \ is subscribed."
        items:
          type: "string"
          format: "uuid"
          example: "07936f78-662a-11eb-af0a-fa163e56c9b0"
          description: "Unique list ID to which the contact is subscribed."
          readOnly: true
        maxItems: 50
      taggings:
        type: "array"
        description: "Array of tags (<code>tag_id</code>) assigned to the contact,\
          \ up to a maximum of 50."
        items:
          type: "string"
          format: "uuid"
          example: "e7ddac60-51da-11eb-b3a4-fa163e6b01c1"
          description: "Unique ID of a tag assigned to the contact, up to a maximum\
            \ of 50."
          readOnly: true
        maxItems: 50
      notes:
        type: "array"
        description: "An array of notes about the contact listed by most recent note\
          \ first."
        items:
          $ref: "#/definitions/Note"
        maxItems: 150
      sms_channel:
        type: "object"
        description: "Includes SMS channel and consent details."
        properties:
          sms_channel_id:
            type: "string"
            format: "uuid"
            example: "3fa85f64-5712-6245-b3fc-2c963f66bfc6"
            description: "The unique ID that identifies an SMS channel."
          sms_address:
            type: "string"
            example: "7815551212"
            description: "The phone number of the SMS-capable phone, which does not\
              \ include the country code."
          dial_code:
            type: "string"
            example: "1"
            description: "The dial code used for the SMS-capable phone. For example,\
              \ the dial code for the United States is <code>1</code>."
          country_code:
            type: "string"
            example: "US"
            description: "The two character ISO country code used for the SMS-capable\
              \ phone. For example, the country code for the United States is <code>US</code>."
          update_source:
            type: "string"
            example: "Contact"
            description: "Identifies who last updated SMS details for the contact.\
              \ Valid values are Contact or Account"
          create_source:
            type: "string"
            example: "Account"
            description: "Identifies who added SMS details for the contact. The value\
              \ is set when you create SMS details for the contact. Valid values are\
              \ <code>Contact</code> or <code>Account</code>. "
          sms_channel_consents:
            type: "array"
            description: "Identifies SMS channel consent details such as the current\
              \ permission status for the SMS channel and opt-in date."
            items:
              $ref: "#/definitions/SmsChannelConsentDetails"
    description: "Use this endpoint to retrieve (GET), update (PUT), or DELETE an\
      \ existing contact resource specified using the <code>contact_id</code> path\
      \ parameter."
  EmailAddressPut:
    type: "object"
    required:
    - "address"
    properties:
      address:
        type: "string"
        example: "dlang@example.com"
        description: "The email address of the contact. The email address must be\
          \ unique for each contact."
        maxLength: 80
      permission_to_send:
        type: "string"
        example: "implicit"
        description: "Identifies the type of permission that the Constant Contact\
          \ account has to send email to the contact. Types of permission: explicit,\
          \ implicit, not_set, pending_confirmation, temp_hold, unsubscribed."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the email_address was created, in ISO-8601\
          \ format. System generated."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the email_address was last updated, in ISO-8601\
          \ format. System generated."
        readOnly: true
      opt_in_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the email_address was opted-in to receive\
          \ email from the account, in ISO-8601 format. System generated."
        readOnly: true
      opt_out_source:
        type: "string"
        example: "Contact"
        description: "Describes the source of the unsubscribed/opt-out action: either\
          \ Account or Contact. If the Contact opted-out, then the account cannot\
          \ send any campaigns to this contact until the contact opts back in. If\
          \ the Account, then the account can add the contact back to any lists and\
          \ send to them. Displayed only if contact has been unsubscribed/opt-out."
        readOnly: true
      opt_out_date:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "Date and time that the contact unsubscribed/opted-out of receiving\
          \ email from the account, in ISO-8601 format. Displayed only if contact\
          \ has been unsubscribed/opt-out. System generated."
        readOnly: true
      opt_out_reason:
        type: "string"
        example: "I am no longer interested in this service."
        description: "The reason, as provided by the contact, that they unsubscribed/opted-out\
          \ of receiving email campaigns."
        maxLength: 255
      confirm_status:
        type: "string"
        example: "confirmed"
        description: "Indicates if the contact confirmed their email address after\
          \ they subscribed to receive emails. Possible values: pending, confirmed,\
          \ off."
        readOnly: true
    description: "The contact's email address and related properties."
  PhoneNumberPut:
    type: "object"
    properties:
      phone_number:
        type: "string"
        example: "+1-555-555-5555"
        description: "The contact's phone number."
        maxLength: 25
      kind:
        type: "string"
        example: "home"
        description: "Identifies the type of phone number; valid values are home,\
          \ work, mobile, or other."
  StreetAddressPut:
    type: "object"
    required:
    - "kind"
    properties:
      kind:
        type: "string"
        example: "home"
        description: "Describes the type of address; valid values are home, work,\
          \ or other."
      street:
        type: "string"
        example: "123 Kashmir Valley Road"
        description: "Number and street of the address."
        maxLength: 255
      city:
        type: "string"
        example: "Chicago"
        description: "The name of the city where the contact lives."
        maxLength: 50
      state:
        type: "string"
        example: "Illinois"
        description: "The name of the state or province where the contact lives."
        maxLength: 50
      postal_code:
        type: "string"
        example: "60609"
        description: "The zip or postal code of the contact."
        maxLength: 50
      country:
        type: "string"
        example: "United States"
        description: "The name of the country where the contact lives."
        maxLength: 50
  ContactSmsChannelConsents:
    type: "object"
    required:
    - "consent_type"
    - "sms_consent_permission"
    properties:
      sms_consent_permission:
        type: "string"
        example: "explicit"
        description: "The current status of the SMS channel."
      consent_type:
        type: "string"
        example: "promotional_sms"
        description: "The type of consent provided."
      consent_medium_details:
        type: "string"
        example: "IPhone 13 device used to provide consent."
        description: "Additional information about the consent such as the type of\
          \ device used."
  ContactSmsChannel:
    type: "object"
    required:
    - "full_sms_address"
    - "sms_channel_consents"
    properties:
      full_sms_address:
        type: "string"
        example: "17815551212"
        description: "The SMS-capable phone number for the Contact, including the\
          \ dial code"
      sms_channel_consents:
        type: "array"
        description: "The consents for the SMS Channel."
        items:
          $ref: "#/definitions/ContactSmsChannelConsents"
  ContactPutRequest:
    type: "object"
    required:
    - "update_source"
    properties:
      email_address:
        $ref: "#/definitions/EmailAddressPut"
      first_name:
        type: "string"
        example: "Debora"
        description: "The contact's first name"
        maxLength: 50
      last_name:
        type: "string"
        example: "Lang"
        description: "The contact's last name"
        maxLength: 50
      job_title:
        type: "string"
        example: "Musician"
        description: "The contact's job title"
        maxLength: 50
      company_name:
        type: "string"
        example: "Acme Corp."
        description: "Name of the company the contact works for."
        maxLength: 50
      birthday_month:
        type: "integer"
        example: 11
        description: "Accepts values from 1-12; must be used with <code>birthday_day</code>"
      birthday_day:
        type: "integer"
        example: 24
        description: "Accepts values from 1-31; must be used with <code>birthday_month</code>"
      anniversary:
        type: "string"
        example: "2006-11-15"
        description: "The anniversary date; Accepted formats are MM/DD/YYYY, M/D/YYYY,\
          \ YYYY/MM/DD, YYYY/M/D, YYYY-MM-DD, YYYY-M-D, MM-DD-YYYY, M-D-YYYY"
        maxLength: 10
      update_source:
        type: "string"
        example: "Account"
        description: "Identifies who last updated the contact; valid values are <code>Contact</code>\
          \ or <code>Account</code>."
      custom_fields:
        type: "array"
        description: "Array of up to 25 <code>custom_field</code> subresources."
        items:
          $ref: "#/definitions/ContactCustomField"
        maxItems: 25
      phone_numbers:
        type: "array"
        description: "Array of up to 3 <code>phone_numbers</code> subresources."
        items:
          $ref: "#/definitions/PhoneNumberPut"
        maxItems: 3
      street_addresses:
        type: "array"
        description: "Array of up to 3 <code>street_addresses</code> subresources."
        items:
          $ref: "#/definitions/StreetAddressPut"
        maxItems: 3
      list_memberships:
        type: "array"
        description: "Array of up to 50 <code>list_ids</code> to which the contact\
          \ is subscribed."
        items:
          type: "string"
          format: "uuid"
          example: "07936f78-662a-11eb-af0a-fa163e56c9b0"
          description: "Unique list ID to which the contact is subscribed."
          readOnly: true
        maxItems: 50
      taggings:
        type: "array"
        description: "Array of tags (<code>tag_id</code>) assigned to the contact,\
          \ up to a maximum of 50."
        items:
          type: "string"
          format: "uuid"
          example: "e7ddac60-51da-11eb-b3a4-fa163e6b01c1"
          description: "Unique ID of a tag assigned to the contact, up to a maximum\
            \ of 50."
          readOnly: true
        maxItems: 50
      notes:
        type: "array"
        description: "An array of notes about the contact listed by most recent note\
          \ first."
        items:
          $ref: "#/definitions/Note"
        maxItems: 150
      sms_channel:
        $ref: "#/definitions/ContactSmsChannel"
  Contacts:
    type: "object"
    properties:
      contacts:
        type: "array"
        items:
          $ref: "#/definitions/ContactResource"
      contacts_count:
        type: "integer"
        example: 3249
        description: "Total number of contacts in the response."
      _links:
        $ref: "#/definitions/PagingLinks"
      status:
        type: "string"
        description: "If you use the <code>segment_id</code> query parameter to filter\
          \ results based on a segment, this property indicates that the V3 API accepted\
          \ your request and is still processing it."
    description: "Use this endpoint to retrieve (GET) a collection of existing contacts,\
      \ or to create (POST) a new contact."
  EmailAddressPost:
    type: "object"
    required:
    - "address"
    properties:
      address:
        type: "string"
        example: "dlang@example.com"
        description: "The contact's email address."
        maxLength: 80
      permission_to_send:
        type: "string"
        example: "implicit"
        description: "Identifies the type of permission that the Constant Contact\
          \ account has been granted to send email to the contact. Types of permission:\
          \ explicit, implicit, not_set, pending_confirmation, temp_hold, unsubscribed."
    description: "The contact's email address and related properties."
  ContactPostRequest:
    type: "object"
    properties:
      email_address:
        $ref: "#/definitions/EmailAddressPost"
      first_name:
        type: "string"
        example: "Debora"
        description: "The first name of the contact."
        maxLength: 50
      last_name:
        type: "string"
        example: "Lang"
        description: "The last name of the contact."
        maxLength: 50
      job_title:
        type: "string"
        example: "Musician"
        description: "The job title of the contact."
        maxLength: 50
      company_name:
        type: "string"
        example: "Acme Corp."
        description: "The name of the company where the contact works."
        maxLength: 50
      create_source:
        type: "string"
        example: "Account"
        description: "Describes who added the contact; valid values are <code>Contact</code>\
          \ or <code>Account</code>. Your integration must accurately identify <code>create_source</code>\
          \ for compliance reasons; value is set on POST, and is read-only going forward."
      birthday_month:
        type: "integer"
        example: 11
        description: "The month value for the contact's birthday. Valid values are\
          \ from 1 through 12. The <code>birthday_month</code> property is required\
          \ if you use <code>birthday_day</code>."
      birthday_day:
        type: "integer"
        example: 24
        description: "The day value for the contact's birthday. Valid values are from\
          \ 1 through 31. The <code>birthday_day</code> property is required if you\
          \ use <code>birthday_month</code>."
      anniversary:
        type: "string"
        example: "2006-11-15"
        description: "The anniversary date for the contact. For example, this value\
          \ could be the date when the contact first became a customer of an organization\
          \ in Constant Contact. Valid date formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD,\
          \ YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY, or M-DD-YYYY."
        maxLength: 10
      custom_fields:
        type: "array"
        description: "Array of up to 25 <code>custom_field</code> key value pairs."
        items:
          $ref: "#/definitions/ContactCustomField"
        maxItems: 25
      phone_numbers:
        type: "array"
        description: "Array of up to 3 phone numbers subresources."
        items:
          $ref: "#/definitions/PhoneNumberPut"
        maxItems: 3
      street_addresses:
        type: "array"
        description: "Array of up to 3 street address subresources."
        items:
          $ref: "#/definitions/StreetAddressPut"
        maxItems: 3
      list_memberships:
        type: "array"
        description: "Array of <code>list_id</code>s to which the contact is being\
          \ subscribed, up to a maximum of 50."
        items:
          type: "string"
          format: "uuid"
          example: "07936f78-662a-11eb-af0a-fa163e56c9b0"
          description: "Unique ID of a list to which the contact is subscribed, up\
            \ to a maximum of 50."
          readOnly: true
        maxItems: 50
      taggings:
        type: "array"
        description: "Array of tags (<code>tag_id</code>) assigned to the contact,\
          \ up to a maximum of 50."
        items:
          type: "string"
          format: "uuid"
          example: "00e4429c-3beb-11eb-9f34-fa163e56c9b9"
          description: "Unique ID of a tag assigned to the contact, up to a maximum\
            \ of 50."
          readOnly: true
        maxItems: 50
      notes:
        type: "array"
        description: "An array of notes about the contact."
        items:
          $ref: "#/definitions/Note"
        maxItems: 150
      sms_channel:
        $ref: "#/definitions/ContactSmsChannel"
  CreateOrUpdateContactCustomField:
    type: "object"
    properties:
      custom_field_id:
        type: "string"
        format: "uuid"
        example: "1618ae62-4752-11e9-9c8a-fa163e6b01c1"
        description: "The unique ID for the <code>custom_field</code>."
      value:
        type: "string"
        example: "Tesla S 2017"
        description: "The value of the <code>custom_field</code>."
        maxLength: 255
  JmmlSmsChannelConsents:
    type: "object"
    required:
    - "consent_medium_details"
    - "consent_medium_type"
    - "consent_medium_url"
    - "consent_type"
    - "sms_consent_permission"
    properties:
      sms_consent_permission:
        type: "string"
        example: "pending_confirmation"
        description: "The current consent status of the SMS Channel."
      consent_type:
        type: "string"
        example: "promotional_sms"
        description: "The type of consent provided."
      consent_medium_type:
        type: "string"
        example: "LF"
        description: "A code representing where the consent was retrieved."
      consent_medium_url:
        type: "string"
        example: "https://lp.constantcontactpages.com/su/iPtuMuh"
        description: "The URL for which the consent was gathered, such as a landing\
          \ page."
      consent_medium_details:
        type: "string"
        example: "Contact used our landing page to consent to SMS."
        description: "Additional information for the consent"
      advertised_frequency:
        type: "integer"
        example: 1
        description: "The numeric component used to indicate how often to send advertising.\
          \ For example, <code>1</code> indicates once. Use with <code>advertised_internal</code>\
          \ property to indicate when on the calender to send it. For example, to\
          \ send once (<code>1</code>) daily, weekly, or monthly."
      advertised_interval:
        type: "string"
        example: "weekly"
        description: "The calender interval used to indicate when advertising is sent.\
          \ For example <code>weekly</code>."
  JmmlSmsChannel:
    type: "object"
    required:
    - "country_code"
    - "dial_code"
    - "sms_address"
    - "sms_channel_consents"
    properties:
      sms_address:
        type: "string"
        example: "7815551212"
        description: "The contact's SMS-capable phone number, excluding the country\
          \ code."
      dial_code:
        type: "string"
        example: "1"
        description: "The dial code the country uses. For example, use <code>1</code>\
          \ for the United States dial code."
      country_code:
        type: "string"
        example: "US"
        description: "The two-digit code that identifies the country."
      sms_channel_consents:
        type: "array"
        description: "The consents provided for the SMS Channel."
        items:
          $ref: "#/definitions/JmmlSmsChannelConsents"
    description: "The contact's SMS details."
  ContactCreateOrUpdateInput:
    type: "object"
    required:
    - "list_memberships"
    properties:
      email_address:
        type: "string"
        example: "jdodge@example.com"
        description: "The email address for the contact. This method identifies each\
          \ unique contact using their email address. If the email address exists\
          \ in the account, this method updates the contact. If the email address\
          \ is new, this method creates a new contact."
        maxLength: 50
      first_name:
        type: "string"
        example: "Jake"
        description: "The first name of the contact."
        maxLength: 50
      last_name:
        type: "string"
        example: "Dodge"
        description: "The last name of the contact."
        maxLength: 50
      job_title:
        type: "string"
        example: "Musician"
        description: "The job title of the contact."
        maxLength: 50
      company_name:
        type: "string"
        example: "Acme Corp."
        description: "The name of the company where the contact works."
        maxLength: 50
      phone_number:
        type: "string"
        example: "(555) 555-1212"
        description: "The phone number for the contact."
        maxLength: 25
      list_memberships:
        type: "array"
        description: "The contact lists you want to add the contact to as an array\
          \ of up to 50 contact <code>list_id</code> values. You must include at least\
          \ one <code>list_id</code>."
        items:
          type: "string"
          format: "uuid"
          example: "07936f78-662a-11eb-af0a-fa163e56c9b0"
        maxItems: 50
        minItems: 1
      custom_fields:
        type: "array"
        description: "The custom fields you want to add to the contact as an array\
          \ of up to 50 custom field objects."
        items:
          $ref: "#/definitions/CreateOrUpdateContactCustomField"
        maxItems: 50
      anniversary:
        type: "string"
        example: "11-15-2006"
        description: "The anniversary date for the contact. For example, this value\
          \ could be the date when the contact first became a customer of an organization\
          \ in Constant Contact. Valid date formats are MM/DD/YYYY, M/D/YYYY, YYYY/MM/DD,\
          \ YYYY/M/D, YYYY-MM-DD, YYYY-M-D,M-D-YYYY, or M-DD-YYYY.\n"
      birthday_month:
        type: "integer"
        example: 11
        description: "The month value for the contact's birthday. Valid values are\
          \ from 1 through 12. The <code>birthday_month</code> property is required\
          \ if you use <code>birthday_day</code>."
      birthday_day:
        type: "integer"
        example: 24
        description: "The day value for the contact's birthday. Valid values are from\
          \ 1 through 31. The <code>birthday_day</code> property is required if you\
          \ use <code>birthday_month</code>."
      street_address:
        type: "object"
        properties:
          kind:
            type: "string"
            example: "home"
            description: "The type of street address for the contact. Valid values\
              \ are <code>home</code>, <code>work</code>, or <code>other</code>."
          street:
            type: "string"
            example: "1601 Trapelo Rd"
            description: "The number and street of the contact's address."
            maxLength: 255
          city:
            type: "string"
            example: "Waltham"
            description: "The name of the city for the contact's address."
            maxLength: 50
          state:
            type: "string"
            example: "Massachusetts"
            description: "The name of the state or province for the contact's address."
            maxLength: 50
          postal_code:
            type: "string"
            example: "02451"
            description: "The zip or postal code for the contact's address."
            maxLength: 50
          country:
            type: "string"
            example: "United States"
            description: "The name of the country for the contact's address."
            maxLength: 50
        required:
        - "kind"
      sms_channel:
        $ref: "#/definitions/JmmlSmsChannel"
  ContactCreateOrUpdateResponse:
    type: "object"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "ab7ab702-b935-11e9-8a58-fa163e6b01c1"
        description: "The unique identifier for the contact that the V3 API created\
          \ or updated."
      action:
        type: "string"
        description: "Identifies if the V3 API created a new contact or updated an\
          \ existing contact."
  ContactXref:
    type: "object"
    properties:
      sequence_id:
        type: "string"
        example: "0016633325"
        description: "The V2 API contact unique identifier"
      contact_id:
        type: "string"
        format: "uuid"
        example: "ab7ab702-b935-11e9-8a58-fa163e6b01c1"
        description: "The V3 API contact unique identifier"
    description: "The cross-referenced pair of V3 API <code>list_id</code> and V2\
      \ API <code>sequence_id</code> for a list. Response is sorted ascending by <code>sequence_id</code>."
  ContactXrefs:
    type: "object"
    properties:
      xrefs:
        type: "array"
        description: "An array of cross-referenced V3 API <code>contact_id</code>\
          \ and V2 API <code>sequence_id</code> values. Response is sorted ascending\
          \ by <code>sequence_id</code>."
        items:
          $ref: "#/definitions/ContactXref"
        maxItems: 500
  CustomFieldResource:
    type: "object"
    required:
    - "label"
    - "type"
    properties:
      custom_field_id:
        type: "string"
        format: "uuid"
        example: "1618ae62-4752-11e9-9c8a-fa163e6b01c1"
        description: "The custom_field's unique ID"
        readOnly: true
      label:
        type: "string"
        example: "Vehicle make and model year"
        description: "The display name for the custom_field shown in the UI as free-form\
          \ text"
        maxLength: 50
      name:
        type: "string"
        example: "Vehicle_make_and_model_year"
        description: "Unique name for the custom_field constructed from the label\
          \ by replacing blanks with underscores."
        readOnly: true
        maxLength: 50
      type:
        type: "string"
        example: "string"
        description: "Specifies the type of value the custom_field field accepts:\
          \ string or date."
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "System generated date and time that the resource was updated,\
          \ in ISO-8601 format."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the resource was created, in ISO-8601 format.\
          \ System generated."
        readOnly: true
    description: "Custom fields allow Constant Contact users to add custom content\
      \ to a contact that can be used to personalize emails in addition to the standard\
      \ set of variables available for email personalization."
  CustomFieldInput:
    type: "object"
    required:
    - "label"
    - "type"
    properties:
      label:
        type: "string"
        example: "Vehicle make and model year"
        description: "The display name for the custom_field shown in the UI as free-form\
          \ text"
        maxLength: 50
      type:
        type: "string"
        example: "string"
        description: "Specifies the type of value the custom_field field accepts:\
          \ string or date."
  CustomFields:
    type: "object"
    properties:
      custom_fields:
        type: "array"
        items:
          $ref: "#/definitions/CustomFieldResource"
        maxItems: 100
      _links:
        $ref: "#/definitions/PagingLinks"
    description: "Use this endpoint to retrieve (GET) all custom_fields in the user's\
      \ account, or to create (POST) a new custom_field."
  ContactList:
    type: "object"
    required:
    - "list_id"
    - "name"
    properties:
      list_id:
        type: "string"
        format: "uuid"
        example: "06526938-56dd-11e9-932a-fa163ea075fa"
        description: "Unique ID for the contact list"
        readOnly: true
      name:
        type: "string"
        example: "Multiple purchases"
        description: "The name given to the contact list"
      description:
        type: "string"
        example: "List of repeat customers."
        description: "Text describing the list."
      favorite:
        type: "boolean"
        description: "Identifies whether or not the account has favorited the contact\
          \ list."
        default: false
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "System generated date and time that the resource was created,\
          \ in ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the list was last updated, in ISO-8601 format.\
          \ System generated."
        readOnly: true
      deleted_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "If the list was deleted, this property shows the date and time\
          \ it was deleted, in ISO-8601 format. System generated."
        readOnly: true
      membership_count:
        type: "integer"
        example: 327
        description: "The total number of contacts that are members in a list. Does\
          \ not apply to segment type lists."
        readOnly: true
  ListInput:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "Multiple purchases"
        description: "The name given to the contact list"
        maxLength: 255
      favorite:
        type: "boolean"
        example: true
        description: "Identifies whether or not the account has favorited the contact\
          \ list."
        default: false
      description:
        type: "string"
        example: "List of repeat customers"
        description: "Text describing the list."
  ContactListPutPost:
    type: "object"
    required:
    - "list_id"
    - "name"
    properties:
      list_id:
        type: "string"
        format: "uuid"
        example: "06526938-56dd-11e9-932a-fa163ea075fa"
        description: "Unique ID for the contact list"
        readOnly: true
      name:
        type: "string"
        example: "Multiple purchases"
        description: "The name given to the contact list"
      description:
        type: "string"
        example: "List of repeat customers."
        description: "Text describing the list."
      favorite:
        type: "boolean"
        description: "Identifies whether or not the account has favorited the contact\
          \ list."
        default: false
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "System generated date and time that the resource was created,\
          \ in ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the list was last updated, in ISO-8601 format.\
          \ System generated."
        readOnly: true
      deleted_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "If the list was deleted, this property shows the date and time\
          \ it was deleted, in ISO-8601 format. System generated."
        readOnly: true
  ActivityDeleteListResponse:
    type: "object"
    properties:
      activity_id:
        type: "string"
        format: "uuid"
        description: "Unique ID for the delete list batch job."
      state:
        type: "string"
        example: "initialized"
        description: "The state of the request:\n <p><ul>\n <li>initialized - request\
          \ has been received</li>\n <li>processing - request is being processed</li>\n\
          \ <li>completed - job completed</li>\n <li>cancelled - request was cancelled</li>\n\
          \ <li>failed - job failed to complete</li>\n <li>timed_out - the request\
          \ timed out before completing\"</li>\n  </ul> </p>"
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:53:04-05:00"
        description: "Date and time that the request was received, in ISO-8601 format."
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-03-03T10:56:29-05:00"
        description: "Date and time that the request status was updated, in ISO-8601\
          \ format."
      percent_done:
        type: "integer"
        example: 1
        description: "Job completion percentage"
      activity_errors:
        type: "array"
        description: "Array of messages describing the errors that occurred."
        items:
          type: "string"
          example: "Message describing the error condition."
          description: "Message describing the error condition."
          readOnly: true
      _links:
        type: "object"
        properties:
          self:
            type: "object"
            description: "Link to the activity status to use in tracking the request\
              \ status."
            properties:
              href:
                type: "string"
                example: "/v3/activities/04fa57a7-cf55-4185-cc1a-58ed29bf0a6a"
  ContactListArray:
    type: "object"
    properties:
      lists:
        type: "array"
        items:
          $ref: "#/definitions/ContactList"
      lists_count:
        type: "integer"
        example: 249
        description: "The total number of contact lists."
      _links:
        $ref: "#/definitions/PagingLinks"
  ListXref:
    type: "object"
    properties:
      sequence_id:
        type: "string"
        example: "0016633325"
        description: "The V2 API list unique identifier"
      list_id:
        type: "string"
        format: "uuid"
        example: "71600990-908b-11e6-907f-1200166bff25"
        description: "The V3 API list unique identifier"
    description: "The cross-referenced pair of V3 API <code>list_id</code> and V2\
      \ API <code>sequence_id</code> for a list. Response is sorted ascending by <code>sequence_id</code>."
  ListXrefs:
    type: "object"
    properties:
      xrefs:
        type: "array"
        description: "An array of cross-referenced V3 API <code>list_id</code> and\
          \ V2 API <code>sequence_id</code> properties. Response is sorted ascending\
          \ by <code>sequence_id</code>."
        items:
          $ref: "#/definitions/ListXref"
        maxItems: 500
  HistoryDetails:
    type: "object"
    properties:
      state:
        type: "string"
        example: "O"
        description: "The code representing the consent state, including <code>E</code>\
          \ for optin and <code>O</code> for Optin."
      source:
        type: "string"
        example: "A"
        description: "The code representing the consent source type, including <code>A</code>\
          \ for Account, <code>C</code> for Contact, and <code>S</code>' for System."
      consent_type:
        type: "string"
        example: "promotional_sms"
        description: "The type of SMS consent used."
      consent_action_time:
        type: "string"
        format: "date-time"
        example: "2023-01-23 06:09:23 -0800"
        description: "The date and time that SMS engagement data was last updated,\
          \ in ISO-8601 format. System generated."
      consent_action_type:
        type: "string"
        example: "opt_out"
        description: "The type of consent action provided."
      consent_medium_type:
        type: "string"
        example: "MD"
        description: "The code representing the medium used to provide consent. Medium\
          \ types include mobile device (<code>MD</code>). lead generation form(<code>LF</code>),\
          \ deactivation by carrier(<code>CD</code>), import_file:(<code>FI</code>),\
          \ and system (<code>SY</code>)."
      source_consent_timestamp:
        type: "string"
        example: "2016-03-03T10:53:04-05:0"
        description: "The time that SMS consent was last updated."
      source_sms_number:
        type: "string"
        example: "6035550239"
        description: "If applicable, the SMS consent number associated with the source."
      advertised_frequency:
        type: "integer"
        example: 2
        description: "If applicable, the advertising numeric component used to advertise\
          \ to the contact.. For example, if <code>advertised_frequency</code> is\
          \ set to <code> 2</code> , and  <code>advertised_interval</code> is set\
          \ to <code>M</code>, the contact receives advertisements twice a month."
      advertised_interval:
        type: "string"
        example: "W"
        description: "If applicable, the interval component used to advertise to the\
          \ contact. For example, if <code>advertised_frequency</code> is set to <code>\
          \ 2</code> , and  <code>advertised_interval</code> is set to <code>M</code>,\
          \ the contact receives advertisements twice a month."
    description: "Additional details about the SMS consent actions (opt-in, opt-out)\
      \ in JSON format. The  <code>consent_action_type</code> and the method used\
      \ to add or update a contacts SMS details determines which properties are returned\
      \ in the results."
  SmsEngagementHistory:
    type: "array"
    items:
      type: "object"
      description: "Provides a contact's SMS engagement history details. The properties\
        \ returned depend on the type of SMS consent granted by the contact."
      properties:
        contact_id:
          type: "string"
          example: "7f7923da-ebf7-11ec-ae6e-3e22fbb230ec"
          description: "The unique contact UUID."
        sms_channel_id:
          type: "string"
          example: "3fa85f64-5712-6245-b3fc-2c963f66bfc6"
          description: "The unique SMS channel UUID."
        sms_channel_history_id:
          type: "string"
          example: "04515cb3-17be-41e4-823a-f71c3d381c7b"
          description: "The unique SMS channel history UUID."
        insert_time:
          type: "string"
          format: "date-time"
          example: "2016-03-03T10:53:04-05:00"
          description: "The date and time that the history record was created, in\
            \ ISO-8601 format. System generated."
        history_details:
          $ref: "#/definitions/HistoryDetails"
  ContactsCounts:
    type: "object"
    properties:
      total:
        type: "integer"
        example: 72
        description: "Total number of contacts for the account."
      explicit:
        type: "integer"
        example: 10
        description: "Total number of contacts explicitly confirmed. Consent is obtained\
          \ when you explicitly ask your potential contacts for permission to send\
          \ the email (for example, using a sign-up form) and they agree. After you\
          \ obtain express consent, it is good forever or until the contact opts out."
      implicit:
        type: "integer"
        example: 20
        description: "Total number of contacts implicitly confirmed. Consent is inferred\
          \ based on actions, such as having an existing business relationship (making\
          \ a purchase or donation, for example). In order to maintain implied consent\
          \ to comply with CASL a contact must take a business action with you at\
          \ least once every two years. Under CAN-Spam there is no need to maintain\
          \ implied consent, it is assumed until the receiver indicates they no longer\
          \ wish to receive messages."
      pending:
        type: "integer"
        example: 30
        description: "Total number of contacts pending confirmation. Consent is requested\
          \ and pending confirmation from the contact."
      unsubscribed:
        type: "integer"
        example: 12
        description: "Total number of unsubscribed contacts. Consent is revoked when\
          \ a contact has unsubscribed."
      new_subscriber:
        type: "integer"
        example: 1
        description: "Total number of newly subscribed contacts."
  ContactResubscribeRequest:
    type: "object"
    required:
    - "list_ids"
    properties:
      list_ids:
        type: "array"
        description: "Array of list id values. Constant Contact adds the resubscribed\
          \ contact to the contact lists you provide in the array."
        items:
          type: "string"
          format: "uuid"
          example: "04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
          description: "Contact list id value."
  Tag:
    type: "object"
    properties:
      tag_id:
        type: "string"
        format: "uuid"
        example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        description: "The ID that uniquely identifies a tag (UUID format)"
      name:
        type: "string"
        example: "Gold card member"
        description: "The unique tag name."
      contacts_count:
        type: "integer"
        example: 325
        description: "The total number of contacts who are assigned this tag."
        readOnly: true
      created_at:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The system generated date and time when the tag was created\
          \ (ISO-8601 format)."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "The system generated date and time when the tag was last updated\
          \ (ISO-8601 format)."
        readOnly: true
      tag_source:
        type: "string"
        example: "ESTY"
        description: "The source used to tag contacts."
        readOnly: true
  TagPut:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "Bronze card member"
        description: "The new tag name to use. The tag name must be unique."
        minLength: 1
        maxLength: 255
  ActivityErrors:
    type: "object"
    properties:
      message:
        type: "string"
        description: "Message describing the error condition."
        readOnly: true
  ActivityGenericStatus:
    type: "object"
    properties:
      items_total_count:
        type: "integer"
        example: 89
        description: "The total number of tags that this activity will delete."
        readOnly: true
      items_completed_count:
        type: "integer"
        example: 89
        description: "The number of tags that this activity has currently deleted."
        readOnly: true
  ActivityGeneric:
    type: "object"
    required:
    - "activity_id"
    - "state"
    properties:
      activity_id:
        type: "string"
        example: "d44ac96c-24f3-11eb-8ae8-fa163e595123"
        description: "The ID that uniquely identifies the activity."
      state:
        type: "string"
        example: "completed"
        description: "The processing state for the activity."
      created_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "The system generated date and time that the resource was created,\
          \ in ISO-8601 format."
        readOnly: true
      updated_at:
        type: "string"
        format: "date-time"
        example: "2016-01-23T13:48:44.108Z"
        description: "The system generated date and time that the resource was last\
          \ updated, in ISO-8601 format."
        readOnly: true
      percent_done:
        type: "integer"
        example: 25
        description: "The percentage complete for the specified activity."
        readOnly: true
      activity_errors:
        type: "array"
        description: "An array of error messages if errors occurred for a specified\
          \ activity. The system returns an empty array if no errors occur."
        readOnly: true
        items:
          $ref: "#/definitions/ActivityErrors"
      status:
        $ref: "#/definitions/ActivityGenericStatus"
      _links:
        $ref: "#/definitions/tagsActivityLinks"
  Tags:
    type: "object"
    properties:
      tags:
        type: "array"
        description: "Lists all tags and provides tag details."
        items:
          $ref: "#/definitions/Tag"
      _links:
        description: "HAL property that contains next link if applicable."
        $ref: "#/definitions/tagsPagingLinks"
  TagPost:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "Silver card member"
        description: "Specify a unique name to use to identify the tag. Tag names\
          \ must be at least one character in length and not more than 255 characters."
        minLength: 1
        maxLength: 255
      tag_source:
        type: "string"
        example: "ESTY"
        description: "The source used to identify the contacts to tag."
  EmailCampaigns:
    type: "object"
    properties:
      campaign_id:
        type: "string"
        example: "8987dc1a-48ef-433a-b836-7ca4f9aa3481"
        description: "The unique ID used to identify the email campaign (UUID format)."
      created_at:
        type: "string"
        format: "date-time"
        example: "2018-02-06T22:09:15.000Z"
        description: "The system generated date and time that this email campaign\
          \ was created. This string is readonly and is in ISO-8601 format."
        readOnly: true
      current_status:
        type: "string"
        example: "Draft"
        description: "The current status of the email campaign. Valid values are:\
          \ <ul>\n  <li>Draft — An email campaign that you have created but have not\
          \ sent to contacts.</li>\n  <li>Scheduled — An email campaign that you have\
          \ scheduled for Constant Contact to send to contacts.</li>\n  <li>Executing\
          \ — An email campaign that Constant Contact is currently sending to contacts.\
          \ Email campaign activities are only in this status briefly.</li>\n  <li>Done\
          \ — An email campaign that you successfully sent to contacts.</li>\n  <li>Error\
          \ — An email campaign activity that encountered an error.</li>\n  <li>Removed\
          \ — An email campaign that a user deleted. Users can view and restore deleted\
          \ emails through the UI.</li>\n</ul>\n"
      name:
        type: "string"
        example: "December Newsletter for Dog Lovers"
        description: "The descriptive name the user provides to identify this campaign.\
          \ Campaign names must be unique for each account ID."
        maxLength: 80
      type:
        type: "string"
        example: "NEWSLETTER"
        description: "Identifies the type of campaign that you select when creating\
          \ the campaign. Newsletter and Custom Code email campaigns are the primary\
          \ types."
      type_code:
        type: "integer"
        example: 10
        description: "The code used to identify the email campaign `type`. <ul>\n\
          \  <li> 1  (Default) </li>\n  <li> 2  (Bulk Email) </li>\n  <li> 10 (Newsletter)\
          \ </li>\n  <li> 11 (Announcement) </li>\n  <li> 12 (Product/Service News)\
          \ </li>\n  <li> 14 (Business Letter) </li>\n  <li> 15 (Card) </li>\n  <li>\
          \ 16 (Press release)</li>\n  <li> 17 (Flyer) </li>\n  <li> 18 (Feedback\
          \ Request) </li>\n  <li> 19 (Ratings and Reviews) </li>\n  <li> 20 (Event\
          \ Announcement) </li>\n  <li> 21 (Simple Coupon) </li>\n  <li> 22 (Sale\
          \ Promotion) </li>\n  <li> 23 (Product Promotion) </li>\n  <li> 24 (Membership\
          \ Drive) </li>\n  <li> 25 (Fundraiser) </li>\n  <li> 26 (Custom Code Email)</li>\n\
          \  <li> 57 (A/B Test)</li>\n</ul>\n"
      updated_at:
        type: "string"
        format: "date-time"
        example: "2018-06-27T10:28:09.000Z"
        description: "The system generated date and time showing when the campaign\
          \ was last updated. This string is read only and is in ISO-8601 format."
        readOnly: true
  PagedEmailCampaignResponse:
    type: "object"
    properties:
      _links:
        $ref: "#/definitions/emailsPagingLinks"
      campaigns:
        type: "array"
        items:
          $ref: "#/definitions/EmailCampaigns"
  EmailPhysicalAddress:
    type: "object"
    required:
    - "address_line1"
    - "country_code"
    - "organization_name"
    properties:
      address_line1:
        type: "string"
        example: "123 Maple Street"
        description: "Line 1 of the organization's street address."
      address_line2:
        type: "string"
        example: "Unit 1"
        description: "Line 2 of the organization's street address."
      address_line3:
        type: "string"
        description: "Line 3 of the organization's street address."
      address_optional:
        type: "string"
        example: "Near Boston Fire Station"
        description: "An optional address field for the organization. Only <code>format_type</code>\
          \ 3, 4, and 5 can use this property."
      city:
        type: "string"
        example: "Boston"
        description: "The city where the organization sending the email campaign is\
          \ located."
      country_code:
        type: "string"
        example: "US"
        description: "The uppercase two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> for the organization's country."
      country_name:
        type: "string"
        example: "United States"
        description: "The full name of the country where the organization sending\
          \ the email is located. Automatically generated using the <code>country_code</code>."
        readOnly: true
      organization_name:
        type: "string"
        example: "Jake Dodge's Pancakes"
        description: "The name of the organization that is sending the email campaign."
      postal_code:
        type: "string"
        example: "02451"
        description: "The postal code address (ZIP code) of the organization."
      state_code:
        type: "string"
        example: "MA"
        description: "The uppercase two letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1'\
          \ target='_blank'>ISO 3166-1 code</a> for the organization's state. This\
          \ property is required if the <code>country_code</code> is US (United States)."
      state_name:
        type: "string"
        description: "The full state name for a <code>state_code</code> that is inside\
          \ the United States. Automatically generated using the <code>state_code</code>."
        readOnly: true
      state_non_us_name:
        type: "string"
        example: "Victoria"
        description: "The full state name for a <code>state_code</code> that is outside\
          \ the United States. This property is not read only."
  EmailCampaignActivityInput:
    type: "object"
    required:
    - "format_type"
    - "from_email"
    - "from_name"
    - "html_content"
    - "reply_to_email"
    - "subject"
    properties:
      format_type:
        type: "integer"
        format: "int32"
        example: 5
        description: "The email format you are using to create the email campaign\
          \ activity. The V3 API supports creating emails using <code>format_type</code>\
          \ 5 (custom code emails).\n"
      from_name:
        type: "string"
        example: "Jake Dodge"
        description: "The email sender's name to display for the email campaign activity."
        maxLength: 100
      from_email:
        type: "string"
        example: "jdodge@constantcontact.com"
        description: "The sender's email address to use for the email campaign activity.\
          \ You must use a confirmed Constant Contact account email address. Make\
          \ a GET call to <code>/account/emails</code> to return a collection of account\
          \ emails and their confirmation status."
        maxLength: 80
      reply_to_email:
        type: "string"
        example: "jdodge@constantconatct.com"
        description: "The sender's email address to use if the contact replies to\
          \ the email campaign activity. You must use a confirmed Constant Contact\
          \ account email address. Make a GET call to <code>/account/emails</code>\
          \ to return a collection of account emails and their confirmation status."
        maxLength: 80
      subject:
        type: "string"
        example: "Informed Daily Digest"
        description: "The text to display in the subject line that describes the email\
          \ campaign activity."
      preheader:
        type: "string"
        example: "You don't want to miss this."
        description: "The email preheader for the email campaign activity. Contacts\
          \ will view your preheader as a short summary that follows the subject line\
          \ in their email client. Only <code>format_type</code> 3, 4, and 5 email\
          \ campaign activities use the preheader property."
      html_content:
        type: "string"
        example: "<html><body>[[trackingImage]] <a href=\"http://www.constantcontact.com\"\
          >Visit ConstantContact.com!</a> </body></html>"
        description: "The HTML content for the email campaign activity. Only <code>format_type</code>\
          \ 5 (custom code emails) can contain <code>html_content</code>. When creating\
          \ a <code>format_type</code> 5 custom code email, make sure that you include\
          \ <code>[[trackingImage]]</code> in the <code>&lt;body&gt;</code> element\
          \ of your HTML.\n"
        maxLength: 150000
      physical_address_in_footer:
        description: "The physical address for the organization that is sending the\
          \ email campaign. Constant Contact displays this information to contacts\
          \ in the email message footer. If you do not include a physical address\
          \ in the email campaign activity, Constant Contact will use the physical\
          \ address information saved for the Constant Contact user account."
        $ref: "#/definitions/EmailPhysicalAddress"
  EmailCampaignComplete:
    type: "object"
    required:
    - "email_campaign_activities"
    - "name"
    properties:
      name:
        type: "string"
        example: "December Newsletter for Dog Lovers"
        description: "The unique and descriptive name that you specify for the email\
          \ campaign."
        maxLength: 80
      email_campaign_activities:
        type: "array"
        description: "The content of the email campaign as an array that contains\
          \ a single email campaign activity object."
        items:
          $ref: "#/definitions/EmailCampaignActivityInput"
  ActivityReference:
    type: "object"
    properties:
      campaign_activity_id:
        type: "string"
        example: "0e3feddd-c8da-4d53-a507-aae5082b8b75"
        description: "The ID (UUID) that uniquely identifies a campaign activity."
      role:
        type: "string"
        example: "primary_email"
        description: "The purpose of the individual campaign activity in the larger\
          \ email campaign effort. Valid values are: <ul>\n  <li>primary_email — The\
          \ main email marketing campaign that you send to contacts. The <code>primary_email</code>\
          \ contains the complete email content.</li>\n  <li>permalink — A permanent\
          \ link to a web accessible version of the <code>primary_email</code> content\
          \ without any personalized email information. For example, permalinks do\
          \ not contain any of the contact details that you add to the <code>primary_email</code>\
          \ email content. </li>\n  <li>resend — An email campaign that you resend\
          \ to contacts that did not open the email campaign.</li>\n</ul> Constant\
          \ Contact creates a <code>primary_email</code> and a <code>permalink</code>\
          \ role campaign activity when you create an email campaign.\n"
  EmailCampaign:
    type: "object"
    properties:
      campaign_activities:
        type: "array"
        description: "Lists the role and unique activity ID of each campaign activity\
          \ that is associated with an Email Campaign."
        items:
          $ref: "#/definitions/ActivityReference"
      campaign_id:
        type: "string"
        example: "8987dc1a-48ef-433a-b836-7ca4f9aa3481"
        description: "The unique ID used to identify the email campaign (UUID format)."
      created_at:
        type: "string"
        format: "date-time"
        example: "2018-02-06T22:09:15.000Z"
        description: "The system generated date and time that this email campaign\
          \ was created. This string is readonly and is in ISO-8601 format."
        readOnly: true
      current_status:
        type: "string"
        example: "Draft"
        description: "The current status of the email campaign. Valid values are:\
          \ <ul>\n  <li>Draft — An email campaign that you have created but have not\
          \ sent to contacts.</li>\n  <li>Scheduled — An email campaign that you have\
          \ scheduled for Constant Contact to send to contacts.</li>\n  <li>Executing\
          \ — An email campaign that Constant Contact is currently sending to contacts.\
          \ Email campaign activities are only in this status briefly.</li>\n  <li>Done\
          \ — An email campaign that you successfully sent to contacts.</li>\n  <li>Error\
          \ — An email campaign activity that encountered an error.</li>\n  <li>Removed\
          \ — An email campaign that a user deleted. Users can view and restore deleted\
          \ emails through the UI.</li>\n</ul>\n"
      name:
        type: "string"
        example: "December Newsletter for Dog Lovers"
        description: "The descriptive name the user provides to identify this campaign.\
          \ Campaign names must be unique for each account ID."
        maxLength: 80
      type:
        type: "string"
        example: "NEWSLETTER"
        description: "Identifies the type of campaign that you select when creating\
          \ the campaign. Newsletter and Custom Code email campaigns are the primary\
          \ types."
      type_code:
        type: "integer"
        example: 10
        description: "The code used to identify the email campaign `type`. <ul>\n\
          \  <li> 1  (Default) </li>\n  <li> 2  (Bulk Email) </li>\n  <li> 10 (Newsletter)\
          \ </li>\n  <li> 11 (Announcement) </li>\n  <li> 12 (Product/Service News)\
          \ </li>\n  <li> 14 (Business Letter) </li>\n  <li> 15 (Card) </li>\n  <li>\
          \ 16 (Press release)</li>\n  <li> 17 (Flyer) </li>\n  <li> 18 (Feedback\
          \ Request) </li>\n  <li> 19 (Ratings and Reviews) </li>\n  <li> 20 (Event\
          \ Announcement) </li>\n  <li> 21 (Simple Coupon) </li>\n  <li> 22 (Sale\
          \ Promotion) </li>\n  <li> 23 (Product Promotion) </li>\n  <li> 24 (Membership\
          \ Drive) </li>\n  <li> 25 (Fundraiser) </li>\n  <li> 26 (Custom Code Email)</li>\n\
          \  <li> 57 (A/B Test)</li>\n</ul>\n"
      updated_at:
        type: "string"
        format: "date-time"
        example: "2018-06-27T10:28:09.000Z"
        description: "The system generated date and time showing when the campaign\
          \ was last updated. This string is read only and is in ISO-8601 format."
        readOnly: true
  EmailCampaignName:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        example: "December Newsletter for Dog Lovers"
        description: "The updated email campaign name. The email campaign name must\
          \ be unique."
        maxLength: 80
  CrossReference:
    type: "object"
    properties:
      v2_email_campaign_id:
        type: "string"
        example: "1100567546598"
        description: "Identifies an email campaign in the V2 API."
      campaign_id:
        type: "string"
        format: "uuid"
        example: "e4cf53f0-e37f-11e8-9f32-f2801f1b9fd1"
        description: "<p>Identifies a campaign in the V3 API. In the V3 API, each\
          \ campaign contains one or more activities. For more information, see <a\
          \ href=\"/api_guide/v3_v2_email_campaign_deltas.html\" target_\"blank\"\
          >V3 Email Campaign Resource Changes<a/>.<p>"
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "4c08372c-957a-48b5-bc45-72c7f00796cd"
        description: "<p>Identifies a campaign activity in the V3 API. In the V3 API,\
          \ each campaign contains one or more activities. Email type activities represent\
          \ the detailed information in an email and contain properties like <code>from_email</code>\
          \ and <code>from_name</code>. For more information, see <a href=\"/api_guide/v3_v2_email_campaign_deltas.html\"\
          \ target_\"blank\">V3 Campaign Resource Changes<a/>.<p>"
  CrossReferenceResponse:
    type: "object"
    properties:
      xrefs:
        type: "array"
        description: "An array of objects that contain a <code>v2_email_campaign_id</code>\
          \ cross-referenced with a V3 <code>campaign_id</code> and a V3 <code>campaign_activity_id</code>\
          \ value."
        items:
          $ref: "#/definitions/CrossReference"
  EmailCampaignActivity:
    type: "object"
    required:
    - "from_email"
    - "from_name"
    - "reply_to_email"
    - "subject"
    properties:
      campaign_activity_id:
        type: "string"
        example: "4c08372c-957a-48b5-bc45-72c7f00796cd"
        description: "Identifies a campaign activity in the V3 API."
        readOnly: true
      campaign_id:
        type: "string"
        example: "8987dc1a-48ef-433a-b836-7ca4f9aa3481"
        description: "Identifies a campaign in the V3 API."
        readOnly: true
      role:
        type: "string"
        example: "primary_email"
        description: "The purpose of the individual campaign activity in the larger\
          \ email campaign effort. Valid values are: <ul>\n  <li>primary_email — The\
          \ main email marketing campaign that you send to contacts. The <code>primary_email</code>\
          \ contains the complete email content.</li>\n  <li>permalink — A permanent\
          \ link to a web accessible version of the <code>primary_email</code> content\
          \ without any personalized email information. For example, permalinks do\
          \ not contain any of the contact details that you add to the <code>primary_email</code>\
          \ email content. </li>\n  <li>resend — An email campaign that you resend\
          \ to contacts that did not open the email campaign.</li>\n</ul> Constant\
          \ Contact creates a <code>primary_email</code> and a <code>permalink</code>\
          \ role campaign activity when you create an email campaign.\n"
        readOnly: true
      contact_list_ids:
        type: "array"
        description: "The contacts that Constant Contact sends the email campaign\
          \ activity to as an array of contact <code>list_id</code> values. You cannot\
          \ use contact lists and segments at the same time in an email campaign activity."
        items:
          type: "string"
          example: "da10f460-3072-11e9-b282-fa163e6b01c1"
      segment_ids:
        type: "array"
        description: "The contacts that Constant Contact sends the email campaign\
          \ activity to as an array containing a single <code>segment_id</code> value.\
          \ Only <code>format_type</code> 3, 4, and 5 email campaign activities support\
          \ segments. You cannot use contact lists and segments at the same time in\
          \ an email campaign activity."
        items:
          type: "integer"
          example: 1
      current_status:
        type: "string"
        example: "DRAFT"
        description: "The current status of the email campaign activity. Valid values\
          \ are: <ul>\n  <li>DRAFT — An email campaign activity that you have created\
          \ but have not sent to contacts.</li>\n  <li>SCHEDULED — An email campaign\
          \ activity that you have scheduled for Constant Contact to send to contacts.</li>\n\
          \  <li>EXECUTING — An email campaign activity Constant Contact is currently\
          \ sending to contacts. Email campaign activities are only in this status\
          \ briefly.</li>\n  <li>DONE — An email campaign activity that you successfully\
          \ sent to contacts.</li>\n  <li>ERROR — An email campaign activity that\
          \ encountered an error.</li>\n  <li>REMOVED — An email campaign that a user\
          \ deleted. Users can view and restore deleted emails through the UI.</li>\n\
          </ul>\n"
        readOnly: true
      format_type:
        type: "integer"
        format: "int32"
        example: 5
        description: "Identifies the type of email format. Valid values are: <ul>\n\
          \  <li>1 - A legacy custom code email created using the V2 API, the V3 API,\
          \ or the legacy UI HTML editor.</li>\n  <li>2 - An email created using the\
          \ second generation email editor UI.</li>\n  <li>3 - An email created using\
          \ the third generation email editor UI. This email editor features an improved\
          \ drag and drop UI and mobile responsiveness.</li>\n  <li>4 - An email created\
          \ using the fourth generation email editor UI.</li>\n  <li>5 - A custom\
          \ code email created using the V3 API or the new UI HTML editor.</li>\n\
          </ul>\n"
        readOnly: true
      from_email:
        type: "string"
        example: "jdodge@constantcontact.com"
        description: "The email \"From Email\" field for the email campaign activity.\
          \ You must use a confirmed Constant Contact account email address. Make\
          \ a GET call to <code>/account/emails</code> to return a collection of account\
          \ emails and their confirmation status."
      from_name:
        type: "string"
        example: "Jake Dodge"
        description: "The email \"From Name\" field for the email campaign activity."
      reply_to_email:
        type: "string"
        example: "jdodge@constantcontact.com"
        description: "The email \"Reply To Email\" field for the email campaign activity.\
          \ You must use a confirmed Constant Contact account email address. Make\
          \ a GET call to <code>/account/emails</code> to return a collection of account\
          \ emails and their confirmation status."
      subject:
        type: "string"
        example: "Holiday Special Newsletter"
        description: "The email \"Subject\" field for the email campaign activity."
      html_content:
        type: "string"
        example: "<html><body>[[trackingImage]] <a href=\"http://www.constantcontact.com\"\
          >Visit ConstantContact.com!</a> </body></html>"
        description: "The HTML or XHTML content for the email campaign activity. Only\
          \ <code>format_type</code> 1 and 5 (legacy custom code emails or modern\
          \ custom code emails) can contain <code>html_content</code>."
      template_id:
        type: "string"
        example: "1000755366001"
        description: "Identifies the email layout and design template that the email\
          \ campaign activity is using as a base."
        readOnly: true
      permalink_url:
        type: "string"
        example: "https://conta.cc/2GaQ8AY"
        description: "The permanent link to a web accessible version of the email\
          \ campaign content without any personalized email information. The permalink\
          \ URL becomes accessible after you send an email campaign to contacts."
        readOnly: true
      preheader:
        type: "string"
        example: "You don't want to miss this."
        description: "The email preheader for the email campaign activity. Only <code>format_type</code>\
          \ 3, 4, and 5 email campaign activities use the preheader property."
      physical_address_in_footer:
        description: "The physical address of the organization that is sending the\
          \ email campaign. Constant Contact displays this information to contacts\
          \ in the email message footer."
        $ref: "#/definitions/EmailPhysicalAddress"
      document_properties:
        type: "object"
        description: "An object that contains optional properties for legacy format\
          \ type emails (<code>format_type</code> 1 and 2). If you attempt to add\
          \ a property that does apply to the email <code>format_type</code>, the\
          \ API will ignore the property."
        properties:
          style_content:
            type: "string"
            example: ".white{color: #ffffff;}"
            description: "Contains style sheet elements for XHTML letter format emails.\
              \ This property applies only to <code>format_type</code> 1."
            maxLength: 150000
          letter_format:
            type: "string"
            example: "XHTML"
            description: "Email message format. Valid values are <code>HTML</code>\
              \ and <code>XHTML</code>. By default, the value is <code>HTML</code>.\
              \ For more information, see the <a href=\"http://www.constantcontact.com/display_media.jsp?id=87\"\
              \ target=\"_blank\">Advanced Editor User's Guide</a>. This property\
              \ applies only to <code>format_type</code> 1. You cannot change this\
              \ property after you create an email.\n"
            readOnly: true
            default: "HTML"
          greeting_salutation:
            type: "string"
            example: "Dear"
            description: "The greeting used in the email message. This property applies\
              \ only to <code>format_type</code> 1."
            maxLength: 50
          greeting_name_type:
            type: "string"
            example: "F"
            description: "The type of name the campaign uses to greet the contact.\
              \ Valid values are <code>F</code> (First Name), <code>L</code> (Last\
              \ Name), <code>B</code> (First and Last Name), or <code>N</code> (No\
              \ greeting). By default, the value is <code>N</code>. This property\
              \ applies only to <code>format_type</code> 1."
            default: "N"
          greeting_secondary:
            type: "string"
            example: "Greetings!"
            description: "A fallback text string the campaign uses to greet the contact\
              \ when the <code>greeting_name_type</code> is not available or set to\
              \ <code>N</code>. This property applies only to <code>format_type</code>\
              \ 1."
            maxLength: 1500
          subscribe_link_enabled:
            type: "string"
            example: "false"
            description: "If <code>true</code>, the email footer includes a link for\
              \ subscribing to the list. If <code>false</code>, the message footer\
              \ does not include a link for subscribing to the list. By default, the\
              \ value is <code>false</code>. This property applies only to <code>format_type</code>\
              \ 1.\n"
            default: "false"
          subscribe_link_name:
            type: "string"
            example: "Subscribe to my email list!"
            description: "The text displayed as the name for the subscribe link in\
              \ the email footer. This property applies only to <code>format_type</code>\
              \ 1."
            maxLength: 80
          text_content:
            type: "string"
            example: "<Text><Greeting/></Text>"
            description: "Contains the text content that Constant Contact displays\
              \ to contacts when their email client cannot display HTML email. If\
              \ you do not specify text content, Constant Contact displays \"Greetings!\"\
              \ as the text content. This property applies only to <code>format_type</code>\
              \ 1.\n"
            maxLength: 150000
          permission_reminder_enabled:
            type: "string"
            example: "false"
            description: "If <code>true</code>, Constant Contact displays your <code>permission_reminder</code>\
              \ message to contacts at top of the email. If <code>false</code>, Constant\
              \ Contact does not display the message. By default, the value is <code>false</code>.\
              \ This property applies to <code>format_type</code> 1 and 2.\n"
            default: "false"
          permission_reminder:
            type: "string"
            example: "Hi, just a reminder that you're receiving this email because\
              \ you have expressed an interest in our company."
            description: "The message text Constant Contact displays at the top of\
              \ the email message to remind users that they are subscribed to an email\
              \ list. This property applies to <code>format_type</code> 1 and 2."
            maxLength: 1500
          view_as_webpage_enabled:
            type: "string"
            example: "false"
            description: "If <code>true</code>, Constant Contact displays the view\
              \ as web page email message. If <code>false</code> Constant Contact\
              \ does not display the message. By default, the value is <code>false</code>.\
              \ This property applies to <code>format_type</code> 1 and 2.\n"
            default: "false"
          view_as_webpage_text:
            type: "string"
            example: "Having trouble viewing this email?"
            description: "The text Constant Contact displays before the view as web\
              \ page link at the top of the email. This property applies to <code>format_type</code>\
              \ 1 and 2."
            maxLength: 50
          view_as_webpage_link_name:
            type: "string"
            example: "Click here to view this email as a web page"
            description: "The name of the link that users can click to view the email\
              \ as a web page. This property applies to <code>format_type</code> 1\
              \ and 2."
          forward_email_link_enabled:
            type: "string"
            description: "If <code>true</code>, when the user forwards an email message\
              \ the footer includes a link for subscribing to the list. If <code>false</code>,\
              \ when a user forwards an email message the footer does not include\
              \ a link for subscribing to the list. By default, the value is <code>false</code>.\
              \ This property applies to <code>format_type</code> 1 and 2.\n"
            default: "false"
          forward_email_link_name:
            type: "string"
            example: "Forward email"
            description: "The text displayed as the name for the forward email link\
              \ in the footer when a user forwards an email. This property applies\
              \ to <code>format_type</code> 1 and 2."
            maxLength: 80
  EmailScheduleResponse:
    type: "array"
    items:
      type: "object"
      properties:
        scheduled_date:
          type: "string"
          format: "date-time"
          description: "The date when Constant Contact will send the email campaign\
            \ activity to contacts in ISO-8601 format. For example, <code>2022-05-17</code>\
            \ and <code>2022-05-17T16:37:59.091Z</code> are valid dates."
  EmailScheduleInput:
    type: "object"
    required:
    - "scheduled_date"
    properties:
      scheduled_date:
        type: "string"
        format: "date-time"
        description: "The date when Constant Contact will send the email campaign\
          \ activity to contacts in ISO-8601 format. For example, <code>2022-05-17</code>\
          \ and <code>2022-05-17T16:37:59.091Z</code> are valid dates. Use <code>\"\
          0\"</code> as the date to have Constant Contact immediately send the email\
          \ campaign activity to contacts."
  EmailTestSendInput:
    type: "object"
    required:
    - "email_addresses"
    properties:
      email_addresses:
        type: "array"
        description: "The recipients of the test email as an array of email address\
          \ strings. You can send a test email to up to 5 different email addresses\
          \ at a time."
        items:
          type: "string"
          example: "dlang@example.com"
        maxItems: 5
      personal_message:
        type: "string"
        example: "This is a test send of the email campaign activity."
        description: "A personal message for the recipients of the test email. Constant\
          \ Contact displays this message before the email campaign activity content."
  EmailCampaignActivityPreview:
    type: "object"
    properties:
      campaign_activity_id:
        type: "string"
        example: "4c08372c-957a-48b5-bc45-72c7f00796cd"
        description: "The unique ID for an email campaign activity."
      from_email:
        type: "string"
        example: "jdodge@constantconatct.com"
        description: "The \"from email\" email header for the email campaign activity."
      from_name:
        type: "string"
        example: "Jake Dodge"
        description: "The \"from name\" email header for the email campaign activity."
      preheader:
        type: "string"
        example: "You don't want to miss this."
        description: "The email preheader for the email campaign activity. Only <code>format_type</code>\
          \ 3, 4, and 5 email campaign activities use the preheader property."
      preview_html_content:
        type: "string"
        example: "<html><body> <a href=\\\"http://www.constantcontact.com\\\">Visit\
          \ ConstantContact.com!</a> </body></html>"
        description: "An HTML preview of the email campaign activity."
      preview_text_content:
        type: "string"
        example: "Email Content"
        description: "A plain text preview of the email campaign activity."
      reply_to_email:
        type: "string"
        example: "jdodge@constantcontact.com"
        description: "The email \"Reply To Email\" field for the email campaign activity."
      subject:
        type: "string"
        example: "Informed Daily Digest"
        description: "The email \"Subject\" field for the email campaign activity."
  EmailSendHistory:
    type: "array"
    items:
      type: "object"
      properties:
        send_id:
          type: "integer"
          format: "int32"
          example: 1
          description: "Uniquely identifies each send history object using the number\
            \ of times that you sent the email campaign activity as a sequence starting\
            \ at <code>1</code>. For example, when you send a specific email campaign\
            \ activity twice this method returns an object with a <code>send_id</code>\
            \ of 1 for the first send and an object with a <code>send_id</code> of\
            \ 2 for the second send.\n"
          minimum: 1
        contact_list_ids:
          type: "array"
          description: "The contacts lists that Constant Contact sent email campaign\
            \ activity to as an array of contact <code>list_id</code> strings."
          items:
            type: "string"
            example: "72876990-b664-11e5-844a-00163e0cb6a5"
        segment_ids:
          type: "array"
          description: "The contact segments that Constant Contact sent the email\
            \ campaign activity to as an array of <code>segment_id</code> integers."
          items:
            type: "integer"
            format: "int64"
            example: 57
        count:
          type: "integer"
          format: "int64"
          example: 200
          description: "The number of contacts that Constant Contact sent this email\
            \ campaign activity to. This property is specific to each send history\
            \ object. When you resend an email campaign activity, Constant Contact\
            \ only sends it to new contacts in the contact lists or segments you are\
            \ using."
        run_date:
          type: "string"
          format: "date-time"
          example: "2018-06-27T10:28:09.000Z"
          description: "The system generated date and time that Constant Contact sent\
            \ the email campaign activity to contacts in ISO-8601 format."
        send_status:
          type: "string"
          example: "COMPLETED"
          description: "The send status for the email campaign activity. Valid values\
            \ are: <ul> \n  <li><code>COMPLETED</code>: Constant Contact successfully\
            \ sent the email campaign activity.</li>\n  <li><code>ERRORED</code>:\
            \ Constant Contact encountered an error when sending the email campaign\
            \ activity.<li>\n</ul>\n"
        reason_code:
          type: "integer"
          format: "int32"
          example: 0
          description: "The reason why the send attempt completed or encountered an\
            \ error. This method returns <code>0</code> if Constant Contact successfully\
            \ sent the email campaign activity to contacts. Possible <code>reason_code</code>\
            \ values are: <ul>\n      <li>0 — Constant Contact successfully sent the\
            \ email to contacts.</li>\n      <li>1 — An error occurred when sending\
            \ this email. Try scheduling it again, or contact <a href='http://support.constantcontact.com'\
            \ target='_blank'>Customer Support</a>.</li>\n      <li>2 — We were unable\
            \ to send the email. Please contact our <a href='http://knowledgebase.constantcontact.com/articles/KnowledgeBase/5782-contact-an-account-review-and-deliverability-specialist'\
            \ target='_blank'>Account Review Team</a> for more information.</li>\n\
            \      <li>3 — This Constant Contact account cannot currently send emails.\
            \ This can be due to billing or product expiration.</li>\n      <li>4\
            \ — You're not able to send the email to that many contacts. Remove contacts\
            \ from the contact lists you are using or select a list with fewer contacts.</li>\n\
            \      <li>5 — The email is currently in staging. For more information,\
            \ see the <a href='http://knowledgebase.constantcontact.com/articles/KnowledgeBase/7402-email-staging'\
            \ target='_blank>Email Staging Knowledge Base article</a>.</li>\n    \
            \  <li>6 — Constant Contact was unable to finish sending this email to\
            \ all of the contacts on your list. Please contact <a href='http://support.constantcontact.com'\
            \ target='_blank'>Customer Support</a> for more information.</li>\n  \
            \    <li>7 — The email contains invalid images. This can be caused when\
            \ one or more images in the email are longer available in your image library.</li>\n\
            \      <li>8 — The email contains a link URL that exceeds 1005 characters.</li>\n\
            \      <li>9 — Constant Contact was unable to verify your authenticated\
            \ Sender address. Please contact <a href='http://support.constantcontact.com'\
            \ target='_blank'>Customer Support</a> for more information.</li>\n  \
            \    <li>10 — Constant Contact was unable to verify your authenticated\
            \ Sender address. Please contact <a href='http://support.constantcontact.com'\
            \ target='_blank'>Customer Support</a> for more information.</li>\n  \
            \    <li>11 — This Constant Contact account cannot send survey invitations.</li>\n\
            \      <li>12 — Constant Contact attempted to send the email, but there\
            \ were no eligible contacts to send it to. This can be caused by an invalid\
            \ contact list, a contact list with no contacts, or a contact list with\
            \ no new contacts during a resend. This method displays <code>reason_code</code>\
            \ 12 as a send attempt with a <code>send_status</code> of COMPLETED and\
            \ a <code>count</code> of 0.</li>\n</ul>\n"
  ResendToNonOpeners:
    type: "array"
    items:
      type: "object"
      properties:
        resend_subject:
          type: "string"
          example: "Our Big Sale is Coming Soon!"
          description: "The subject line used when resending the email campaign activity."
        delay_days:
          type: "integer"
          format: "int32"
          example: 3
          description: "The number of days to wait before Constant Contact resends\
            \ the email. Valid values include <code>1</code> to <code>10</code> days.\
            \ This value is only returned in the response results if the resend activity\
            \ was created with <code>delay_days</code> or the <code>delay_minutes</code>\
            \ equal to an exact day value. "
        delay_minutes:
          type: "integer"
          format: "int32"
          example: 1000
          description: "The number of minutes to wait before Constant Contact resends\
            \ the email. There are 1,440 minutes in a day. Valid values includes a\
            \ minimum of <code>720</code> (12 hours) and a maximum of <code>14,400</code>\
            \ minutes (10 days). This property is mutually exclusive with <code>delay_days</code>."
        resend_date:
          type: "string"
          format: "date-time"
          description: "The system generated date and time (in ISO-8601 format) that\
            \ the email campaign activity was resent to non-openers (only included\
            \ in the response results for sent resend activities)."
          readOnly: true
        resend_request_id:
          type: "string"
          example: "DRAFT"
          description: "For scheduled or sent resend to non-opener emails, the system\
            \ generates an ID that identifies the resend to non-openers activity.\
            \ For draft email campaign resend activities, the system returns <code>DRAFT</code>."
        resend_status:
          type: "string"
          example: "DRAFT"
          description: "The status of the resend to non-openers campaign activity.\
            \ The <code>resend_status</code> is only returned in the response results\
            \ if the campaign activity is either scheduled to be sent or was already\
            \ sent.\n"
  ResendToNonOpenersInput:
    required:
    - "resend_subject"
    properties:
      resend_subject:
        type: "string"
        example: "Our Big Sale is Coming Soon!"
        description: "The subject line used when resending the email campaign activity."
      delay_days:
        type: "integer"
        format: "int32"
        example: 3
        description: "The number of days to wait before Constant Contact resends the\
          \ email. Valid values include <code>1</code> to <code>10</code> days. This\
          \ property is mutually exclusive with <code>delay_minutes</code>. This value\
          \ is only returned in the response results if the resend activity was created\
          \ with <code>delay_days</code> or the <code>delay_minutes</code> equal to\
          \ an exact day value."
      delay_minutes:
        type: "integer"
        format: "int32"
        example: 1000
        description: "The number of minutes to wait before Constant Contact resends\
          \ the email campaign activity. There are 1,440 minutes in a day. Valid values\
          \ includes a minimum of <code>720</code> (12 hours) and a maximum of <code>14,400</code>\
          \ minutes (10 days). This property is mutually exclusive with <code>delay_days</code>"
  ResendToNonOpenersObject:
    type: "object"
    properties:
      resend_subject:
        type: "string"
        example: "Our Big Sale is Coming Soon!"
        description: "The subject line for the resend email."
      delay_days:
        type: "integer"
        format: "int32"
        example: 7
        description: "The number of days to wait before Constant Contact resends the\
          \ email. Valid values include <code>1</code> to <code>10</code> days. This\
          \ property is mutually exclusive with <code>delay_minutes</code>. This value\
          \ is only returned in the response results if the resend activity was created\
          \ with <code>delay_days</code> or the <code>delay_minutes</code> equal to\
          \ an exact day value."
      delay_minutes:
        type: "integer"
        format: "int32"
        example: "10,080"
        description: "The number of minutes to wait before Constant Contact resends\
          \ the email. There are 1,440 minutes in a day. Valid values includes a minimum\
          \ of <code>720</code> (12 hours) and a maximum of <code>14,400</code> minutes\
          \ (10 days). This property is mutually exclusive with <code>delay_days</code>."
      resend_date:
        type: "string"
        format: "date-time"
        description: "The system generated ISO-8601 format date and time that Constant\
          \ Contact resent the email to non-openers."
        readOnly: true
      resend_request_id:
        type: "string"
        example: "DRAFT"
        description: "For scheduled or sent resend to non-opener emails, this property\
          \ is a unique identifier for the resend. For draft email campaign resend\
          \ activities, the value of this property is <code>DRAFT</code>."
  ABTestData:
    type: "object"
    required:
    - "alternative_subject"
    - "test_size"
    - "winner_wait_duration"
    properties:
      alternative_subject:
        type: "string"
        example: "Reminder: Our Biggest Sale of the Year is Coming Soon!"
        description: "The alternate email subject line to use for A/B testing."
      test_size:
        type: "integer"
        format: "int32"
        example: 30
        description: "The percentage of contact recipients to participate in the A/B\
          \ Test. For example, if the value is 30, then 30% of contacts will receive\
          \ the email campaign with subject line A, and 30% of contacts will receive\
          \ the email campaign with subject line B. Valid values include <code>5</code>\
          \ to <code>50</code> percent. Currently, A/B tests support subject line\
          \ only."
      winner_wait_duration:
        type: "integer"
        format: "int32"
        example: 24
        description: "The number of hours Constant Contact waits after the A/B test\
          \ is sent before determining the winning subject line. The winner is the\
          \ subject line with the highest number of contact opens. Valid values include\
          \ <code>6</code>, <code>12</code>, <code>24</code>, and <code>48</code>.\
          \ After the winner is determined, Constant Contact automatically sends the\
          \ email campaign with the winning subject line to all the remaining contacts,\
          \ which did not participate in the A/B test."
  ContactTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "71600990-908b-11e6-907f-00166bff25"
        description: "The contact ID."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "010a0-1234-5678-9012-1100a0c1ab2a"
        description: "The unique ID of the activity for an e-mail campaign."
      created_time:
        type: "string"
        format: "date-time"
        example: "2017-04-02T04:08:00.000Z"
        description: "The time the tracking activity occurred"
      tracking_activity_type:
        type: "string"
        example: "em_sends"
        description: "The types of the tracking activities included in the request.\
          \ For example, sends, opens, clicks, bounces, opt-outs, or forwards."
      campaign_activity_name:
        type: "string"
        example: "April DLCV Newsletter"
        description: "The campaign activity name."
    description: "The base contact tracking activity representing sends, opt-outs\
      \ and forwards to a friend. The basic information provided includes the campaign\
      \ activity ID, tracking activity type, and time the tracking activity occurred."
  ContactTrackingActivitiesPage:
    type: "object"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of contact tracking activities in descending date order."
        items:
          $ref: "#/definitions/ContactTrackingActivity"
      _links:
        description: "The next link if more contact tracking activities are available."
        $ref: "#/definitions/reportingLinks"
    description: "A page of tracking activities for a contact that can include sends,\
      \ opens, clicks, bounces, opt-outs and forwards to a friend. If it exists, a\
      \ link to the next page of tracking activities is provided."
  ContactOpenAndClickRates:
    type: "object"
    required:
    - "average_click_rate"
    - "average_open_rate"
    - "contact_id"
    - "included_activities_count"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "71600990-908b-11e6-907f-00166bff25"
        description: "The unique ID of the contact for which the report is being generated."
      included_activities_count:
        type: "integer"
        format: "int32"
        example: 10
        description: "The number of activities included in the calculation."
      average_open_rate:
        type: "number"
        format: "double"
        example: 0.6
        description: "The average rate the contact opened emails sent to them."
      average_click_rate:
        type: "number"
        format: "double"
        example: 0.6
        description: "The average rate the contact clicked on links in emails sent\
          \ to them."
    description: "The average click and open rates for a provided contact. The basic\
      \ information provided is contact id, open rate, click rate, and emails included\
      \ in the calculation."
  CampaignActivitySummary:
    type: "object"
    required:
    - "campaign_activity_id"
    - "em_bounces"
    - "em_clicks"
    - "em_forwards"
    - "em_opens"
    - "em_sends"
    - "em_unsubscribes"
    - "start_on"
    properties:
      campaign_activity_id:
        type: "string"
        format: "uuid"
        description: "The unique id of the activity for an e-mail campaign."
      start_on:
        type: "string"
        format: "date-time"
        description: "The last date at which the email was sent to this contact."
      em_bounces:
        type: "integer"
        format: "int32"
        description: "The number of times the email has bounced for this contact."
      em_clicks:
        type: "integer"
        format: "int32"
        description: "The number of times this contact has clicked a link in this\
          \ email."
      em_forwards:
        type: "integer"
        format: "int32"
        description: "The number of times this contact has forwarded this email."
      em_opens:
        type: "integer"
        format: "int32"
        description: "The number of times this contact has opened this email."
      em_sends:
        type: "integer"
        format: "int32"
        description: "The number of times the email was sent to this contact."
      em_unsubscribes:
        type: "integer"
        format: "int32"
        description: "The number of times this contact has opted out."
  ContactCampaignActivitiesSummary:
    type: "object"
    required:
    - "campaign_activities"
    - "contact_id"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "71600990-908b-11e6-907f-00166bff25"
        description: "Unique id of the contact that will have their activity summarized."
      campaign_activities:
        type: "array"
        description: "A summary of all the actions for a contact."
        items:
          $ref: "#/definitions/CampaignActivitySummary"
      _links:
        description: "The next link if more summaries of activities are available."
        $ref: "#/definitions/reportingLinks"
  EmailLinkClickCount:
    type: "object"
    properties:
      link_url:
        type: "string"
        example: "https://www.constantcontact.com/"
        description: "The URL of a link in an email campaign activity. This URL is\
          \ not normalized and appears the same as the URL in the email campaign activity."
      url_id:
        type: "string"
        example: "1100577727321"
        description: "The ID for a unique link URL in an email campaign activity."
      unique_clicks:
        type: "integer"
        format: "int32"
        example: 99
        description: "The number of unique contacts that clicked the link."
      list_action:
        type: "string"
        example: "add"
        description: "If the link uses the click segmentation feature, this property\
          \ contains the action that contacts trigger when they click the link. Currently\
          \ the only available action is <code>add</code>, which adds contacts that\
          \ click the link to a contact list."
      list_id:
        type: "string"
        format: "uuid"
        example: "3377aefd-970a-4de6-8400-ab4ec491624c"
        description: "If the link uses the click segmentation feature, this property\
          \ contains the contact list linked with the <code>list_action</code> property."
      link_tag:
        type: "string"
        example: "google-link-1"
        description: "Link tags are not currently available in email campaigns. By\
          \ default, this method combines results for duplicate link URLs. Link tags\
          \ will allow users to get a separate link click report for each unique <code>link_tag</code>\
          \ value they use, even if URLs are not unique."
  EmailLinks:
    type: "object"
    properties:
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "8892baf9-970a-4de6-8400-fa4ec461987c"
        description: "The unique ID for an email campaign activity."
      link_click_counts:
        type: "array"
        description: "An array of objects that contain the contact click count and\
          \ link metadata for each unique link URL in an email campaign activity.\
          \ By default, this method combines results for duplicate link URLs."
        items:
          $ref: "#/definitions/EmailLinkClickCount"
  SendsTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies an email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_sends"
        description: "The type of tracking activity that is associated with this <code>campaign_activity_id</code>\
          \ and used for reporting purposes."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address used to send the email campaign activity to\
          \ a contact."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that you sent the email campaign to the contact."
      deleted_at:
        type: "string"
        format: "date"
        example: "2019-04-10"
        description: "If applicable, displays the date that the contact was deleted."
  SendsTrackingActivitiesPage:
    type: "object"
    required:
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "Lists the contacts to which the email campaign activity (<code>campaign_activity_id</code>)\
          \ was sent."
        items:
          $ref: "#/definitions/SendsTrackingActivity"
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/reportingLinks"
  OpensTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies an email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_opens"
        description: "The type of tracking activity that is associated with this <code>campaign_activity_id</code>\
          \ and used for reporting purposes."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address used to send the email campaign activity to\
          \ a contact."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      device_type:
        type: "string"
        example: "computer"
        description: "The type of device that the contact used to open the email campaign\
          \ activity."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that the contact opened the email campaign\
          \ activity."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, displays the date that the contact was deleted."
  OpensTrackingActivitiesPage:
    type: "object"
    required:
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "Lists contacts that opened the specified <code>campaign_activity_id</code>."
        items:
          $ref: "#/definitions/OpensTrackingActivity"
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/reportingLinks"
  DidNotOpensTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies an email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_didnotopens"
        description: "The type of tracking activity that is associated with this <code>campaign_activity_id</code>\
          \ and used for reporting purposes."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address used to send the email campaign activity to\
          \ a contact."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that the contact was sent the email campaign\
          \ activity."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, displays the date that the contact was deleted."
  DidNotOpensTrackingActivitiesPage:
    type: "object"
    required:
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "Lists contacts that did not open the specified <code>campaign_activity_id</code>."
        items:
          $ref: "#/definitions/DidNotOpensTrackingActivity"
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/reportingLinks"
  ClicksTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "link_url"
    - "tracking_activity_type"
    - "url_id"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies the email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_clicks"
        description: "The type of report tracking activity that is associated with\
          \ the specified <code>campaign_activity_id</code>."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address used to send the email campaign activity to\
          \ a contact."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      device_type:
        type: "string"
        example: "computer"
        description: "The type of device that the contact was using when they clicked\
          \ the URL link for the email campaign activity."
      url_id:
        type: "string"
        example: "1100407204171"
        description: "The ID used to uniquely identify the URL link."
      link_url:
        type: "string"
        example: "http://www.yoursite.com"
        description: "The text used for the URL link."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that the contact clicked the specified URL\
          \ link for the email campaign activity."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, displays the date that the contact was deleted."
  ClicksTrackingActivitiesPage:
    type: "object"
    required:
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of click tracking activities"
        items:
          $ref: "#/definitions/ClicksTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable."
        $ref: "#/definitions/reportingLinks"
  ForwardsTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies the email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_forwards"
        description: "The type of report tracking activity that is associated with\
          \ the specified <code>campaign_activity_id</code>."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The contact's email address."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time that the contact forwarded the email campaign activity."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, displays the date that the contact was deleted."
  ForwardsTrackingActivitiesPage:
    type: "object"
    required:
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of contacts that forwarded the specified email campaign\
          \ activity. "
        items:
          $ref: "#/definitions/ForwardsTrackingActivity"
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/reportingLinks"
  OptoutsTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies the email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_optouts"
        description: "The type of report tracking activity that is associated with\
          \ the specified <code>campaign_activity_id</code>."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The contact's email address."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      opt_out_reason:
        type: "string"
        example: "The content is not what I expected"
        description: "The opt-out reason, if the contact entered a reason."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time that the contact chose to opt-out from receiving future\
          \ email campaign activities."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, displays the date that the contact was deleted."
  OptoutsTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of opt-out tracking activities"
        items:
          $ref: "#/definitions/OptoutsTrackingActivity"
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/reportingLinks"
  BouncesTrackingActivity:
    type: "object"
    required:
    - "bounce_code"
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies a contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The ID that uniquely identifies the email campaign activity."
      tracking_activity_type:
        type: "string"
        example: "em_bounces"
        description: "The type of email tracking activity, <code>em_bounces</code>,\
          \ that this report includes."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The contact's email address that was used when the email campaign\
          \ activity bounced."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      bounce_code:
        type: "string"
        example: "B"
        description: "The one-character string used to specify the reason for the\
          \ email bounce. Valid codes include:\n\n<ul><li><code>B</code> - Non-existent\
          \ address; the contact's Internet Service Provider (ISP) indicates that\
          \ the email address doesn't exist.</li>\n\n<li><code>D</code> - Undeliverable;\
          \ after repeated delivery attempts, no response was received from the contact's\
          \ ISP.</li>\n\n<li><code>F</code> - Full; the contact's mailbox is full.</li>\n\
          \n<li><code>S</code> - Suspended; the contact's address was reported as\
          \ non-existent by the ISP and is suspended from delivery.</li>\n\n<li><code>V</code>\
          \ - Vacation/autoreply; the contact set an autoreply, but the message was\
          \ delivered.</li>\n\n<li><code>X</code> - Other; the contact's ISP specified\
          \ another reason that the message cannot be delivered.</li>\n\n<li><code>Z</code>\
          \ - Blocked; the recipient's ISP chose not to deliver the email. For example,\
          \ the ISP may have flagged the email as spam.</li></ul>"
      current_email_address:
        type: "string"
        example: "maddie_brown@yahoo.com"
        description: "The contact's most current email address. If <code>email_address</code>\
          \ was updated after the email bounce activity occurred, <code>current_ email_address</code>\
          \ displays the updated address. If updates were not made to <code>email_address</code>,\
          \ the <code>email_address</code> and <code>current_email_address</code>\
          \ are the same."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that the email bounce tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "If applicable, the date when the contact was deleted."
  BouncesTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of email bounce tracking activities associated with\
          \ a given `campaign_activity_id'."
        items:
          $ref: "#/definitions/BouncesTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/reportingLinks"
  UniqueEmailCounts:
    type: "object"
    required:
    - "abuse"
    - "bounces"
    - "clicks"
    - "forwards"
    - "not_opened"
    - "opens"
    - "optouts"
    - "sends"
    properties:
      sends:
        type: "integer"
        format: "int32"
        example: 3129
        description: "The total number of unique sends."
      opens:
        type: "integer"
        format: "int32"
        example: 1672
        description: "The total number of unique opens."
      clicks:
        type: "integer"
        format: "int32"
        example: 256
        description: "The total number of unique clicks."
      forwards:
        type: "integer"
        format: "int32"
        example: 21
        description: "The total number of unique forwards."
      optouts:
        type: "integer"
        format: "int32"
        example: 3
        description: "The total number of unique optouts (unsubscribes)."
      abuse:
        type: "integer"
        format: "int32"
        example: 1
        description: "The total number of unique abuse count (spam)."
      bounces:
        type: "integer"
        format: "int32"
        example: 210
        description: "The total number of unique bounce count."
      not_opened:
        type: "integer"
        format: "int32"
        example: 1211
        description: "The total number of unique non-opens"
  BulkEmailCampaignSummary:
    type: "object"
    required:
    - "campaign_id"
    - "campaign_type"
    - "last_sent_date"
    - "unique_counts"
    properties:
      campaign_id:
        type: "string"
        example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
        description: "The ID that uniquely identifies an email campaign."
      campaign_type:
        type: "string"
        example: "Newsletter"
        description: "Identifies the email campaign type."
      last_sent_date:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date and time that the email campaign was last sent."
      unique_counts:
        description: "The total number of times each unique contact interacted with\
          \ a tracked email campaign activity."
        $ref: "#/definitions/UniqueEmailCounts"
  BulkEmailCampaignSummariesPercents:
    type: "object"
    properties:
      click:
        type: "number"
        example: 43.0
        description: "Aggregated click rate for campaigns on the current page."
      open:
        type: "number"
        example: 12.0
        description: "Aggregated open rate for campaigns on the current page."
      did_not_open:
        type: "number"
        example: 23.0
        description: "Aggregated did-not-open rate for campaigns on the current page."
      bounce:
        type: "number"
        example: 21.0
        description: "Aggregated bounce rate for campaigns on the current page."
      unsubscribe:
        type: "number"
        example: 2.0
        description: "Aggregated unsubscribe (optout) rate for campaigns on the current\
          \ page."
  BulkEmailCampaignSummariesPage:
    type: "object"
    required:
    - "_links"
    - "bulk_email_campaign_summaries"
    properties:
      bulk_email_campaign_summaries:
        type: "array"
        description: "Lists and provides details about each bulk email campaign activity\
          \ including total unique counts for tracked activities."
        items:
          $ref: "#/definitions/BulkEmailCampaignSummary"
      aggregate_percents:
        description: "Lists aggregate percents for  `click`, `open`, `did_not_open`,\
          \ `bounce`, and  `unsubscribe` activities for all campaigns included on\
          \ a page of results."
        $ref: "#/definitions/BulkEmailCampaignSummariesPercents"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/reportingLinks"
  StatsError:
    type: "object"
    properties:
      error_key:
        type: "string"
        example: "reportingsvc.not_found.invalid_path_param.campaign_ids."
        description: "The unique error key."
      error_message:
        type: "string"
        example: "Could not find any campaign stats for all requested campaigns."
        description: "A error description."
  StatsEmail:
    type: "object"
    properties:
      em_bounces:
        type: "integer"
        format: "int32"
        example: 10
        description: "Number of unique email bounces."
      em_clicks:
        type: "integer"
        format: "int32"
        example: 280
        description: "Number of unique recipients who clicked any link in the email."
      em_clicks_all:
        type: "integer"
        format: "int32"
        example: 387
        description: "Total number of non-unique email clicks."
      em_clicks_all_computer:
        type: "integer"
        format: "int32"
        example: 123
        description: "Number of non-unique email clicks on a standard desktop or laptop\
          \ computer."
      em_clicks_all_mobile:
        type: "integer"
        format: "int32"
        example: 211
        description: "Number of non-unique email clicks on a mobile phone or similar\
          \ small mobile device (e.g. iPhone)."
      em_clicks_all_tablet:
        type: "integer"
        format: "int32"
        example: 85
        description: "Number of non-unique email clicks on a small tablet type computer\
          \ (e.g. iPad)."
      em_clicks_all_other:
        type: "integer"
        format: "int32"
        example: 4
        description: "Number of non-unique email clicks on an unknown device (e.g.\
          \ Game Console or Wearable)."
      em_clicks_all_none:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of non-unique email clicks for which the device type\
          \ was not captured. This will account for any clicks prior to when device\
          \ type was collected and stored."
      em_forwards:
        type: "integer"
        format: "int32"
        example: 39
        description: "Number of unique recipients who forwarded the email using the\
          \ forward to a friend feature (not available for all types of emails)."
      em_not_opened:
        type: "integer"
        format: "int32"
        example: 25
        description: "Number of unique recipients who did not open the email. This\
          \ is calculated as follows: <code>em_not_opened</code> is equal to <code>em_sends\
          \ - em_opens - em_bounces</code>. This value is reported as zero if the\
          \ calculation results in a negative value."
      em_opens:
        type: "integer"
        format: "int32"
        example: 220
        description: "Number of unique recipients who opened the email."
      em_opens_all:
        type: "integer"
        format: "int32"
        example: 399
        description: "Total number of non-unique email opens."
      em_opens_all_computer:
        type: "integer"
        format: "int32"
        example: 65
        description: "Number of non-unique email opens on a standard desktop or laptop\
          \ computer."
      em_opens_all_mobile:
        type: "integer"
        format: "int32"
        example: 270
        description: "Number of non-unique email opens on a mobile phone or similar\
          \ small mobile device (e.g. iPhone)."
      em_opens_all_tablet:
        type: "integer"
        format: "int32"
        example: 199
        description: "Number of non-unique email opens on a small tablet type computer\
          \ (e.g. iPad)."
      em_opens_all_other:
        type: "integer"
        format: "int32"
        example: 10
        description: "Number of non-unique email opens on an unknown device (e.g.\
          \ Game Console or Wearable)."
      em_opens_all_none:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of non-unique email opens for which the device type was\
          \ not captured. This will account for any opens prior to when device type\
          \ was collected and stored."
      em_optouts:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of unique recipients who unsubscribed due to this email."
      em_sends:
        type: "integer"
        format: "int32"
        example: 308
        description: "Number of unique email sends."
  PercentsEmail:
    type: "object"
    properties:
      bounce:
        type: "number"
        example: 0.0
        description: "Percentage of emails sent to unique recipients that bounced."
      click:
        type: "number"
        example: 40.0
        description: "Percentage of recipients who opened the email who also clicked\
          \ one or more links in it."
      desktop_click:
        type: "number"
        example: 10.0
        description: "Percentage of clicks that came from a standard desktop or laptop\
          \ computer."
      desktop_open:
        type: "number"
        example: 20.0
        description: "Percentage of opens that came from a standard desktop or laptop\
          \ computer."
      did_not_open:
        type: "number"
        example: 30.0
        description: "Percentage of recipients that received the email (did not bounce)\
          \ but did not open it."
      mobile_click:
        type: "number"
        example: 40.0
        description: "Percentage of clicks that came from a mobile phone, tablet computer,\
          \ or similar small mobile device (e.g. iPhone or iPad)."
      mobile_open:
        type: "number"
        example: 10.0
        description: "Percentage of opens that came from a mobile phone, tablet computer,\
          \ or similar small mobile device (e.g. iPhone or iPad)."
      open:
        type: "number"
        example: 70.0
        description: "Percentage of recipients that received the email (did not bounce)\
          \ and opened it."
      unsubscribe:
        type: "number"
        example: 0.0
        description: "Percentage of recipients that received the email (did not bounce)\
          \ and chose to unsubscribe."
  CampaignStatsResultGenericStatsEmailPercentsEmail:
    type: "object"
    properties:
      campaign_id:
        type: "string"
        example: "82ee2c37-c8f8-4974-9560-ef93ad51d58z"
        description: "The ID that uniquely identifies the campaign (UUID)."
      stats:
        description: "Key-value pairs of campaign related statistics."
        $ref: "#/definitions/StatsEmail"
      percents:
        description: "Key-value pairs of campaign related percentages."
        $ref: "#/definitions/PercentsEmail"
      last_refresh_time:
        type: "string"
        format: "date-time"
        example: "2015-08-25T22:00:09.908Z"
        description: "The date and time that the campaign stats were last refreshed."
  CampaignStatsQueryResultEmail:
    type: "object"
    properties:
      errors:
        type: "array"
        description: "An array of errors indicating any partial failures in the query."
        items:
          $ref: "#/definitions/StatsError"
      results:
        type: "array"
        description: "An array of results listing statistics for each requested <code>campaign_id</code>."
        items:
          $ref: "#/definitions/CampaignStatsResultGenericStatsEmailPercentsEmail"
  StatsEmailActivity:
    type: "object"
    properties:
      em_bounces:
        type: "integer"
        format: "int32"
        example: 10
        description: "Number of unique email bounces."
      em_clicks:
        type: "integer"
        format: "int32"
        example: 280
        description: "Number of unique recipients who clicked any link in the email."
      em_clicks_all:
        type: "integer"
        format: "int32"
        example: 387
        description: "Total number of non-unique email clicks."
      em_clicks_all_computer:
        type: "integer"
        format: "int32"
        example: 123
        description: "Number of non-unique email clicks on a standard desktop or laptop\
          \ computer."
      em_clicks_all_mobile:
        type: "integer"
        format: "int32"
        example: 211
        description: "Number of non-unique email clicks on a mobile phone or similar\
          \ small mobile device (e.g. iPhone)."
      em_clicks_all_tablet:
        type: "integer"
        format: "int32"
        example: 85
        description: "Number of non-unique email clicks on a small tablet type computer\
          \ (e.g. iPad)."
      em_clicks_all_other:
        type: "integer"
        format: "int32"
        example: 4
        description: "Number of non-unique email clicks on an unknown device (e.g.\
          \ Game Console or Wearable)."
      em_clicks_all_none:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of non-unique email clicks for which the device type\
          \ was not captured. This will account for any clicks prior to when device\
          \ type was collected and stored."
      em_forwards:
        type: "integer"
        format: "int32"
        example: 39
        description: "Number of unique recipients who forwarded the email using the\
          \ forward to a friend feature (not available for all types of emails)."
      em_not_opened:
        type: "integer"
        format: "int32"
        example: 25
        description: "Number of unique recipients who did not open the email. This\
          \ is calculated as follows: <code>em_not_opened</code> is equal to <code>em_sends\
          \ - em_opens - em_bounces</code>. This value is reported as zero if the\
          \ calculation results in a negative value."
      em_opens:
        type: "integer"
        format: "int32"
        example: 220
        description: "Number of unique recipients who opened the email."
      em_opens_all:
        type: "integer"
        format: "int32"
        example: 399
        description: "Total number of non-unique email opens."
      em_opens_all_computer:
        type: "integer"
        format: "int32"
        example: 65
        description: "Number of non-unique email opens on a standard desktop or laptop\
          \ computer."
      em_opens_all_mobile:
        type: "integer"
        format: "int32"
        example: 270
        description: "Number of non-unique email opens on a mobile phone or similar\
          \ small mobile device (e.g. iPhone)."
      em_opens_all_tablet:
        type: "integer"
        format: "int32"
        example: 199
        description: "Number of non-unique email opens on a small tablet type computer\
          \ (e.g. iPad)."
      em_opens_all_other:
        type: "integer"
        format: "int32"
        example: 10
        description: "Number of non-unique email opens on an unknown device (e.g.\
          \ Game Console or Wearable)."
      em_opens_all_none:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of non-unique email opens for which the device type was\
          \ not captured. This will account for any opens prior to when device type\
          \ was collected and stored."
      em_optouts:
        type: "integer"
        format: "int32"
        example: 2
        description: "Number of unique recipients who unsubscribed due to this email."
      em_sends:
        type: "integer"
        format: "int32"
        example: 308
        description: "Number of unique email sends."
      em_abuse:
        type: "integer"
        format: "int32"
        example: 1
        description: "Number of abuse (spam) complaints received."
      em_bounces_blocked:
        type: "integer"
        format: "int32"
        example: 1
        description: "Unique number bounced because as blocked by the receiving system."
      em_bounces_mailbox_full:
        type: "integer"
        format: "int32"
        example: 2
        description: "Unique number that bounced back with a mailbox full message."
      em_bounces_nonexistent_address:
        type: "integer"
        format: "int32"
        example: 3
        description: "Unique number that bounced as a non-existent address."
      em_bounces_other:
        type: "integer"
        format: "int32"
        example: 2
        description: "Unique number that bounced without an identifiable cause."
      em_bounces_suspended:
        type: "integer"
        format: "int32"
        example: 1
        description: "Unique number that bounced as suspended. Email address bounces\
          \ as suspended when multiple non-existent bounces have been received for\
          \ the same address."
      em_bounces_undeliverable:
        type: "integer"
        format: "int32"
        example: 19
        description: "Unique number that bounced as undeliverable."
      em_bounces_vacation:
        type: "integer"
        format: "int32"
        example: 2
        description: "Unique number that bounced back with a vacation or out of office\
          \ autoreply."
  CampaignActivityStatsResultGenericStatsEmailActivity:
    type: "object"
    properties:
      campaign_id:
        type: "string"
        description: "The unique ID used to identify the campaign (UUID)."
      campaign_activity_id:
        type: "string"
        description: "The unique ID used to identify the campaign activity (UUID)."
      stats:
        description: "Key-value pairs of campaign activity statistics."
        $ref: "#/definitions/StatsEmailActivity"
      last_refresh_time:
        type: "string"
        description: "The time at which the campaign activity stats were last refreshed\
          \ in ISO 8601 format (e.g. '2015-08-25T22:00:09.908Z')."
  CampaignActivityStatsQueryResultEmail:
    type: "object"
    properties:
      errors:
        type: "array"
        description: "Array of errors indicating any partial failures in the query"
        items:
          $ref: "#/definitions/StatsError"
      results:
        type: "array"
        description: "An array of results containing statistics for each requested\
          \ campaign activity"
        items:
          $ref: "#/definitions/CampaignActivityStatsResultGenericStatsEmailActivity"
  TrackingActivitySmsChannelDTO:
    type: "object"
    properties:
      country_code:
        type: "string"
        example: "US"
        description: "The ISO country code that is associated with SMS address."
      state:
        type: "string"
        description: "The SMS channel status:\n  <ul><li><code>N</code>: not_set<li>\n\
          \     <li><code>T</code>: temp_hold<li>\n     <li><code>P</code>: pending_confirmation<li>\n\
          \     <li><code>I</code>: implicit<li>\n     <li><code>E</code>: explicit<li>\n\
          \     <li><code>O</code>: unsubscribed<li>\n     <li><code>D</code>:deprecated<li></ul>"
      formatted_international:
        type: "string"
        example: "+1 234-555-6789"
        description: "The formatted SMS number returned if the SMS <code>country_code</code>\
          \ does not match the contacts <code>country_code</code>. "
      formatted_national:
        type: "string"
        example: "(234) 555-6789"
        description: "The formatted SMS number returned if the SMS <code>country_code</code>\
          \ matches the contacts <code>country_code</code>. "
  PContactClickTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "link_url"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The unique ID that identifies the contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The unique ID that identifies of the campaign activity to use."
      tracking_activity_type:
        type: "string"
        example: "p_contact_click"
        description: "The tracked activity event type."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address for the contact and tracking activity."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      device_type:
        type: "string"
        example: "tablet"
        description: "The type of device that was used to click the link."
      url_id:
        type: "string"
        example: "1100407204171"
        description: "The ID used to uniquely identify the link."
      link_url:
        type: "string"
        example: "http://www.amazon.com"
        description: "The URL link text."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time the tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "The time the Contact was deleted"
      sms_channel:
        description: "Sms channel info for this contact"
        $ref: "#/definitions/TrackingActivitySmsChannelDTO"
  PContactClickTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of landing page contact click tracking activities."
        items:
          $ref: "#/definitions/PContactClickTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/lpreportingLinks"
  PContactOpenTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The unique ID that identifies the contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The unique ID that identifies of the campaign activity to use."
      tracking_activity_type:
        type: "string"
        example: "p_contact_opens"
        description: "The tracked activity event type."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address for the contact and tracking activity."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      device_type:
        type: "string"
        example: "tablet"
        description: "The type of device that was used to open the link."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time the tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "The time the Contact was deleted"
      sms_channel:
        description: "Sms channel info for this contact"
        $ref: "#/definitions/TrackingActivitySmsChannelDTO"
  PContactOpensTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of landing page contact opens tracking activities."
        items:
          $ref: "#/definitions/PContactOpenTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/lpreportingLinks"
  PContactUpdateTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The unique ID that identifies the contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The unique ID that identifies of the campaign activity to use."
      tracking_activity_type:
        type: "string"
        example: "p_contact_updates"
        description: "The tracked activity event type."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address for the contact and tracking activity."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time the tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "The time the Contact was deleted"
      sms_channel:
        description: "Sms channel info for this contact"
        $ref: "#/definitions/TrackingActivitySmsChannelDTO"
  PContactUpdateTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of landing page contact update tracking activities."
        items:
          $ref: "#/definitions/PContactUpdateTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/lpreportingLinks"
  PContactAddTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The unique ID that identifies the contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The unique ID that identifies of the campaign activity to use."
      tracking_activity_type:
        type: "string"
        example: "p_contact_adds"
        description: "The tracked activity event type."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address for the contact and tracking activity."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time the tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "The time the Contact was deleted"
      sms_channel:
        description: "Sms channel info for this contact"
        $ref: "#/definitions/TrackingActivitySmsChannelDTO"
  PContactAddTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of landing page contact adds tracking activities."
        items:
          $ref: "#/definitions/PContactAddTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/lpreportingLinks"
  PContactSMSOptInTrackingActivity:
    type: "object"
    required:
    - "campaign_activity_id"
    - "contact_id"
    - "created_time"
    - "email_address"
    - "tracking_activity_type"
    properties:
      contact_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The unique ID that identifies the contact."
      campaign_activity_id:
        type: "string"
        format: "uuid"
        example: "98edac88-f4bc-408c-9e64-acd890384231"
        description: "The unique ID that identifies of the campaign activity to use."
      tracking_activity_type:
        type: "string"
        example: "p_contact_sms_optins"
        description: "The tracked activity event type."
      email_address:
        type: "string"
        example: "maddieb@gmail.com"
        description: "The email address for the contact and tracking activity."
      first_name:
        type: "string"
        example: "Maddie"
        description: "The first name of the contact."
      last_name:
        type: "string"
        example: "Brown"
        description: "The last name of the contact."
      created_time:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The time the tracking activity occurred."
      deleted_at:
        type: "string"
        format: "date"
        example: "2015-08-10"
        description: "The time the Contact was deleted"
      sms_channel:
        description: "Sms channel info for this contact"
        $ref: "#/definitions/TrackingActivitySmsChannelDTO"
  PContactSMSOptInTrackingActivitiesPage:
    type: "object"
    required:
    - "_links"
    - "tracking_activities"
    properties:
      tracking_activities:
        type: "array"
        description: "The list of landing page contact opt in tracking activities."
        items:
          $ref: "#/definitions/PContactSMSOptInTrackingActivity"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/lpreportingLinks"
  UniqueSmsCounts:
    type: "object"
    required:
    - "clicks"
    - "delivers"
    - "optouts"
    - "sends"
    properties:
      sends:
        type: "integer"
        format: "int32"
        example: 100
        description: "The total number of unique sends."
      delivers:
        type: "integer"
        format: "int32"
        example: 100
        description: "The total number of SMS delivered."
      opens:
        type: "integer"
        format: "int32"
        example: 75
        description: "The total number of unique opens."
      clicks:
        type: "integer"
        format: "int32"
        example: 294
        description: "The total number of unique clicks."
      optouts:
        type: "integer"
        format: "int32"
        example: 0
        description: "The total number of unique opt-outs (unsubscribes)."
  BulkCampaignSummary:
    type: "object"
    required:
    - "campaign_id"
    - "campaign_name"
    - "campaign_type"
    - "last_sent_date"
    - "unique_counts"
    properties:
      campaign_id:
        type: "string"
        format: "uuid"
        example: "a2fdc285-f4bc-408c-9e64-f3f89038ec82"
        description: "The ID that uniquely identifies the campaign."
      campaign_name:
        type: "string"
        example: "Spring Clearance Sale"
        description: "The name to associate with this campaign."
      last_sent_date:
        type: "string"
        format: "date-time"
        example: "2019-04-25T11:08:00.000Z"
        description: "The date that the campaign was last sent."
      unique_counts:
        description: "The total number of times each unique contact interacted with\
          \ a tracked SMS campaign activity."
        $ref: "#/definitions/UniqueSmsCounts"
      campaign_type:
        type: "string"
        example: "SMS"
        description: "The campaign type."
  BulkSmsCampaignSummariesPercents:
    type: "object"
    properties:
      deliver:
        type: "number"
        example: 23.0
        description: "The aggregated SMS delivery rate for all campaigns on the current\
          \ results page."
      click:
        type: "number"
        example: 43.0
        description: "The aggregated click rate for all campaigns on the current results\
          \ page."
      bounce:
        type: "number"
        example: 0.0
        description: "The aggregated bounce rate for all campaigns on the current\
          \ results page."
      unsubscribe:
        type: "number"
        example: 0.0
        description: "The aggregated unsubscribe (opt-out) rate for all campaigns\
          \ on the current results page."
  SmsCampaignSummariesPage:
    type: "object"
    properties:
      bulk_sms_campaign_summaries:
        type: "array"
        description: "Provides details about each SMS campaign, including the total\
          \ unique counts for each tracked campaign activity."
        items:
          $ref: "#/definitions/BulkCampaignSummary"
      aggregate_percents:
        description: "Campaign activity aggregate percents, including <code>click</code>,\
          \ <code> deliver</code>, <code> bounce</code>, and <code>unsubscribe</code>,\
          \ for all SMS campaigns returned on a page of results."
        $ref: "#/definitions/BulkSmsCampaignSummariesPercents"
      _links:
        description: "HAL property that contains next link if applicable"
        $ref: "#/definitions/reportingsmsLinks"
  PaginationLinks:
    type: "object"
    properties:
      next:
        description: "Contains the next page link, if applicable."
        $ref: "#/definitions/partnersLink"
  PartnerAccount:
    type: "object"
    required:
    - "site_owner_list"
    properties:
      site_owner_list:
        type: "array"
        description: "Lists all Constant Contact client accounts that are managed\
          \ under a partner account."
        items:
          type: "object"
          properties:
            encoded_account_id:
              type: "string"
              example: "a08e1izvh8t9"
              description: "The obfuscated ID used to uniquely identify a client account."
              readOnly: true
            subscriber_count:
              type: "integer"
              format: "int64"
              example: 65
              description: "The total number of subscriber contacts that are associated\
                \ with a client account."
              readOnly: true
            organization_name:
              type: "string"
              example: "Zenomatic"
              description: "The name of the organization associated with this client\
                \ account."
              readOnly: true
            site_owner_name:
              type: "string"
              example: "Zen1016153"
              description: "The user name that identifies a client account."
              readOnly: true
            billing_status:
              type: "string"
              example: "Open"
              description: "The client's account billing status. When you first create\
                \ a client account the `billing status` defaults to `Trial`. Billing\
                \ status values include: <ul>\n  <li><code>Trial</code> - A non-paying\
                \ trial client account (default value).</li>\n  <li><code>Open</code>\
                \ - An active and paying client account.</li>\n  <li><code>Canceled</code>\
                \ - A canceled client account.</li>\n  <li><code>Trial End</code>\
                \ - The trial period has ended for this client account.</li>\n</ul>"
              readOnly: true
            last_login_date:
              type: "string"
              format: "date-time"
              example: "2019-04-25T11:08:00.000Z"
              description: "The system generated date and time (ISO-8601) showing\
                \ when the client last logged into their Constant Contact account.\
                \ If a client has not logged into their account, the value is `null`.\
                \ This property does not display in the results."
              readOnly: true
      _links:
        description: "HAL property that contains the next link, if applicable."
        $ref: "#/definitions/PaginationLinks"
  Provision:
    type: "object"
    required:
    - "contact_email"
    - "country_code"
    - "login_name"
    - "state_code"
    properties:
      contact_email:
        type: "string"
        example: "clients_email@gmail.com"
        description: "A valid email address to associate with the client account."
        maxLength: 80
      contact_phone:
        type: "string"
        example: "588-768-6868"
        description: "The contact phone number to associate with the client account."
        minLength: 5
        maxLength: 25
      country_code:
        type: "string"
        example: "US"
        description: "The two-letter country code (ISO 3166-1 code) that specifies\
          \ the country in which the client resides."
        minLength: 2
        maxLength: 3
      organization_name:
        type: "string"
        example: "Hanks Fresh Fruit Delivery"
        description: "The name of organization that identifies the client account."
        minLength: 1
        maxLength: 50
      organization_phone:
        type: "string"
        example: "401-244-1000"
        description: "The organization phone number. To set the organization phone\
          \ number using the user interface, select <b>My Settings</b> and in the\
          \ <b>Organization Information</b> section, select <b>Edit Organization Information</b>."
        minLength: 5
        maxLength: 25
      state_code:
        type: "string"
        example: "MA"
        description: "The two-letter state code that represents the US state (<code>country_code</code>\
          \ is <code>US</code> ) or Canadian province (<code>country_code</code> is\
          \ <code>CA</code>) where the client's organization is physically located.\
          \ Leave the <code>state_code</code> blank for non-US states and Canadian\
          \ provinces."
      time_zone_id:
        type: "string"
        example: "US/Eastern"
        description: "The offical time zone to use to represent the physical location\
          \ associated with the client account."
      website:
        type: "string"
        example: "http://your.company.website"
        description: "The client's website URL. Specifying the website URL eliminates\
          \ the need for clients to provide that information. Requires a valid URL\
          \ starting with http:// or https://."
      login_name:
        type: "string"
        example: "hank_smith"
        description: "A unique login name to associate with the client account. The\
          \ name must only contain alphanumeric characters and '-', '_', '@','.','+'. "
        minLength: 6
        maxLength: 50
      password:
        type: "string"
        example: "123456789"
        description: "Required if not using Single Sign On (SSO) or external authenticator.\
          \ The password to associate with the client account. Passwords must be at\
          \ least 8 characters and no more than 80 characters in length. Passwords\
          \ can contain alphabetical letters (A-Z) and (a-z), numbers (0-9), special\
          \ characters (! @ # $ etc.) and spaces. Passwords should not contain any\
          \ part of your username and cannot be the same as your last password, or\
          \ be listed on an industry database; we check for easily guessed or compromised\
          \ passwords. Your new password is not returned in the response payload for\
          \ security reasons. If using SSO authentication, use <code>idp_provider</code>\
          \ and <code>idp_provider_id</code> instead of <code>password</code>."
        minLength: 8
        maxLength: 80
      first_name:
        type: "string"
        example: "Hank"
        description: "The client account owner's first name."
        minLength: 2
        maxLength: 80
      last_name:
        type: "string"
        example: "Smith"
        description: "The client account owner's last name."
        minLength: 2
        maxLength: 80
      partner_account_id:
        type: "string"
        example: "partner1234"
        description: "The unique client account identifier that partners define and\
          \ use for billing and reporting purposes."
        maxLength: 80
      billing_locale:
        type: "string"
        example: "en_US."
        description: "The currency to use when billing the client account. Valid values\
          \ are: <code>en_US</code> (default, US Dollars) or <code>en_GB</code> (British\
          \ Pounds)."
      managed_site_owner:
        type: "boolean"
        example: true
        description: "By default, if the client account is setup as a managed account\
          \ <code>managed_site_owner</code> is automatically set to <code>true</code>\
          \ and attempting to override the setting with <code>false</code> is ignored.\
          \ This helps to avoid getting an account into an unknown state."
      enable_single_billing:
        type: "boolean"
        example: true
        description: "If a partner account is setup to allow for single billing and\
          \ the <code>managed_site_owner</code> property is set to <code>true</code>,\
          \ use this property to enable the single billing feature for the client\
          \ account. See your account manager for more information."
      gdpr_opt_out:
        type: "boolean"
        example: true
        description: "When creating accounts for users who have opted-out of any marketing\
          \ communications, set  the <code> gdpr_opt_out</code>  to <code>true</code>\
          \  so that Constant Contact does not send any marketing communications to\
          \ the account."
      external_id:
        type: "string"
        example: "123456789123456789"
        description: "The ID used to uniquely identify the client account for the\
          \ external authenticator. Do not use the <code>password</code> property\
          \ when using an external authenticator."
        maxLength: 255
      external_provider:
        type: "string"
        example: "Yahoo"
        description: "The name of the provider who externally authenticates this customer.\
          \ For example, PayPal or Yahoo. Do not use the <code>password</code> property\
          \ when using an external authenticator."
        maxLength: 80
  ProvisionResponse:
    type: "object"
    properties:
      encoded_account_id:
        type: "string"
        example: "a08e1izzh8t9"
        description: "The system generated ID used to uniquely identify a client account."
      provision_uuid:
        type: "string"
        example: "x9xx2ede-5a58-4e23-8168-25930c5x7bxb"
        description: "The system generated ID used to uniquely identify the provisioning\
          \ of a client account."
  PlanInfo:
    type: "object"
    properties:
      plan_type:
        type: "string"
        example: "GOLD"
        description: "Use this property to update the client account billing plan\
          \ to a different billing plan. After changing the <code>plan_type</code>\
          \ from <code>TRIAL</code> to any other billing plan type, you cannot change\
          \ it back to <code>TRIAL</code>.\n  <ul>\n    <li><code>TRIAL</code>: A\
          \ non-billable account with an expiration date that allows clients to try\
          \ Constant Contact product features.</li>\n     <li><code>GOLD</code>: A\
          \ billable client account plan.</li>\n     <li><code>SILVER</code>: A billable\
          \ client account plan.</li>\n     <li><code>BRONZE</code>: A billable client\
          \ account plan.</li>\n  </ul>"
      plan_group_id:
        type: "integer"
        format: "int32"
        example: 152
        description: "Updates an existing client account billing plan group to a new\
          \ billing plan group. If you don't know the `plan_group_id` to use, contact\
          \ our API support team."
      billing_day_of_month:
        type: "integer"
        format: "int32"
        example: 15
        description: "This property is required if a client account is not set up\
          \ to use single billing. You can choose to enter a specific day of the month\
          \ or accept the default value, which is the day on which the <code>plan_type</code>\
          \ value changes from a <code>TRIAL</code> plan to a different <code>plan_type</code>.\
          \ For trial accounts, the value defaults to null. You can only change the\
          \ <code>billing_day_of_month</code> when changing the <code>plan_type</code>\
          \ value from <code>TRIAL</code> to a different <code>plan_type</code>, otherwise\
          \ the value you enter is ignored."
    description: "Specifies the type of billing plan and the billing date to use for\
      \ a client account."
  AccountCancellation:
    type: "object"
    properties:
      reason_id:
        type: "integer"
        format: "int32"
        example: 1
        description: "Specifies the reason that the client is canceling their Constant\
          \ Contact account as follows:\n  <ul>\n    <li><code>1</code>  Cost Too\
          \ High</li>\n    <li><code>2</code>  Using A Competitive Service</li>\n\
          \    <li><code>3</code>  Not Doing Email Marketing</li>\n    <li><code>11</code>\
          \ Something Missing Or Not Working </li>\n    <li><code>12</code> Doing\
          \ It In-House</li>\n    <li><code>14</code> Poor Results</li>\n    <li><code>21</code>\
          \ Too Difficult To Use</li>\n    <li><code>27</code> Canceled Online by\
          \ Customer</li>\n    <li><code>30</code> Dissatisfied With Billing Policies</li>\n\
          \  </ul>"
      effective_date:
        type: "string"
        format: "date-time"
        example: "2020-02-06T22:09:15.000Z"
        description: "The client account cancellation date and time in ISO-8601 format."
    description: "Specifies the date and time a client requests to cancel their Constant\
      \ Contact account and changes the account `billing_status` to `Canceled`. By\
      \ default, this is the current date and time in ISO format. In the request body,\
      \ you can optionally specify a future cancellation date (in ISO format) and\
      \ a reason (`reason_code`) that the client wants to cancel their account."
  QueryParamObject:
    type: "object"
    properties:
      query_param_key:
        type: "string"
        example: "include"
        description: "The name of the query parameter."
      query_param_value:
        type: "string"
        example: "list_memberships"
        description: "The value of the query parameter."
  PathParamObject:
    type: "object"
    properties:
      path_param_key:
        type: "string"
        example: "contact_id"
        description: "The name of the path parameter."
      path_param_value:
        type: "string"
        example: "04fe9a-a579-43c5-bb1a-58ed29bf0a6a"
        description: "The value of the path parameter."
  HeadersObject:
    type: "object"
    properties:
      header_key:
        type: "string"
        example: "Accept"
        description: "The name of the header."
      header_value:
        type: "string"
        example: "application/json"
        description: "The value of the header."
  PartnerAccountOperationsRequest:
    type: "object"
    required:
    - "account_operation_method"
    - "account_operation_url"
    properties:
      account_operation_url:
        type: "string"
        example: "/contacts/{contact_id}"
        description: "The API method path for the request you are sending on behalf\
          \ of a managed child account. This value should be a V3 API URL without\
          \ the https://api.cc.email/v3 base url and with any path parameter names\
          \ included. For example: <code>/emails/activities/{campaign_activity_id}</code>."
      account_operation_method:
        type: "string"
        example: "GET"
        description: "The http method for the request you are sending on behalf of\
          \ a managed child account."
      account_operation_payload:
        type: "string"
        example: ""
        description: "The request payload for the request you are sending on behalf\
          \ of a managed child account. If you provide a JSON payload using this parameter,\
          \ make sure that the JSON is string escaped."
      account_operation_query_parameters:
        type: "array"
        description: "An array containing the query parameters for the request you\
          \ are sending on behalf of a managed child account."
        items:
          $ref: "#/definitions/QueryParamObject"
      account_operation_path_parameters:
        type: "array"
        description: "An array containing the path parameters for the request you\
          \ are sending on behalf of a managed child account."
        items:
          $ref: "#/definitions/PathParamObject"
      account_operation_headers:
        type: "array"
        description: "An array containing the headers for the request you are sending\
          \ on behalf of a managed child account."
        items:
          $ref: "#/definitions/HeadersObject"
    description: "JSON object that contains the fields Constant Contact uses to construct\
      \ the HTTP request you are sending on behalf of a managed account."
  SSOUser:
    type: "object"
    required:
    - "contact_email"
    - "external_id"
    - "external_provider"
    - "first_name"
    - "last_name"
    - "login_name"
    - "role_name"
    properties:
      first_name:
        type: "string"
        example: "Josie"
        description: "The client account user's first name."
        maxLength: 80
      last_name:
        type: "string"
        example: "Lang"
        description: "The client account user's last name."
        maxLength: 80
      role_name:
        type: "string"
        example: "campaign_creator"
        description: "The role (<code>account_manager</code> or <code>campaign_creator</code>)\
          \ to assign the client account user."
      contact_email:
        type: "string"
        example: "josie.lang@gmail.com"
        description: "The unique email address to associate with the new client account\
          \ user."
        maxLength: 80
      login_name:
        type: "string"
        example: "josie.lang"
        description: "The login name to associate with the new client account user."
        maxLength: 50
      external_id:
        type: "string"
        example: "23378234122161121"
        description: "The unique ID used to identify the client account user to the\
          \ external authenticator. "
        maxLength: 255
      external_provider:
        type: "string"
        example: "Yahoo"
        description: "The unique name used to identify the external provider used\
          \ to authenticate the client account user. For a list of external providers,\
          \ contact the Constant Contact Partner Team."
        maxLength: 80
    description: "Specify client account user's details. All fields are required."
  AccountSuspension:
    type: "object"
    required:
    - "suspend_plan_group_id"
    - "suspend_plan_id"
    properties:
      suspend_plan_id:
        type: "integer"
        description: "Suspended plan group id."
      suspend_plan_group_id:
        type: "integer"
        description: "The suspended plan group id."
      suspend_date:
        type: "string"
        format: "date-time"
        description: "The date when the customer will start being suspended. If omitted\
          \ defaults to the current date and time and suspends the account at the\
          \ next billing cycle."
      suspend_reason_id:
        type: "integer"
        description: "The reason the customer is suspended."
      suspend_subreason_id:
        type: "integer"
        description: "The subreason why the customer is suspended."
      suspend_comment:
        type: "string"
        description: "Comment field for user suspension."
      suspend_estimated_reactivation_date:
        type: "string"
        format: "date-time"
        description: "Estimated date when the customer will be reactivated."
  WebhooksSubscriptionCollection:
    type: "array"
    description: "An array of webhook subscriptions."
    items:
      type: "object"
      properties:
        topic_id:
          type: "integer"
          example: 2
          description: "Identifies the topic using an integer to indicate the type\
            \ of topic."
        hook_uri:
          type: "string"
          example: "https://www.examplename.com/webhooks/billingTier"
          description: "Your webhook callback URI. Constant Contact automatically\
            \ sends POST requests to this URI to notify you about the topic."
        topic_name:
          type: "string"
          example: "Billing Tier Downgrade"
          description: "The name of the topic."
        topic_description:
          type: "string"
          example: "Executes when an account's billing tier is downgraded."
          description: "A description of what the topic is and when Constant Contact\
            \ notifies you concerning it."
  WebhooksSubscriptionResponse:
    type: "object"
    properties:
      topic_id:
        type: "integer"
        example: 2
        description: "Identifies the topic using an integer to indicate the type of\
          \ topic."
      hook_uri:
        type: "string"
        example: "https://www.examplename.com/webhooks/billingTier"
        description: "Your webhook callback URI. Constant Contact automatically sends\
          \ POST requests to this URI to notify you about the topic."
      topic_name:
        type: "string"
        example: "Billing Tier Downgrade"
        description: "The name of the topic."
      topic_description:
        type: "string"
        example: "Executes when an account's billing tier is downgraded."
        description: "A description of what the topic is and when Constant Contact\
          \ notifies you concerning it."
  WebhooksSubscriptionBody:
    type: "object"
    properties:
      hook_uri:
        type: "string"
        example: "https://www.examplename.com/webhooks/billingTier"
        description: "The callback URI you would like to use to receive webhook notifications.\
          \ Constant Contact will automatically send POST notifications about your\
          \ chosen topic to this URI."
  WebhooksSubscriptionPutResp:
    type: "object"
    properties:
      topic_id:
        type: "integer"
        example: 1
        description: "Identifies the topic using an integer to indicate the type of\
          \ topic."
      hook_uri:
        type: "string"
        example: "https://www.examplename.com/webhooks/billingTier"
        description: "Your webhook callback URI. Constant Contact automatically sends\
          \ POST requests to this URI to notify you about the topic."
  WebhooksTestSend:
    type: "object"
    properties:
      topic_id:
        type: "integer"
        example: 2
        description: "Identifies the topic using an integer to indicate the type of\
          \ topic."
      hook_uri:
        type: "string"
        example: "https://www.examplename.com/webhooks/billingTier"
        description: "The webhook callback URI. Constant Contact automatically sends\
          \ POST requests to this URI to notify you about the topic."
      topic_name:
        type: "string"
        example: "Billing Tier Downgrade"
        description: "The name of the topic."
      topic_description:
        type: "string"
        example: "Executes when an account's billing tier is downgraded."
        description: "A description of what the topic is and when Constant Contact\
          \ notifies you concerning it. When you use the test send API method, Constant\
          \ Contact will immediately send a test event to you."
  MyLibraryFileCollection:
    type: "array"
    items:
      type: "object"
      properties:
        id:
          type: "integer"
          description: "Identifies the MyLibrary file."
        name:
          type: "string"
          description: "The file name."
        height:
          type: "integer"
          description: "The image height."
        width:
          type: "integer"
          description: "The image width."
        size:
          type: "integer"
          description: "The image size."
        url:
          type: "string"
          description: "The image URL."
        description:
          type: "string"
          description: "The image description."
        folder:
          type: "string"
          description: "The image folder"
        source:
          type: "string"
          description: "The application that uploaded this image."
        type:
          type: "string"
          description: "The image format."
        status:
          type: "string"
          description: "The image status."
        thumbnail:
          type: "object"
          properties:
            width:
              type: "integer"
              format: "int32"
              description: "Thumbnail width."
            height:
              type: "integer"
              format: "int32"
              description: "Thumbnail height."
            url:
              type: "string"
              description: "Thumbnail url."
        image:
          type: "boolean"
          description: "Boolean indicating if this file is an image."
        folder_id:
          type: "integer"
          format: "int32"
          description: "Identifies a folder in MyLibrary."
        external_url:
          type: "string"
          description: "The external url for the file."
        modified_date:
          type: "string"
          description: "Identifies the time a user last modified the file."
        added_date:
          type: "string"
          description: "Identifies the time a user originally added the file to MyLibrary."
        external_file_id:
          type: "string"
          description: "External identifier for the file."
  FileObject:
    type: "object"
    properties:
      id:
        type: "integer"
        description: "Identifies the MyLibrary file."
      name:
        type: "string"
        description: "The file name."
      height:
        type: "integer"
        description: "The image height."
      width:
        type: "integer"
        description: "The image width."
      size:
        type: "integer"
        description: "The image size."
      url:
        type: "string"
        description: "The image URL."
      description:
        type: "string"
        description: "The image description."
      folder:
        type: "string"
        description: "The image folder"
      source:
        type: "string"
        description: "The application that uploaded this image."
      type:
        type: "string"
        description: "The image format."
      status:
        type: "string"
        description: "THe image status."
      thumbnail:
        type: "object"
        properties:
          width:
            type: "integer"
            format: "int32"
            description: "Thumbnail width."
          height:
            type: "integer"
            format: "int32"
            description: "Thumbnail height."
          url:
            type: "string"
            description: "Thumbnail url."
      image:
        type: "boolean"
        description: "Boolean indicating if this file is an image."
      folder_id:
        type: "integer"
        format: "int32"
        description: "Identifies a folder in MyLibrary."
      external_url:
        type: "string"
        description: "The external url for the file."
      modified_date:
        type: "string"
        description: "Identifies the time a user last modified the file."
      added_date:
        type: "string"
        description: "Identifies the time a user originally added the file to MyLibrary."
      external_file_id:
        type: "string"
        description: "External identifier for the file."
  FileStatusArray:
    type: "array"
    items:
      type: "object"
      properties:
        status:
          type: "string"
          description: "The upload status."
        description:
          type: "string"
          description: "File description."
        file_id:
          type: "integer"
          description: "Identifies the file in MyLibrary."
  tagsActivityLinks:
    type: "object"
    properties:
      self:
        type: "object"
        description: "The link returned in the response that you use to retrieve the\
          \ status for the specified activity."
        properties:
          href:
            type: "string"
            example: "/v3/activities/04fe9a97-a579-43c5-bb1a-58ed29bf0a6a"
  reportingNext:
    type: "object"
    required:
    - "href"
    properties:
      href:
        type: "string"
        description: "The next link in the page or null if there are no additional\
          \ pages."
  partnersLink:
    type: "object"
    properties:
      href:
        type: "string"
  reportingsmsLinks:
    type: "object"
    required:
    - "next"
    properties:
      next:
        description: "Contains the next link if it is available."
        $ref: "#/definitions/reportingsmsNext"
  lpreportingLinks:
    type: "object"
    required:
    - "next"
    properties:
      next:
        description: "Contains the next link if it is available."
        $ref: "#/definitions/lpreportingNext"
  tagsPagingLinks:
    type: "object"
    properties:
      next:
        description: "The link to the next page of results."
        $ref: "#/definitions/tagsLinks"
  emailsLink:
    type: "object"
    properties:
      href:
        type: "string"
  reportingLinks:
    type: "object"
    required:
    - "next"
    properties:
      next:
        description: "Contains the next page link if it is available."
        $ref: "#/definitions/reportingNext"
  tagsLinks:
    type: "object"
    properties:
      href:
        type: "string"
      next:
        description: "Contains the next page link, if applicable."
        $ref: "#/definitions/reportingNext"
  segmentsLinks:
    type: "object"
    required:
    - "next"
    properties:
      next:
        description: "HAL property that contains next link if applicable."
        $ref: "#/definitions/Next"
  emailsPagingLinks:
    type: "object"
    properties:
      next:
        $ref: "#/definitions/emailsLink"
  lpreportingNext:
    type: "object"
    required:
    - "href"
    properties:
      href:
        type: "string"
        description: "The next link in the page or null if there are no additional\
          \ pages"
  reportingsmsNext:
    type: "object"
    required:
    - "href"
    properties:
      href:
        type: "string"
        description: "The next link in the page or null if there are no additional\
          \ pages."
responses:
  Standard405ErrorResponse:
    description: "Unsupported method used."
  Standard415ErrorResponse:
    description: "Unsupported Media Type."
  Standard401ErrorResponse:
    description: "The Access Token used is invalid."
  EmailCampaigns429ErrorResponse:
    description: "Too many requests. You exceeded the request rate limit."
  Standard400ErrorResponse:
    description: "Bad request. Either the JSON was malformed or there was a data validation\
      \ error."
  Standard503ErrorResponse:
    description: "Our internal service is temporarily unavailable."
  Standard409ErrorResponse:
    description: "Conflict. The resource you are creating or updating conflicts with\
      \ an existing resource."
  AccountOperations404ErrorResponse:
    description: "Not found. This may indicate that the encoded_account_id you provided\
      \ is invalid, or the API request you are sending on behalf of an account returned\
      \ a 404."
  Standard429ErrorResponse:
    description: "Too many requests. You exceeded the request rate limit."
  Activities429ErrorResponse:
    description: "Too many requests. You exceeded 1,000 queued activities for this\
      \ user account."
  PlanTiersObject:
    description: "Specifies client billing plan details including the type of plan,\
      \ the plan tiers used, the current billing status, and the day of the month\
      \ that the client is billed. When a client account is first provisioned, the\
      \ `plan_type` defaults to a `Trial` account. After you change an account `billing_status`\
      \ from `Trial` to any other `billing_status`, you cannot change it back to a\
      \ `Trial` account."
  Standard500ErrorResponse:
    description: "There was a problem with our internal service."
  AccountCancellation:
    description: "Specifies the date and time a client requests to cancel their Constant\
      \ Contact account and changes the account `billing_status` to `Canceled`. By\
      \ default, this is the current date and time in ISO format. In the request body,\
      \ you can optionally specify a future cancellation date (in ISO format) and\
      \ a reason (`reason_code`) that the client wants to cancel their account."
  Standard403ErrorResponse:
    description: "Forbidden request. You lack the necessary scopes, you lack the necessary\
      \ user privileges, or the application is deactivated."
  Standard404ErrorResponse:
    description: "The requested resource was not found."
