openapi: 3.0.0
info:
  title: Campaigns API
  description: MediaMath Platform API
  version: xx.xx.xx
  contact:
    email: developers@mediamath.com
    url: https://mediamathsupport.force.com/
    name: Support
paths:
  /attachments:
    get:
      operationId: list-attachments
      summary: Get a List of Attachments
      description: >
        Get a list of attachments. Attachments can be queried and sorted by
        fields: 

        - `id`, 

        - `target_id`,

        - `strategy_id`,

        - `restriction`,

        - `operator`,

        - `created_on`,

        - `updated_on`,

        - `version`,

        - `or_better`.
      tags:
        - Targeting Attachments
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - in: query
          name: strategy_id
          schema:
            type: integer
            example: 123
          required: false
          description: >-
            If provided, only attachments for given strategy_id will be
            returned.
        - in: query
          name: dimension
          schema:
            type: string
            example: WURF,BRLG
          required: false
          description: |
            If provided, only attachments for given dimension will be returned. 
            Can be used with one or several dimensions.
      responses:
        '200':
          $ref: '#/components/responses/attachments_list'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-attachment
      summary: Create an Attachment
      description: Create an attachment
      tags:
        - Targeting Attachments
      responses:
        '201':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/attachment_create'
  /attachment:
    get:
      operationId: list-attachments-legacy
      summary: (Legacy) Get a List of Attachments
      description: Get a list of attachments
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: create-attachment-legacy
      summary: (Legacy) Create an Attachment
      description: Create an attachment
      tags:
        - Targeting Attachments
      responses:
        '201':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/attachment_create'
  /attachments/{attachment_id}:
    get:
      operationId: get-attachment
      summary: Get an Attachment
      description: Get an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to get
    post:
      operationId: update-attachment
      summary: Update an Attachment
      description: Update an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/attachment_update'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to update
    delete:
      operationId: delete-attachment
      summary: Delete an Attachment
      description: Delete an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment_deleted'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to delete
  /attachment/{attachment_id}:
    get:
      operationId: get-attachment-legacy
      summary: (Legacy) Get an Attachment
      description: Get an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to get
    put:
      operationId: update-attachment-legacy
      summary: (Legacy) Update an Attachment
      description: Update an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/attachment_update'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to update
    delete:
      operationId: delete-attachment-legacy
      summary: (Legacy) Delete an Attachment
      description: Delete an attachment by ID
      tags:
        - Targeting Attachments
      responses:
        '200':
          $ref: '#/components/responses/attachment_deleted'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: attachment_id
          in: path
          required: true
          description: Numeric ID of the attachment to delete
  /target:
    get:
      operationId: list-targets-legacy
      summary: (Legacy) List Targets
      description: Get a list of targets
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-target-legacy
      summary: (Legacy) Create a Target
      description: Create a target
      tags:
        - Targeting
      responses:
        '201':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/target_create'
  /target/{target_id}:
    get:
      operationId: get-target-legacy
      summary: (Legacy) Get a Target
      description: Get a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to get
    post:
      operationId: update-target-legacy
      summary: (Legacy) Update a Target
      description: Update a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/target_update'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to update
    delete:
      operationId: delete-target-legacy
      summary: (Legacy) Delete a Target
      description: Delete a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target_deleted'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to delete
    put:
      operationId: put-update-target-legacy
      summary: (Legacy) Update a Target
      description: Update a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/target_update'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to update
  /targets:
    get:
      operationId: list-targets
      summary: List targets
      description: Get a list of targets
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-target
      summary: Create a Target
      description: Create a target
      tags:
        - Targeting
      responses:
        '201':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/target_create'
  /targets/{target_id}:
    get:
      operationId: get-target
      summary: Get a Target
      description: Get a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - in: path
          name: target_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the target to get
    post:
      operationId: update-target
      summary: Update a Target
      description: Update a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/target_update'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to update
    delete:
      operationId: delete-target
      summary: Delete a Target
      description: Delete a target by ID
      tags:
        - Targeting
      responses:
        '200':
          $ref: '#/components/responses/target_deleted'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: target_id
          in: path
          required: true
          description: Numeric ID of the target to delete
  /target-path:
    get:
      operationId: list-target-paths-legacy
      summary: List Target paths
      description: Get a list of target paths
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /advertisers:
    get:
      operationId: list-advertisers
      summary: List Advertisers
      description: Get a list of advertisers
      tags:
        - Advertisers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/advertisers_with'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List advertisers response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/advertiser_collection'
                  - $ref: '#/components/schemas/advertiser_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-advertiser
      summary: Create an Advertiser
      description: Create an advertiser
      tags:
        - Advertisers
      responses:
        '201':
          description: Advertiser created response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/advertiser_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/advertiser_create'
  /advertisers/{advertiser_id}:
    get:
      operationId: get-advertiser
      summary: Get an Advertiser
      description: Get an advertiser by ID
      tags:
        - Advertisers
      parameters:
        - $ref: '#/components/parameters/extended'
        - in: path
          name: advertiser_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the advertiser to get
      responses:
        '200':
          description: Advertiser response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/advertiser_response'
                  - $ref: '#/components/schemas/advertiser_response_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-advertiser
      summary: Update an Advertiser
      description: Update an advertiser by ID
      parameters:
        - in: path
          name: advertiser_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the advertiser to update
      tags:
        - Advertisers
      responses:
        '200':
          description: Advertiser updated response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/advertiser_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/advertiser_update'
  /advertisers/{advertiser_id}/history:
    get:
      operationId: advertiser-audit-log
      summary: Advertiser Audit Log
      description: Get a list changes to this advertiser
      tags:
        - Advertisers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: advertiser_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the advertiser
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /agencies:
    get:
      operationId: list-agencies
      summary: List Agencies
      description: Get a list of agencies
      tags:
        - Agencies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/agencies_with'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List agencies response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/agency_collection'
                  - $ref: '#/components/schemas/agency_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-agency
      summary: Create an Agency
      description: Create an agency
      tags:
        - Agencies
      responses:
        '201':
          description: Agency created response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/agency_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/agency_create'
  /agencies/{agency_id}:
    get:
      operationId: get-agency
      summary: Get an Agency
      description: Get an agency by ID
      tags:
        - Agencies
      parameters:
        - $ref: '#/components/parameters/extended'
        - in: path
          name: agency_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the agency to get
      responses:
        '200':
          description: Agency response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/agency_response'
                  - $ref: '#/components/schemas/agency_response_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-agency
      summary: Update an Agency
      description: Update an agency by ID
      parameters:
        - in: path
          name: agency_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the agency to update
      tags:
        - Agencies
      responses:
        '200':
          description: Agency updated response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/agency_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/agency_update'
  /agencies/{agency_id}/history:
    get:
      operationId: agency-audit-log
      summary: Agency Audit Log
      description: Get a list of changes to this agency
      tags:
        - Agencies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: agency_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the agency
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /creatives/{creative_id}:
    get:
      operationId: get-creative
      summary: Get a Creative
      description: Get a creative by ID
      tags:
        - Creatives
      parameters:
        - in: path
          name: creative_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the creative to get
      responses:
        '200':
          description: Creative response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/creative_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /pixel_bundles:
    post:
      operationId: create-pixel-bundle
      summary: Create a Pixel Bundle
      description: Create a pixel bundle
      tags:
        - Pixel Bundles
      requestBody:
        $ref: '#/components/requestBodies/pixel_bundle_create'
      responses:
        '201':
          description: Pixel bundle created response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/pixel_bundle_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    get:
      operationId: list-pixel-bundles
      summary: List Pixel Bundles
      description: Get a list of pixel bundles
      tags:
        - Pixel Bundles
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/agencies_with'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: Pixel bundles response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/pixel_bundle_collection'
                  - $ref: '#/components/schemas/pixel_bundle_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /pixel_bundles/{pixel_bundle_id}:
    post:
      operationId: update-pixel-bundle
      summary: Update a Pixel Bundle
      description: Update a pixel bundle by ID
      tags:
        - Pixel Bundles
      parameters:
        - in: path
          name: pixel_bundle_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the pixel bundle to update
      requestBody:
        $ref: '#/components/requestBodies/pixel_bundle_update'
      responses:
        '200':
          description: Pixel bundle updated response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/pixel_bundle_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    get:
      operationId: get-pixel-bundle
      summary: Get a Pixel Bundle
      description: Get a pixel bundle by ID
      tags:
        - Pixel Bundles
      parameters:
        - in: path
          name: pixel_bundle_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the pixel bundle to get
      responses:
        '200':
          description: Pixel bundle response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/pixel_bundle_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /pixel_bundles/{pixel_bundle_id}/history:
    get:
      operationId: pixel-bundle-audit-log
      summary: Pixel Bundle Audit Log
      description: Get a list changes to this pixel bundle
      tags:
        - Pixel Bundles
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: pixel_bundle_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the pixel bundle
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /healthcheck:
    get:
      operationId: healthcheck
      summary: Health Check
      description: Health endpoint to check availability
      tags:
        - General
      responses:
        '200':
          $ref: '#/components/responses/health_check'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '503':
          $ref: '#/components/responses/error'
  /organizations:
    get:
      operationId: list-organizations
      summary: List Organizations
      description: Get a list of organizations
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List organizations response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/organization_collection'
                  - $ref: '#/components/schemas/organization_response'
              examples:
                example:
                  summary: Example response with three organizations
                  value:
                    data:
                      - id: 100000
                        name: Organization One
                        entity_type: organization
                      - id: 100001
                        name: Organization Two
                        entity_type: organization
                      - id: 100002
                        name: Organization Three
                        entity_type: organization
                    meta:
                      count: 3
                      total_count: 100
                      offset: 0
                      status: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: create-organization
      summary: Create an Organization
      description: Create an organization
      tags:
        - Organizations
      responses:
        '201':
          description: Organization created response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/organization_create'
  /organizations/{organization_id}:
    get:
      operationId: get-organization
      summary: Get an Organization
      description: Get an organization by ID
      parameters:
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization
      tags:
        - Organizations
      responses:
        '200':
          description: Organization response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-organization
      summary: Update an Organization
      description: Update an organization by ID
      parameters:
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization to update
      tags:
        - Organizations
      responses:
        '200':
          description: Organization updated response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/organization_update'
  /organizations/{organization_id}/history:
    get:
      operationId: organization-audit-log
      summary: Organization Audit Log
      description: Get a list of changes to this organization
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /audit_log/organizations:
    post:
      operationId: organization-audit-log-bulk
      summary: Bulk Organization Audit Log
      description: Get a list of changes to these organizations
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
      responses:
        '200':
          $ref: '#/components/responses/audit_log_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/id_list'
  /organizations/{organization_id}/permissions:
    get:
      operationId: list-user-permissions-organization
      summary: List User Permissions for an Organization
      description: List user permissions for an organization
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_organization'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /organizations/{organization_id}/settings:
    get:
      operationId: list-settings-organization
      summary: List Settings for an Organization
      description: List settings for an organization
      tags:
        - Organizations
      parameters:
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization
      responses:
        '200':
          description: List organization settings response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/settings_organization'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-settings-organization
      summary: Update Settings for an Organization
      description: Update settings for an organization
      tags:
        - Organizations
      parameters:
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the organization
      responses:
        '200':
          description: Organization settings updated response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/settings_organization'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/settings_organization_update'
  /campaign_plans:
    get:
      operationId: list-campaign-plans
      summary: List Campaign Plans
      description: Get a list of campaign plans
      tags:
        - Campaign Plans
      responses:
        '200':
          description: List campaign plans response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/campaign_plan'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-campaign-plan
      summary: Create Campaign Plan
      description: Create a campaign plan
      tags:
        - Campaign Plans
      responses:
        '201':
          description: Campaign plan created response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/campaign_plan'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 256
                advertiser_id:
                  type: integer
                  format: int32
                  example: 256
                duration:
                  type: object
                  properties:
                    start_date:
                      type: string
                      format: date-time
                    end_date:
                      type: string
                      format: date-time
                  required:
                    - start_date
                    - end_date
                budget:
                  type: object
                  properties:
                    total_budget:
                      type: number
                      format: float
                      minimum: 1
                      maximum: 99999999999999.98
                    currency_code:
                      type: string
                      maxLength: 3
                  required:
                    - total_budget
                    - currency_code
                zone_name:
                  type: string
              required:
                - name
                - advertiser_id
                - duration
                - budget
                - zone_name
            examples:
              Example:
                value:
                  advertiser_id: 190
                  name: valid campaign plan
                  duration:
                    start_date: '2050-01-01T10:00:00Z'
                    end_date: '2050-01-10T23:59:00Z'
                  budget:
                    currency_code: USD
                    total_budget: 100
                  zone_name: America/New_York
  /campaign_plans/{campaign_plan_id}:
    get:
      operationId: get-campaign-plan
      summary: Get a Campaign Plan
      description: Get a campaign plan by ID
      parameters:
        - in: path
          name: campaign_plan_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign plan
      tags:
        - Campaign Plans
      responses:
        '200':
          description: Campaign plan response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/campaign_plan'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-campaign-plan
      summary: Update a Campaign Plan
      description: Update a campaign plan by ID
      parameters:
        - in: path
          name: campaign_plan_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign plan object to update
      tags:
        - Campaign Plans
      responses:
        '200':
          description: Campaign plane updated response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/campaign_plan'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 256
                duration:
                  type: object
                  properties:
                    start_date:
                      type: string
                      format: date-time
                      description: start_date can not be in the past
                    end_date:
                      type: string
                      format: date-time
                      description: >-
                        end_date must be between 1 and 30 days away from
                        start_date
                  required:
                    - start_date
                    - end_date
                budget:
                  type: object
                  properties:
                    total_budget:
                      type: number
                      format: float
                      minimum: 1
                      maximum: 99999999999999.98
                    currency_code:
                      type: string
                      maxLength: 3
                  required:
                    - total_budget
                    - currency_code
                zone_name:
                  type: string
                version:
                  type: integer
                  format: int32
                  example: 2
              required:
                - name
                - duration
                - budget
                - zone_name
            examples:
              Example:
                value:
                  name: valid campaign plan
                  duration:
                    start_date: '2050-01-01T10:00:00Z'
                    end_date: '2050-01-10T23:59:00Z'
                  budget:
                    currency_code: USD
                    total_budget: 100
                  zone_name: America/New_York
  /new_strategy_plans/forecast:
    post:
      operationId: post-ephemeral-new-strategy-plan
      summary: Post Ephemeral New Strategy Plan to Run a Forecast
      description: >-
        Post a new strategy plan object to run forecast without saving the
        strategy plan
      tags:
        - New Strategy Plans
      requestBody:
        $ref: '#/components/requestBodies/new_strategy_plan_create'
      responses:
        '200':
          $ref: '#/components/responses/new_strategy_plan'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /new_strategy_plans/{strategy_plan_id}/forecast:
    post:
      operationId: run-and-update-forecast
      summary: Run and Update Forecast for Given New Strategy Plan
      description: Run and update forecast for given new strategy plan ID
      tags:
        - New Strategy Plans
      parameters:
        - in: path
          name: strategy_plan_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_plan object to run a forecast
      responses:
        '200':
          $ref: '#/components/responses/new_strategy_plan'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /new_strategy_plans/{strategy_plan_id}:
    get:
      operationId: get-new-strategy-plan
      summary: Get a New Strategy Plan
      description: Get a new strategy plan by ID
      tags:
        - New Strategy Plans
      parameters:
        - in: path
          name: strategy_plan_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_plan object to get
      responses:
        '200':
          $ref: '#/components/responses/new_strategy_plan'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-new-strategy-plan
      summary: Update a New Strategy Plan
      description: Update a new strategy plan by ID
      tags:
        - New Strategy Plans
      parameters:
        - in: path
          name: strategy_plan_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_plan object to update
      requestBody:
        $ref: '#/components/requestBodies/new_strategy_plan_update'
      responses:
        '200':
          $ref: '#/components/responses/new_strategy_plan'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    delete:
      operationId: delete-new-strategy-plan
      summary: Delete a New Strategy Plan
      description: Delete a new strategy plan by ID
      tags:
        - New Strategy Plans
      parameters:
        - in: path
          name: strategy_plan_id
          schema:
            type: integer
          required: true
          description: Array numeric IDs of the strategy_plan object to delete
      responses:
        '200':
          $ref: '#/components/responses/deleted_strategy_plans'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /new_strategy_plans:
    get:
      operationId: list-new-strategy-plans
      summary: List New Strategy Plans
      description: Get a list of new strategy plans
      tags:
        - New Strategy Plans
      parameters:
        - in: query
          name: organization_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the organization to get campaign plans for
        - in: query
          name: agency_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the agency to get campaign plans for
        - in: query
          name: advertiser_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the advertiser to get campaign plans for
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          description: List new strategy plans response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/new_strategy_plan_full_response'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-new-strategy-plan
      summary: Create a New Strategy Plan
      description: Create a new strategy plan
      tags:
        - New Strategy Plans
      requestBody:
        $ref: '#/components/requestBodies/new_strategy_plan_create'
      responses:
        '201':
          $ref: '#/components/responses/new_strategy_plan'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /new_strategy_plan_target_values:
    get:
      operationId: list-new-strategy-plan-target-values
      summary: List New Strategy Plan Target Values
      description: Get a list of new strategy plan target values
      tags:
        - New Strategy Plans
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List target values response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_plan_target_value_collection'
                  - $ref: >-
                      #/components/schemas/strategy_plan_target_value_collection_full
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /advertisers/{advertiser_id}/pixel_targeting_advertisers:
    get:
      operationId: list-advertisers-pixel-x-advertisers
      summary: List Advertisers when Agency has Cross Advertiser Pixels enabled
      description: >-
        List all advertiser siblings when parent agency has allow_x_adv_pixels
        set to true
      tags:
        - Advertisers
      parameters:
        - schema:
            type: string
          name: advertiser_id
          in: path
          required: true
          description: Numeric ID of the advertiser to get
      responses:
        '200':
          description: List advertisers response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/advertiser_collection'
                  - $ref: '#/components/schemas/advertiser_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /strategies:
    post:
      tags:
        - Strategies
      operationId: create-strategy
      summary: Create a Strategy
      description: >
        Create a strategy. 

        If your use case requires more than 100,000 IPs or postal codes, please
        contact your MediaMath representative to discuss custom solutions or
        alternative approaches.
      parameters:
        - $ref: '#/components/parameters/extended'
      requestBody:
        $ref: '#/components/requestBodies/strategy_create'
      responses:
        '201':
          description: Strategy created response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy'
                  - $ref: '#/components/schemas/strategy_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    get:
      operationId: list-strategies
      summary: List Strategies
      description: Get a list of strategies
      tags:
        - Strategies
      parameters:
        - $ref: '#/components/parameters/strategy_with'
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/extended'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List strategies response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_collection'
                  - $ref: '#/components/schemas/strategy_collection_full'
                  - $ref: '#/components/schemas/strategy_collection_full_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /strategies/{strategy_id}:
    post:
      operationId: update-strategy
      summary: Update a Strategy
      description: >
        Update a strategy by ID.

        If your use case requires more than 100,000 IPs or postal codes, please
        contact your MediaMath representative to discuss custom solutions or
        alternative approaches.
      tags:
        - Strategies
      parameters:
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy to update
        - $ref: '#/components/parameters/extended'
      requestBody:
        $ref: '#/components/requestBodies/strategy_update'
      responses:
        '200':
          description: Strategy updated response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy'
                  - $ref: '#/components/schemas/strategy_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
    get:
      operationId: get-strategy
      summary: Get a Strategy
      description: Get a strategy by ID
      tags:
        - Strategies
      parameters:
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy object to get
        - $ref: '#/components/parameters/extended'
      responses:
        '200':
          description: Strategy response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy'
                  - $ref: '#/components/schemas/strategy_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategies/{strategy_id}/copy:
    description: Copy a strategy
    post:
      tags:
        - Strategies
      summary: Copy a strategy
      description: Copy a strategy
      parameters:
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy object
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: boolean
                  description: Indicates the status.
                name:
                  type: string
                  description: Name of the entity.
                duration:
                  type: object
                  properties:
                    start_date:
                      type: string
                      format: date-time
                      description: Start date of the strategy.
                    copy_use_campaign_start:
                      type: boolean
                      description: Indicates if we copy the 'use_campaign_start' field.
                    end_date:
                      type: string
                      format: date-time
                      description: End date of the strategy.
                    copy_use_campaign_end:
                      type: boolean
                      description: Indicates if we copy the 'use_campaign_end' field.
                targeting:
                  type: object
                  properties:
                    copy_geofence:
                      type: boolean
                      description: Indicates if copy geofencing is enabled.
                    copy_contextual:
                      type: boolean
                      description: Indicates if copy contextual targeting is enabled.
                    copy_audience:
                      type: boolean
                      description: Indicates if copy audience targeting is enabled.
                    copy_technology:
                      type: boolean
                      description: Indicates if copy technology targeting is enabled.
                    copy_my_data:
                      type: boolean
                      description: Indicates if copy "my_data" targeting is enabled.
                    copy_location:
                      type: boolean
                      description: Indicates if copy "location" targeting is enabled.
                    copy_day_parts:
                      type: boolean
                      description: Indicates if copy "day_parts" targeting is enabled.
                    copy_postal_codes:
                      type: boolean
                      description: Indicates if copy "postal_codes" targeting is enabled.
                    copy_audio_video:
                      type: boolean
                      description: Indicates if copy "audio_video" targeting is enabled.
                    copy_ip_addresses:
                      type: boolean
                      description: Indicates if copy 'ip_address" targeting is enabled.
                    copy_fold_position:
                      type: boolean
                      description: Indicates if copy 'fold_position' targeting is enabled.
                inventory:
                  type: object
                  properties:
                    copy_supply:
                      type: boolean
                      description: Indicates if a supply is copied.
                    copy_site_lists:
                      type: boolean
                      description: Indicates if site lists are copied.
                    copy_supply_controls:
                      type: boolean
                      description: Indicates if supply controls are copied
                concepts:
                  type: object
                  properties:
                    copy_creative_groups:
                      type: boolean
                      description: Indicates if creative groups are copied
              required:
                - name
                - status
      responses:
        '200':
          description: Strategy copy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/strategy'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      operationId: post-copy-strategy
  /strategies/{strategy_id}/friendly_names:
    description: Get targeting friendly names
    get:
      operationId: get-strategy-friendly-names
      summary: Get Targeting Friendly Names
      description: Get targeting friendly names
      tags:
        - Strategies
      parameters:
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy object
      responses:
        '200':
          $ref: '#/components/responses/strategy_friendly_names'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategies/{strategy_id}/forecast_query:
    description: Get forecast query
    get:
      operationId: get-strategy-forecast-query
      summary: Get Forecast Query
      description: Get forecast query
      tags:
        - Strategies
      parameters:
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy object
      responses:
        '200':
          $ref: '#/components/responses/strategy_forecast_query'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategies/{strategy_id}/history:
    get:
      operationId: strategy-audit-log
      summary: Strategy Audit Log
      description: Get a list changes to this strategy
      tags:
        - Strategies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /bulk_update/strategies:
    post:
      operationId: bulk-update-strategies
      summary: Bulk Update Strategies
      description: Update multiple strategies
      tags:
        - Strategies
      responses:
        '200':
          $ref: '#/components/responses/strategy_bulk'
        '207':
          description: Multi-status updated strategy list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/strategy_full_response'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/strategy_bulk_update'
  /bulk_update/budget_flights:
    post:
      operationId: bulk-update-budget-flights
      summary: Bulk Update Budget Flights
      description: Update multiple budget flights
      tags:
        - Campaigns Budget Flights
      requestBody:
        $ref: '#/components/requestBodies/budget_flight_bulk_update'
      responses:
        '200':
          description: Updated budget flight list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      items:
                        $ref: '#/components/schemas/campaign_budget_flights'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '207':
          description: Multi-status updated budget flight list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/campaign_budget_flights'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /targeting:
    post:
      operationId: add-view-targeting
      summary: Add and View Targeting
      description: Add and view targeting
      tags:
        - Targeting
      responses:
        '200':
          description: Add and view response
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      location:
                        type: array
                        nullable: true
                        items:
                          $ref: '#/components/schemas/location_response'
                  meta:
                    type: object
                    required:
                      - status
                      - count
                    properties:
                      status:
                        type: string
                        minLength: 1
                      count:
                        type: number
                  errors:
                    type: array
                    nullable: true
                    items: {}
                required:
                  - meta
        '207':
          description: Multi-Status (WebDAV)
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    type: object
                    required:
                      - location
                    properties:
                      location:
                        type: array
                        uniqueItems: true
                        minItems: 1
                        items:
                          type: object
                          properties:
                            strategy_id:
                              type: number
                            strategy_target_id:
                              type: number
                            strategy_target_exclude:
                              type: boolean
                            strategy_target_active:
                              type: boolean
                            strategy_target_operator:
                              type: string
                              minLength: 1
                            strategy_target_value_id:
                              type: number
                            target_dimension_code:
                              type: string
                              minLength: 1
                            target_dimension_name:
                              type: string
                              minLength: 1
                            target_value_id:
                              type: number
                            target_value_name:
                              type: string
                              minLength: 1
                            target_value_value:
                              type: number
                            target_value_code:
                              type: string
                              minLength: 1
                            strategy_count:
                              type: number
                          required:
                            - strategy_id
                            - strategy_target_id
                            - strategy_target_exclude
                            - strategy_target_active
                            - strategy_target_operator
                            - strategy_target_value_id
                            - target_dimension_code
                            - target_dimension_name
                            - target_value_id
                            - target_value_name
                            - target_value_value
                            - target_value_code
                            - strategy_count
                  meta:
                    type: object
                    required:
                      - status
                      - count
                    properties:
                      status:
                        type: string
                        minLength: 1
                      count:
                        type: number
                  errors:
                    type: array
                    uniqueItems: true
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          minLength: 1
                        message:
                          type: string
                          minLength: 1
                        field:
                          type: string
                          minLength: 1
                      required:
                        - code
                        - message
                        - field
                required:
                  - data
                  - meta
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                strategy_id:
                  type: array
                  items:
                    type: integer
                    format: int32
                    example: 87
                targeting:
                  $ref: '#/components/schemas/targeting_base'
              required:
                - strategy_id
  /bulk_update/campaigns:
    post:
      operationId: bulk-update-campaigns
      summary: Bulk Update Campaigns
      description: Update multiple campaigns
      responses:
        '200':
          $ref: '#/components/responses/campaign_bulk'
        '207':
          $ref: '#/components/responses/campaign_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/campaign_bulk_update'
      tags:
        - Campaigns
  /campaigns/{campaign_id}:
    get:
      operationId: get-campaign
      summary: Get a Specific Campaign
      description: Get a campaign by ID
      tags:
        - Campaigns
      responses:
        '200':
          description: Campaign response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/campaign_campaign_full'
                  - $ref: '#/components/schemas/campaign_campaign_full_extended'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - $ref: '#/components/parameters/extended'
        - schema:
            type: integer
          name: campaign_id
          in: path
          required: true
          description: Numeric ID of the campaign to get
    post:
      operationId: update-campaign
      summary: Update a Campaign
      description: Update a campaign by ID
      tags:
        - Campaigns
      responses:
        '200':
          $ref: '#/components/responses/campaign'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/campaign_update'
      parameters:
        - schema:
            type: integer
          name: campaign_id
          in: path
          required: true
          description: Numeric ID of the campaign to update
  /campaigns:
    get:
      operationId: list-campaigns
      summary: List Campaigns
      description: >-
        Get a list of campaigns. The data fetched for each campaign depends on
        the values of query params. For example, if you use query parameter
        `full` all properties are fetched.
      tags:
        - Campaigns
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List campaigns response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/campaign_collection'
                  - $ref: '#/components/schemas/campaign_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-campaign
      summary: Create a Campaign
      description: Create a campaign
      tags:
        - Campaigns
      requestBody:
        $ref: '#/components/requestBodies/campaign_create'
      responses:
        '201':
          $ref: '#/components/responses/campaign'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /campaigns/{campaign_id}/history:
    get:
      operationId: campaign-audit-log
      summary: Campaign Audit Log
      description: Get a list of changes made to this campaign
      tags:
        - Campaigns
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: campaign_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /campaigns/{campaign_id}/budget_flights:
    get:
      operationId: list-budget-flights
      summary: List Budget Flights
      description: Get a list of budget flights
      tags:
        - Campaigns Budget Flights
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/full'
        - schema:
            type: integer
          name: campaign_id
          in: path
          required: true
          description: Numeric ID of the campaign
      responses:
        '200':
          description: List budget flights response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/budget_flight_collection'
                  - $ref: '#/components/schemas/budget_flight_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /campaigns/{campaign_id}/budget_flights/history:
    get:
      operationId: campaign-budget-flights-audit-log
      summary: Budget Flights for a given Campaign Audit Log
      description: Get a list changes to this campaign's budget flights
      tags:
        - Campaigns Budget Flights
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: campaign_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /campaigns/{campaign_id}/dynamic_budget_allocation:
    post:
      operationId: update-dba-single-legacy
      summary: (Legacy) Update Specific Campaign Dynamic Budget Allocation
      description: Legacy Endpoint - To be removed
      tags:
        - Campaigns
      parameters:
        - $ref: '#/components/parameters/full'
        - schema:
            type: integer
          name: campaign_id
          in: path
          required: true
          description: Numeric ID of the campaign
      responses:
        '200':
          description: DBA updated response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/campaign_dba_collection'
                  - $ref: '#/components/schemas/campaign_dba_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '503':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                dynamic_budget_allocation_applied:
                  type: string
                  format: date-time
                  nullable: true
                dynamic_budget_allocation_available:
                  type: string
                  format: date-time
                  nullable: true
  /campaigns/{campaign_id}/copy:
    description: Copy a campaign
    post:
      operationId: copy-campaign
      summary: Copy a Campaign
      description: Copy a campaign
      tags:
        - Campaigns
      parameters:
        - in: path
          name: campaign_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign object
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                advertiser_id:
                  type: integer
                name:
                  type: string
                  maxLength: 256
                start_date:
                  type: string
                  format: date-time
                end_date:
                  type: string
                  format: date-time
                merit_pixel_id:
                  type: integer
                  nullable: true
                status:
                  type: boolean
                  default: true
                copy_assigned_site_lists:
                  type: boolean
                  default: false
                  description: If true copy everything under 'site lists'
                copy_vendor_contracts:
                  type: boolean
                  default: false
                  description: If true copy everything under 'vendor contracts'
                copy_brain_settings:
                  type: boolean
                  default: false
                  description: >-
                    Used to be called 'remember_source'.  If true set the
                    source_campaign_id to campaign id
                copy_audience_in_brain:
                  type: boolean
                  default: false
                  description: If true copy 'custom_brain_selections'
                copy_viewability:
                  type: boolean
                  default: false
                  description: If true then copy viewability fields
                budget:
                  type: object
                  properties:
                    flights:
                      type: array
                      items:
                        type: object
                        properties:
                          start_date:
                            type: string
                            format: date-time
                            example: '2019-08-24T14:15:22Z'
                          end_date:
                            type: string
                            format: date-time
                            example: '2019-08-24T14:15:22Z'
                          total_budget:
                            type: number
                            example: 0.1
                          total_impression_budget:
                            type: integer
                            example: 0
                        required:
                          - start_date
                          - end_date
                          - total_budget
              required:
                - name
                - status
      responses:
        '201':
          $ref: '#/components/responses/campaign'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /campaign_dba:
    post:
      operationId: update-dba
      summary: Update Campaign Dynamic Budget Allocation
      description: This end point is restricted to a specific service account
      tags:
        - Campaigns
      responses:
        '200':
          $ref: '#/components/responses/dba_bulk'
        '207':
          $ref: '#/components/responses/dba_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/dba'
  /contextual_segments/cpm_estimate:
    post:
      operationId: contextual-segments-cpm-estimate
      summary: Contextual Segments CPM estimates
      description: Get CPM estimates for contextual segments
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/extended'
      requestBody:
        $ref: '#/components/requestBodies/contextual_segment_estimate'
      responses:
        '200':
          $ref: '#/components/responses/contextual_segment_estimate'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /targeting_segments/frequently_used:
    get:
      operationId: get-targeting-segments-frequently-used
      summary: Get Frequently Used Contextual Segments
      description: >-
        Display the most frequently used contextual segments for a given
        advertiser
      tags:
        - Targeting
      parameters:
        - in: query
          name: advertiser_id
          schema:
            type: integer
          description: Numeric ID of the advertiser to filter on
        - in: query
          name: top
          schema:
            type: integer
          description: limit of top elements
      responses:
        '200':
          $ref: '#/components/responses/targeting_segment_friendly_name'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /audience_segments/frequently_used:
    get:
      operationId: get-audience-segments-frequently-used
      summary: Frequently Used Audience Segments
      description: >-
        Display the most frequently used audience segments for a given
        advertiser or campaign.
      tags:
        - Targeting
      parameters:
        - in: query
          name: advertiser_id
          schema:
            type: integer
          description: Numeric ID of the advertiser to filter on
        - in: query
          name: campaign_id
          schema:
            type: integer
          description: Numeric ID of the campaign to filter on
        - in: query
          name: top
          schema:
            type: integer
          description: limit of top elements
      responses:
        '200':
          $ref: '#/components/responses/targeting_segment_friendly_name'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /audience_segments/cpm_estimate:
    post:
      operationId: audience-segments-cpm-estimate
      tags:
        - Targeting
      summary: Audience Segments CPM Estimate
      description: Audience segments CPM estimate
      parameters:
        - $ref: '#/components/parameters/extended'
      requestBody:
        $ref: '#/components/requestBodies/audience_segments_cpm_estimate'
      responses:
        '200':
          $ref: '#/components/responses/audience_segments_cpm_estimate'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /vendor_contracts:
    get:
      operationId: list-vendor-contracts
      summary: List Vendor Contracts
      description: List vendor contracts
      tags:
        - Vendor Contracts
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          $ref: '#/components/responses/vendor_contracts_list'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /strategy_templates:
    post:
      operationId: create-strategy-template
      summary: Create a Strategy Template
      description: Create a strategy template
      tags:
        - Strategy Templates
      responses:
        '201':
          $ref: '#/components/responses/strategy_template_created'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/strategy_template_create'
    get:
      operationId: list-strategy-template
      summary: List Strategy Templates
      description: Get a list of strategy templates
      tags:
        - Strategy Templates
      parameters:
        - in: query
          name: global
          schema:
            type: boolean
          required: false
          description: Boolean value to get global strategy templates
        - in: query
          name: organization_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the organization to get strategy templates for
        - in: query
          name: agency_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the agency to get strategy templates for
        - in: query
          name: advertiser_id
          schema:
            type: integer
          required: false
          description: Numeric ID of the advertiser to get strategy templates for
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          description: List strategy templates response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/strategy_template_response'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /marketplaces/{marketplace_id}:
    get:
      operationId: get-marketplace
      summary: Get a Marketplace
      description: Get a marketplace by ID
      tags:
        - Marketplaces
      responses:
        '200':
          description: Marketplace response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/marketplace_full_response'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: marketplace_id
          in: path
          required: true
          description: Numeric ID of the marketplace to get
    post:
      operationId: update-marketplace
      summary: Update a Marketplace
      description: Update a marketplace by ID
      tags:
        - Marketplaces
      responses:
        '200':
          $ref: '#/components/responses/marketplace'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/marketplace_update'
      parameters:
        - schema:
            type: integer
          name: marketplace_id
          in: path
          required: true
          description: Numeric ID of the marketplace to update
  /marketplaces:
    get:
      operationId: list-marketplaces
      summary: List Marketplaces
      description: Get a list of marketplaces
      tags:
        - Marketplaces
      responses:
        '200':
          description: List marketplaces response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/marketplace_full_response'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-marketplace
      summary: Create a Marketplace
      description: Create a marketplace
      tags:
        - Marketplaces
      requestBody:
        $ref: '#/components/requestBodies/marketplace_create'
      responses:
        '201':
          $ref: '#/components/responses/marketplace'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /strategy_templates/{strategy_template_id}:
    post:
      parameters:
        - in: path
          name: strategy_template_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_template object
      operationId: update-strategy-template
      summary: Update a Strategy Template
      description: Update a strategy template by ID
      tags:
        - Strategy Templates
      responses:
        '200':
          $ref: '#/components/responses/strategy_template_updated'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '503':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/strategy_template_create'
    get:
      operationId: get-strategy-template
      summary: Get a Strategy Template
      description: Get a strategy template by ID
      parameters:
        - in: path
          name: strategy_template_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_template
      tags:
        - Strategy Templates
      responses:
        '200':
          $ref: '#/components/responses/strategy_template_updated'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '503':
          $ref: '#/components/responses/error'
    delete:
      operationId: delete-strategy-template
      summary: Delete a Strategy Template
      description: Delete a strategy template by ID
      parameters:
        - in: path
          name: strategy_template_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy_template
      tags:
        - Strategy Templates
      responses:
        '200':
          $ref: '#/components/responses/strategy_template_deleted'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '503':
          $ref: '#/components/responses/error'
  /users:
    get:
      operationId: list-users
      summary: List users
      description: Get a list of users
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: create-user
      summary: Create a User
      description: Create a user
      tags:
        - Users
      responses:
        '201':
          description: User created response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/user_create'
  /users/{user_id}:
    get:
      operationId: get-user
      tags:
        - Users
      summary: Get a User
      description: Get a user by ID
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the user to get
        - $ref: '#/components/parameters/extended'
      responses:
        '200':
          description: User response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-user
      summary: Update a User
      description: Update a user by ID
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the user to update
      tags:
        - Users
      responses:
        '200':
          description: User updated response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/user_update'
  /users/{user_id}/history:
    get:
      operationId: user-audit-log
      summary: User Audit Log
      description: Get a list changes to this user
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the user
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /users/{user_id}/settings:
    get:
      operationId: get-user-settings
      tags:
        - Users
      summary: Get User's Settings
      description: Get user's settings by ID
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the user to get
      responses:
        '200':
          description: User settings response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user_settings_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: update-user-settings
      summary: Update User's Settings
      description: Update user's settings by ID
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the user to update
      tags:
        - Users
      responses:
        '200':
          description: User settings updated response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user_settings_response'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/user_settings_update_request'
  /permissions/{user_id}:
    get:
      operationId: list-user-permissions
      summary: List User Permissions
      description: Get a list of user permissions
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
        - in: query
          name: organization_id
          schema:
            type: array
            items:
              type: integer
          description: Numeric ID of the user
        - in: query
          name: agency_id
          schema:
            type: array
            items:
              type: integer
          description: Numeric ID of the agency
        - in: query
          name: advertiser_id
          schema:
            type: array
            items:
              type: integer
          description: Numeric ID of the advertiser
        - in: query
          name: campaign_id
          schema:
            type: array
            items:
              type: integer
          description: Numeric ID of the campaign
        - in: query
          name: strategy_id
          schema:
            type: array
            items:
              type: integer
          description: Numeric ID of the strategy
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/permission_list'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                    required:
                      - status
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    post:
      operationId: list-user-permissions-filtered
      summary: List User Permissions for Entities
      description: Get a list of user permissions for requested entities
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      requestBody:
        $ref: '#/components/requestBodies/permission_check'
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/permission_list'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                    required:
                      - status
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/organizations:
    get:
      operationId: list-user-permissions-organizations
      summary: List User Permissions for All Organizations
      description: Get a list of user permissions for organizations
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_organization'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/agencies:
    get:
      operationId: list-user-permissions-agencies
      summary: List User Permissions for All Agencies
      description: Get a list of user permissions for agencies
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_agency'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/advertisers:
    get:
      operationId: list-user-permissions-advertisers
      summary: List User Permissions for All Advertisers
      description: Get a list of user permissions for advertisers
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_advertiser'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/campaigns:
    get:
      operationId: list-user-permissions-campaigns
      summary: List User Permissions for All Campaigns
      description: Get a list of user permissions for campaigns
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_campaign'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/strategies:
    get:
      operationId: list-user-permissions-strategies
      summary: List User Permissions for All Strategies
      description: Get a list of user permissions for strategies
      tags:
        - User Permissions
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_strategy'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /permissions/{user_id}/v2format:
    get:
      operationId: list-user-permissions-v2
      summary: List User Permissions (V2 Format)
      description: Get a list of user permissions in V2 format
      tags:
        - User Permissions
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/permission_v2_object'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                    required:
                      - status
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: list-user-permissions-v2-filtered
      summary: List User Permissions for Entities (V2 Format)
      description: Get a list of user permissions for requested entities in V2 format
      tags:
        - User Permissions
      parameters:
        - in: path
          name: user_id
          schema:
            type: integer
          required: true
          description: User ID
      requestBody:
        $ref: '#/components/requestBodies/permission_v2_check'
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/permission_v2_object'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                    required:
                      - status
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /roles:
    get:
      operationId: list-roles
      summary: List Roles
      description: Get list of roles
      tags:
        - General
      responses:
        '200':
          $ref: '#/components/responses/list_roles'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /agencies/{agency_id}/permissions:
    get:
      operationId: list-user-permissions-agency
      summary: List User Permissions for an Agency
      description: List user permissions for an agency
      tags:
        - Agencies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: agency_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the agency
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_agency'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /advertisers/{advertiser_id}/permissions:
    get:
      operationId: list-user-permissions-advertiser
      summary: List User Permissions for an Advertiser
      description: List user permissions for an advertiser
      tags:
        - Advertisers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: advertiser_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the advertiser
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_advertiser'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /campaigns/{campaign_id}/permissions:
    get:
      operationId: list-user-permissions-campaign
      summary: List User Permissions for a Campaign
      description: List user permissions for an campaign
      tags:
        - Campaigns
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - in: path
          name: campaign_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the campaign
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_campaign'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategies/{strategy_id}/permissions:
    get:
      operationId: list-user-permissions-strategy
      summary: List User Permissions for a Strategy
      description: List user permissions for a strategy
      tags:
        - Strategies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - in: path
          name: strategy_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the strategy
      responses:
        '200':
          description: List user permissions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/permission_strategy'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /atomic_creatives:
    get:
      operationId: list-atomic-creatives
      summary: List Atomic Creatives
      description: Get a list of atomic creatives
      tags:
        - Atomic Creatives
      responses:
        '200':
          $ref: '#/components/responses/atomic_creative_collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      summary: Create atomic creative
      description: Create an atomic creative
      tags:
        - Atomic Creatives
      operationId: post-atomic_creatives
      responses:
        '201':
          $ref: '#/components/responses/atomic_creative'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/atomic_creative_create'
  /atomic_creatives/{atomic_creative_id}:
    get:
      operationId: get-atomic-creative
      summary: Get an Atomic Creative
      description: Get an atomic creative by ID
      tags:
        - Atomic Creatives
      responses:
        '200':
          $ref: '#/components/responses/atomic_creative'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: atomic_creative_id
          in: path
          required: true
          description: Numeric ID of the atomic creative to get
    post:
      summary: Update an atomic creative
      description: Update an atomic creative by ID
      tags:
        - Atomic Creatives
      operationId: post-atomic_creatives-atomic_creative_id
      responses:
        '200':
          $ref: '#/components/responses/atomic_creative'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '409':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/atomic_creative_update'
      parameters:
        - schema:
            type: integer
          name: atomic_creative_id
          in: path
          required: true
          description: Numeric ID of the atomic creative to update
  /atomic_creatives/{atomic_creative_id}/history:
    get:
      operationId: atomic-creative-audit-log
      summary: Atomic Creative Audit Log
      description: Get a list changes to this atomic creative
      tags:
        - Atomic Creatives
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: atomic_creative_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the atomic creative
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /atomic_creatives/healthcheck:
    get:
      operationId: atomic-creatives-healthcheck
      summary: Healthcheck for Atomic Creatives
      description: Endpoint to check the health of atomic creatives by ID(s).
      tags:
        - Atomic Creatives
      parameters:
        - name: q
          in: query
          description: |
            Query parameter to specify the atomic creative ID(s).
            Format:
            - For multiple IDs: `atomic_creative_id==(id1, id2)`
            - For a single ID: `atomic_creative_id==id`
          required: true
          schema:
            type: string
          examples:
            single:
              summary: Single ID
              value: atomic_creative_id==11884513
            multiple:
              summary: Multiple IDs
              value: atomic_creative_id==(11884513, 11884508)
      responses:
        '200':
          $ref: '#/components/responses/atomic_creative_healthcheck'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /concepts:
    get:
      operationId: list-concepts
      summary: List Concepts
      description: |
        Get a list of concepts. Concepts can be sorted by fields:
        - `id`,
        - `version`,
        - `advertiser_id`,
        - `name`,
        - `status`,
        - `created_on`,
        - `updated_on`,
        - `advertiser_name`
        and queried by fields:
        - `id`,
        - `version`,
        - `advertiser_id`,
        - `name`,
        - `status`,
        - `created_on`,
        - `updated_on`,
        - `advertiser_name`,
        - `organization_id`,
        - `agency_id`.
      tags:
        - Concepts
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - in: query
          name: media_type
          schema:
            type: string
            example: display,native
          required: false
          description: >
            Optional filter by media type. If provided only concepts with at
            least one atomic creative with requested type will be returned.

            Can be used with one or several types: 'audio', 'display', 'native',
            'video'. 

            If filter have several types, they will be applied using OR logic.
      responses:
        '200':
          $ref: '#/components/responses/concepts_collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    post:
      operationId: create-concept
      summary: Create a Concept
      description: Create a concept
      tags:
        - Concepts
      responses:
        '201':
          $ref: '#/components/responses/concept'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/concept_create'
  /concepts/{concept_id}:
    get:
      operationId: get-concept
      summary: Get a Concept
      description: Get a concept by ID
      tags:
        - Concepts
      responses:
        '200':
          $ref: '#/components/responses/concept'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: concept_id
          in: path
          required: true
          description: Numeric ID of the concept to get
    post:
      operationId: update-concept
      summary: Update a Concept
      description: Update a concept by ID
      tags:
        - Concepts
      responses:
        '200':
          $ref: '#/components/responses/concept'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/concept_update'
      parameters:
        - schema:
            type: integer
          name: concept_id
          in: path
          required: true
          description: Numeric ID of the concept to update
  /concepts/{concept_id}/history:
    get:
      operationId: concepts-audit-log
      summary: Concepts Audit Log
      description: Get a list changes to this concept
      tags:
        - Concepts
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: concept_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the concept
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /bulk_update/concepts:
    post:
      operationId: bulk-update-concepts
      summary: Bulk Update Concepts
      description: Update multiple concepts
      tags:
        - Concepts
      responses:
        '200':
          $ref: '#/components/responses/concepts_bulk'
        '207':
          $ref: '#/components/responses/concepts_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/concepts_bulk'
  /bulk_update/atomic_creatives:
    post:
      operationId: bulk-update-atomic-creatives
      summary: Bulk Update Atomic Creatives
      description: Update multiple atomic creatives
      tags:
        - Atomic Creatives
      responses:
        '200':
          $ref: '#/components/responses/atomic_creative_bulk'
        '207':
          $ref: '#/components/responses/atomic_creative_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/atomic_creative_bulk'
  /audit_log/agencies:
    post:
      operationId: agency-audit-log-bulk
      summary: Bulk Agency Audit Log
      description: Get a list of changes to these agencies
      tags:
        - Agencies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
      responses:
        '200':
          $ref: '#/components/responses/audit_log_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/id_list'
  /audit_log/advertisers:
    post:
      operationId: advertiser-audit-log-bulk
      summary: Bulk Advertiser Audit Log
      description: Get a list of changes to these advertiser
      tags:
        - Advertisers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
      responses:
        '200':
          $ref: '#/components/responses/audit_log_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/id_list'
  /audit_log/campaigns:
    post:
      operationId: campaign-audit-log-bulk
      summary: Bulk Campaign Audit Log
      description: Get a list of changes to these campaigns
      tags:
        - Campaigns
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
      responses:
        '200':
          $ref: '#/components/responses/audit_log_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/id_list'
  /audit_log/strategies:
    post:
      operationId: strategy-audit-log-bulk
      summary: Bulk Strategy Audit Log
      description: Get a list of changes to these strategies
      tags:
        - Strategies
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
      responses:
        '200':
          $ref: '#/components/responses/audit_log_bulk'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
      requestBody:
        $ref: '#/components/requestBodies/id_list'
  /search:
    get:
      operationId: search-entities
      summary: Search Entities
      description: Search organizations, agencies or advertisers by name
      tags:
        - General
      parameters:
        - in: query
          name: limit
          schema:
            type: integer
            default: 10
            maximum: 1000
          required: false
          description: number of elements in the collection to retrieve
        - in: query
          name: name
          schema:
            type: string
          required: true
          description: search term
        - in: query
          name: active_only
          schema:
            type: boolean
          required: false
          description: only show active entities
        - in: query
          name: terminated
          schema:
            type: boolean
          required: false
          description: show terminated entities
      responses:
        '200':
          $ref: '#/components/responses/search_result'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /target_values:
    get:
      operationId: list-target-values
      summary: List Target Values
      description: Get list of target values
      tags:
        - General
      parameters:
        - in: query
          name: name
          schema:
            type: string
          required: false
          description: Search name
      responses:
        '200':
          $ref: '#/components/responses/list_target_values'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /technology_target_values:
    get:
      operationId: list-technology-target-values
      summary: List Technology Target Values
      description: Get list of technology target values
      tags:
        - Targeting
      parameters:
        - in: query
          name: name
          schema:
            type: string
          required: false
          description: Case insensitive name contains search
        - in: query
          name: full_path
          schema:
            type: string
          required: false
          description: Case insensitive full_path contains search
        - in: query
          name: dimension_code
          schema:
            type: string
          required: true
          description: Comma separated list of dimension codes
        - in: query
          name: sort_by
          schema:
            type: string
          required: false
          description: field to sort by (ascending default, prepend '-' for descending)
        - in: query
          name: q
          schema:
            type: string
          required: false
          description: common query searching and pattern matching for fields
      responses:
        '200':
          $ref: '#/components/responses/list_technology_target_values'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /path_targeting_segments:
    get:
      operationId: list-contextual-segments
      summary: List Contextual Segments
      description: Get a list of contextual segments
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
        - in: query
          name: currency_code
          schema:
            type: string
            example: USD
            minLength: 3
            maxLength: 3
          required: false
          description: If not provided, the default currency (USD) will be used.
      responses:
        '200':
          description: List targeting segments response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/contextual_segment_collection'
                  - $ref: '#/components/schemas/contextual_segment_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /path_audience_segments:
    get:
      operationId: list-path-audience-segments
      summary: List Path Audience Segments
      description: >
        Get a list of path audience segments. Segments can be queried and sorted
        by fields: 

        - `id`, 

        - `name`,  

        - `version`, 

        - `parent_audience_segment_id`, 

        - `full_path`, 

        - `uniques`, 

        - `retail_cpm` (type = double, value in usd), 

        - `code`, 

        - `buyable`, 

        - `child_count`, 

        - `wholesale_cpm` (type = double, value in usd), 

        - `type`, 

        - `taxonomy_id`, 

        - `updated_on`, 

        - `created_on`, 

        - `audience_vendor_id`, 

        - `audience_vendor_name`, 

        - `audience_vendor_vendor_id`, 

        - `audience_vendor_mma_free_cm`, 

        - `audience_vendor_updated_on`, 

        - `audience_vendor_created_on`, 

        - `audience_vendor_version`, 

        - `audience_vendor_provides_batch_segments`, 

        - `audience_vendor_campaign_brain_enabled`, 

        - `audience_vendor_pin_top_search`, 

        - `audience_vendor_bidder_code`, 

        - `audience_vendor_namespace_code`.
      tags:
        - Targeting
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q_required'
        - in: query
          name: currency_code
          schema:
            type: string
            example: USD
            minLength: 3
            maxLength: 3
          required: false
          description: If not provided, the default currency (USD) will be used.
        - in: query
          name: advertiser_id
          schema:
            type: integer
          required: false
          description: Advertiser ID for taxonomy lookup
        - in: query
          name: only_brain_enabled
          schema:
            type: boolean
          required: false
          description: >-
            If true, only segments with audience_vendor.campaign_brain_enabled =
            true will be returned
        - in: query
          name: parent_id
          schema:
            type: integer
          required: false
          description: Parent audience segment ID
        - in: query
          name: with
          schema:
            type: string
            enum:
              - audience_vendor
          required: false
          description: If provided, additional entity information will be returned
      responses:
        '200':
          description: Path audience segments collection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/path_audience_segments_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /verticals:
    get:
      operationId: list-verticals
      summary: List Verticals
      description: Get all verticals
      tags:
        - Verticals
      responses:
        '200':
          description: List verticals response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 123
                        name:
                          type: string
                          example: Vertical Name
                        entity_type:
                          type: string
                          example: vertical
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                      count:
                        type: integer
                        example: 100
                      total_count:
                        type: integer
                        example: 12011
                      offset:
                        type: integer
                        example: 0
                      next_page:
                        type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal server error
  /audience_vendors:
    get:
      operationId: list-audience-vendors
      summary: List Audience Vendors
      description: Get a list of audience vendors
      tags:
        - Audience Vendors
      responses:
        '200':
          description: List audience vendors response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 123
                        name:
                          type: string
                          example: Vendor Name
                        entity_type:
                          type: string
                          example: audience_vendor
                        mma_free_cm:
                          type: boolean
                          example: true
                        updated_on:
                          type: string
                          example: '2021-01-01T00:00:00Z'
                        created_on:
                          type: string
                          example: '2021-01-01T00:00:00Z'
                        provides_batch_segments:
                          type: boolean
                          example: true
                        campaign_brain_enabled:
                          type: boolean
                          example: true
                        pin_top_search:
                          type: boolean
                          example: true
                        bidder_code:
                          type: string
                          example: am
                        namespace_code:
                          type: string
                          example: 5afb12h4
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                      count:
                        type: integer
                        example: 100
                      total_count:
                        type: integer
                        example: 12011
                      offset:
                        type: integer
                        example: 0
                      next_page:
                        type: string
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '500':
          description: Internal server error
    post:
      operationId: create-audience-vendor
      summary: Create an Audience Vendor
      description: Create an audience vendor
      tags:
        - Audience Vendors
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 0
                  maxLength: 256
                namespace_code:
                  type: string
                  minLength: 0
                  maxLength: 16
                bidder_code:
                  type: string
                  minLength: 0
                  maxLength: 16
                vendor_id:
                  type: integer
                  format: int32
                  example: 24
                campaign_brain_enabled:
                  type: boolean
                provides_batch_segments:
                  type: boolean
                mma_free_cm:
                  type: boolean
                pin_top_search:
                  type: boolean
                provider_tax:
                  type: string
              required:
                - name
                - namespace_code
                - bidder_code
                - vendor_id
      responses:
        '201':
          description: Audience vendor created response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 123
                      name:
                        type: string
                        example: Vendor Name
                      namespace_code:
                        type: string
                        example: namespace123
                      bidder_code:
                        type: string
                        example: bidder123
                      vendor_id:
                        type: integer
                        example: 456
                      campaign_brain_enabled:
                        type: boolean
                        example: true
                      provides_batch_segments:
                        type: boolean
                        example: true
                      mma_free_cm:
                        type: boolean
                        example: false
                      pin_top_search:
                        type: boolean
                        example: true
                      provider_tax:
                        type: string
                        example: tax123
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '500':
          description: Internal server error
  /audience_vendors/{audience_vendor_id}:
    get:
      operationId: get-audience-vendor
      summary: Get an Audience Vendor
      description: Get an audience vendor by ID
      tags:
        - Audience Vendors
      parameters:
        - name: audience_vendor_id
          in: path
          required: true
          description: Numeric ID of the audience vendor
          schema:
            type: integer
      responses:
        '200':
          description: Audience vendor response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 123
                      name:
                        type: string
                        example: Vendor Name
                      entity_type:
                        type: string
                        example: audience_vendor
                      mma_free_cm:
                        type: boolean
                        example: true
                      updated_on:
                        type: string
                        example: '2021-01-01T00:00:00Z'
                      created_on:
                        type: string
                        example: '2021-01-01T00:00:00Z'
                      provides_batch_segments:
                        type: boolean
                        example: true
                      campaign_brain_enabled:
                        type: boolean
                        example: true
                      pin_top_search:
                        type: boolean
                        example: true
                      bidder_code:
                        type: string
                        example: am
                      namespace_code:
                        type: string
                        example: 5afb12h4
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Audience Vendor not found
        '500':
          description: Internal server error
    post:
      operationId: update-audience-vendor
      summary: Update an Audience Vendor
      description: Update an audience vendor by ID
      tags:
        - Audience Vendors
      parameters:
        - name: audience_vendor_id
          in: path
          required: true
          description: Numeric ID of the audience vendor to update
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 0
                  maxLength: 256
                namespace_code:
                  type: string
                  minLength: 0
                  maxLength: 16
                bidder_code:
                  type: string
                  minLength: 0
                  maxLength: 16
                vendor_id:
                  type: integer
                  format: int32
                  example: 24
                campaign_brain_enabled:
                  type: boolean
                provides_batch_segments:
                  type: boolean
                mma_free_cm:
                  type: boolean
                pin_top_search:
                  type: boolean
                provider_tax:
                  type: string
      responses:
        '200':
          description: Audience vendor updated response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 123
                      name:
                        type: string
                        example: Updated Vendor Name
                      namespace_code:
                        type: string
                        example: new_namespace
                      bidder_code:
                        type: string
                        example: new_bidder
                      vendor_id:
                        type: integer
                        example: 456
                      campaign_brain_enabled:
                        type: boolean
                        example: false
                      provides_batch_segments:
                        type: boolean
                        example: true
                      mma_free_cm:
                        type: boolean
                        example: false
                      pin_top_search:
                        type: boolean
                        example: false
                      provider_tax:
                        type: string
                        example: new_tax
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Audience Vendor not found
        '500':
          description: Internal server error
  /entity_groups:
    get:
      operationId: list-entity-groups
      summary: List Entity Groups
      description: Get a list of entity groups
      tags:
        - Enterprise Controls
      responses:
        '200':
          description: List entity groups response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/entity_group_list_item'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /entity_groups/{entity_group_id}:
    get:
      operationId: get-entity-group
      summary: Get an Entity Group
      description: Get an entity group by ID
      tags:
        - Enterprise Controls
      parameters:
        - in: path
          name: entity_group_id
          schema:
            type: integer
          required: true
      responses:
        '200':
          description: Entity group response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/entity_group'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /entity_groups/{entity_group_id}/controls/{entity_type}:
    get:
      operationId: get-entity-group-controls-entity-type
      summary: Get Entity Group Controls by Entity Type
      description: Get controls of entity group by entity type
      tags:
        - Enterprise Controls
      parameters:
        - in: path
          name: entity_group_id
          schema:
            type: integer
          required: true
        - in: path
          name: entity_type
          schema:
            type: string
            enum:
              - agencies
              - advertisers
              - campaigns
              - strategies
              - deals
              - atomic_creatives
              - strategy_supply_sources
          required: true
      responses:
        '200':
          description: Entity group controls by entity type response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/enterprise_control'
                  meta:
                    $ref: '#/components/schemas/list_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /entity_groups/{entity_group_id}/history:
    get:
      operationId: entity-group-audit-log
      summary: Entity Group Audit Log
      description: Get a list changes to this entity group
      tags:
        - Enterprise Controls
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: entity_group_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the entity group
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /supply_sources:
    get:
      operationId: list-supply-sources
      summary: List Supply Sources
      description: >-
        Get a list of Supply Sources. The data fetched for each Supply Source
        depends on the values of query params. For example, if you use query
        parameter `full=*`; all properties are fetched.
      tags:
        - Supply Sources
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /supply_sources/{supply_source_id}:
    get:
      operationId: get-supply-source
      summary: Get a Supply Source
      description: Get a supply source by ID
      tags:
        - Supply Sources
      responses:
        '200':
          $ref: '#/components/responses/supply_source'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: supply_source_id
          in: path
          required: true
          description: Numeric ID of the supply_source to get
  /vendors:
    get:
      operationId: list-vendors
      summary: List Vendors
      description: >-
        Get a list of vendors. The data fetched for each vendor depends on the
        values of query params. For example, if you use query parameter `full`
        all properties are fetched.
      tags:
        - Vendors
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
        - name: detect_domains
          in: query
          description: >
            When enabled, only vendors with 'detect_domains' value will be
            returned.

            Accepts either **`1`** or **`true`**.
          required: false
          schema:
            type: string
            enum:
              - '1'
              - 'true'
          example: 'true'
      responses:
        '200':
          description: List vendors response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/vendor_collection'
                  - $ref: '#/components/schemas/vendor_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /vendors/{vendor_id}:
    get:
      operationId: get-vendor
      summary: Get a Vendor
      description: Get a vendor by ID
      tags:
        - Vendors
      responses:
        '200':
          description: Vendor response
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/vendor_base'
                  meta:
                    $ref: '#/components/schemas/single_metadata'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: vendor_id
          in: path
          required: true
          description: Numeric ID of the vendor to get
  /currency_rates:
    get:
      operationId: list-currency-rates
      summary: List Currency Rates
      description: Get a list of currency rates
      tags:
        - Currency Rates
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List currency rates response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/currency_rate_collection'
                  - $ref: '#/components/schemas/currency_rate_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /ad_servers:
    get:
      operationId: list-ad-servers
      summary: List Ad Servers
      description: Get a list of ad servers
      tags:
        - Ad Servers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List ad servers response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ad_server_collection'
                  - $ref: '#/components/schemas/ad_server_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists:
    get:
      operationId: list-site-lists
      summary: List Site Lists
      description: Get a list of site lists
      tags:
        - Site Lists
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List site lists response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/site_list_collection'
                  - $ref: '#/components/schemas/site_list_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists/{site_list_id}:
    get:
      operationId: get-site-list
      summary: Get Site List
      description: Get a site list by ID
      tags:
        - Site Lists
      parameters:
        - in: path
          name: site_list_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the site list to get
      responses:
        '200':
          description: Site list response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 10
                      version:
                        type: integer
                        example: 0
                      status:
                        type: boolean
                        example: true
                      organization_id:
                        type: integer
                        example: 28
                      name:
                        type: string
                        example: Test Site List
                      restriction:
                        type: string
                        enum:
                          - INCLUDE
                          - EXCLUDE
                        example: INCLUDE
                      filename:
                        type: string
                        example: test_site_list.csv
                      content_updated_on:
                        type: string
                        format: date-time
                        example: '2024-05-31T12:35:02Z'
                      sites_count:
                        type: integer
                        example: 2
                      sites_count_domain:
                        type: integer
                        example: 1
                      sites_count_app:
                        type: integer
                        example: 1
                      sites_count_primary_seller_id:
                        type: integer
                        example: 1
                      created_on:
                        type: string
                        format: date-time
                        example: '2025-03-21T14:39:51Z'
                      updated_on:
                        type: string
                        format: date-time
                        example: '2025-03-21T14:39:51Z'
                    required:
                      - id
                      - version
                      - status
                      - organization_id
                      - name
                      - restriction
                      - filename
                      - content_updated_on
                      - sites_count
                      - sites_count_domain
                      - sites_count_app
                      - sites_count_primary_seller_id
                      - created_on
                      - updated_on
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
                    required:
                      - status
                required:
                  - data
                  - meta
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists/upload:
    post:
      operationId: upload-create-site-lists
      summary: Upload New Site Lists
      description: Upload new site lists
      tags:
        - Site Lists
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The file to be uploaded (e.g., comma_sep.txt).
                organization_id:
                  type: string
                  description: The ID of the organization. Its a string because form upload
                name:
                  type: string
                  example: Test List
                  description: The name of the site list being uploaded.
                restriction:
                  type: string
                  enum:
                    - INCLUDE
                    - EXCLUDE
                status:
                  type: string
                  enum:
                    - 'true'
                    - 'false'
                    - '0'
                    - '1'
              required:
                - file
                - organization_id
                - name
      responses:
        '200':
          description: Upload response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/site_list_collection'
                  - $ref: '#/components/schemas/site_list_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists/{site_list_id}/upload:
    post:
      operationId: upload-update-site-lists
      summary: Upload Updated Site Lists
      description: Upload updated site lists
      tags:
        - Site Lists
      parameters:
        - in: path
          name: site_list_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the site list to get site list assignments
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The file to be uploaded (e.g., comma_sep.txt).
                organization_id:
                  type: string
                  description: The ID of the organization. Its a string because form upload
                name:
                  type: string
                  example: Test List
                  description: The name of the site list being uploaded.
                restriction:
                  type: string
                  enum:
                    - INCLUDE
                    - EXCLUDE
                status:
                  type: string
                  enum:
                    - 'true'
                    - 'false'
                    - '0'
                    - '1'
                version:
                  type: integer
      responses:
        '200':
          description: Upload response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/site_list_collection'
                  - $ref: '#/components/schemas/site_list_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists/{site_list_id}/download.csv:
    get:
      operationId: download-site-lists
      summary: Download Information for a Site List
      description: CSV download of site information for a site list
      tags:
        - Site Lists
      parameters:
        - in: path
          name: site_list_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the site list to get site list assignments
        - in: query
          name: target_type
          schema:
            type: string
          description: Filter the sites download by a target type
      responses:
        '200':
          description: Successful CSV download.
          headers:
            Content-Disposition:
              description: >-
                Indicates that the response should be handled as a file
                attachment.
              schema:
                type: string
          content:
            text/csv:
              schema:
                type: string
                format: binary
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /site_lists/{site_list_id}/assignments:
    get:
      operationId: get-site-list-assignments
      summary: List Site List Assignments
      description: Get a list of assignments for a site list
      tags:
        - Site Lists
      parameters:
        - in: path
          name: site_list_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the site list to get site list assignments
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List assignments response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/site_list_assignment_collection'
                  - $ref: '#/components/schemas/site_list_assignment_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /timezones:
    get:
      operationId: list-timezones
      summary: List Timezones
      description: Get a list of timezones
      tags:
        - Timezones
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List timezones response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/timezone_collection'
                  - $ref: '#/components/schemas/timezone_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /targeting_segments:
    get:
      operationId: list-targeting-segments
      summary: List Targeting Segments
      description: Get a list of targeting segments
      tags:
        - Targeting Segments
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List targeting segments response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/targeting_segment_collection'
                  - $ref: '#/components/schemas/targeting_segment_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /targeting_segment_objectives:
    get:
      operationId: list-targeting-segment-objectives
      summary: List Targeting Segment Objectives
      description: Get a list of targeting segment objectives
      tags:
        - Targeting Segment Objectives
      responses:
        '200':
          $ref: '#/components/responses/collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /targeting_segment_objectives/{objective_id}:
    get:
      operationId: get-targeting-segment-objective
      summary: Get a Targeting Segment Objective
      description: Get a targeting segment objective by ID
      tags:
        - Targeting Segment Objectives
      responses:
        '200':
          $ref: '#/components/responses/targeting_segment_objective'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
      parameters:
        - schema:
            type: integer
          name: objective_id
          in: path
          required: true
          description: Numeric ID of the targeting_segment_objective to get
  /strategy_deals:
    get:
      operationId: list-strategy-deals
      summary: List Strategy Deals
      description: Get a list of strategy deals
      tags:
        - Strategy Parameters
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/strategy_deals_with'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List strategy deals response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_deal_collection'
                  - $ref: '#/components/schemas/strategy_deal_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategy_day_parts:
    get:
      operationId: list-strategy-day-parts
      summary: List Strategy Day Parts
      description: Get a list of strategy day parts
      tags:
        - Strategy Parameters
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List strategy day parts response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_day_part_collection'
                  - $ref: '#/components/schemas/strategy_day_part_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategy_groups:
    get:
      operationId: list-strategy-groups
      summary: List Strategy Groups
      description: Get a list of strategy groups for a specific campaign
      tags:
        - Strategy Parameters
      responses:
        '200':
          description: List strategy groups response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_group_collection'
                  - $ref: '#/components/schemas/strategy_group_collection_full'
                  - $ref: >-
                      #/components/schemas/strategy_group_collection_full_extended
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategy_ip_addresses:
    get:
      operationId: list-strategy-ip-addresses
      summary: List Strategy IP Addresses
      description: Get a list of strategy IP addresses
      tags:
        - Strategy Parameters
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List strategy IP addresses response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_ip_address_collection'
                  - $ref: '#/components/schemas/strategy_ip_address_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategy_concepts:
    get:
      operationId: list-strategy-concepts
      summary: List Strategy Concepts
      description: Get a list of strategy concepts
      tags:
        - Strategy Parameters
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
        - $ref: '#/components/parameters/extended'
      responses:
        '200':
          description: List strategy concepts response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_concept_collection'
                  - $ref: '#/components/schemas/strategy_concept_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /strategy_target_values:
    get:
      operationId: list-strategy-target-values
      summary: List Strategy Target Values
      description: Get a list of strategy target values
      tags:
        - Strategy Parameters
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List strategy target values response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/strategy_target_value_collection'
                  - $ref: '#/components/schemas/strategy_target_value_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /contracts:
    post:
      operationId: create-contract
      summary: Create a Contract
      description: Create a contract
      tags:
        - Contracts
      requestBody:
        $ref: '#/components/requestBodies/contract_create'
      responses:
        '201':
          description: Contract created response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/contract_base_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
    get:
      operationId: list-contracts
      summary: List Contracts
      description: Get a list of contracts
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/full'
      responses:
        '200':
          description: List contracts response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/contract_collection'
                  - $ref: '#/components/schemas/contract_collection_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /contracts/{contract_id}:
    post:
      operationId: update-contract
      summary: Update a Contract
      description: Update a contract by ID
      tags:
        - Contracts
      parameters:
        - in: path
          name: contract_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the contract to update
      requestBody:
        $ref: '#/components/requestBodies/contract_update'
      responses:
        '200':
          description: Contract updated response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/contract_base_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    get:
      operationId: get-contract
      summary: Get a Contract
      description: Get a contract by ID
      tags:
        - Contracts
      parameters:
        - in: path
          name: contract_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the contract to get
      responses:
        '200':
          description: Contract response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/contract_base_response'
                  meta:
                    type: object
                    properties:
                      status:
                        type: string
                        example: success
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /contracts/{contract_id}/history:
    get:
      operationId: contract-audit-log
      summary: Contract Audit Log
      description: Get a list changes to this contract
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: contract_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the contract
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /segment_groups:
    post:
      operationId: create-segment-group
      summary: Create a Segment Group
      description: Create a segment group
      tags:
        - Segment Groups
      requestBody:
        $ref: '#/components/requestBodies/segment_group_create'
      responses:
        '201':
          $ref: '#/components/responses/segment_group'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    get:
      operationId: list-segment-groups
      summary: List Segment Groups
      description: Get a list of segment groups
      tags:
        - Segment Groups
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/extended'
        - in: query
          name: currency_code
          schema:
            type: string
            example: USD
            minLength: 3
            maxLength: 3
          required: false
          description: >
            Optional currency code to return segment group members in a specific
            currency.

            If not provided or not found, the default currency (USD) will be
            used.   
      responses:
        '200':
          $ref: '#/components/responses/segment_group_collection'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
  /segment_groups/{segment_group_id}:
    post:
      operationId: update-segment-group
      summary: Update a Segment Group
      description: Update a segment group by ID
      parameters:
        - in: path
          name: segment_group_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the segment group to update
      tags:
        - Segment Groups
      requestBody:
        $ref: '#/components/requestBodies/segment_group_update'
      responses:
        '200':
          $ref: '#/components/responses/segment_group'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
    get:
      operationId: get-segment-group
      summary: Get a Segment Group
      description: Get a segment group by ID
      parameters:
        - $ref: '#/components/parameters/extended'
        - in: query
          name: currency_code
          schema:
            type: string
            example: USD
            minLength: 3
            maxLength: 3
          required: false
          description: >
            Optional currency code to return segment group members in a specific
            currency.

            If not provided or not found, the default currency (USD) will be
            used.          
        - in: path
          name: segment_group_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the segment group to retrieve
      tags:
        - Segment Groups
      responses:
        '200':
          $ref: '#/components/responses/segment_group_single_get'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /segment_groups/{segment_group_id}/history:
    get:
      operationId: segment-groups-audit-log
      summary: Segment Groups Audit Log
      description: Get a list of changes to this segment group
      tags:
        - Segment Groups
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: segment_group_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the segment group
      responses:
        '200':
          $ref: '#/components/responses/audit_log'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /segment_groups/{segment_group_id}/assignments:
    get:
      operationId: get-segment-group-assignments
      summary: Get Segment Group Assignments
      description: Get all assignments for a specific segment group
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - in: path
          name: segment_group_id
          schema:
            type: integer
          required: true
          description: Numeric ID of the segment group to retrieve assignments for
      tags:
        - Segment Groups
      responses:
        '200':
          $ref: '#/components/responses/segment_group_assignments'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
  /pixel_providers:
    get:
      operationId: list-pixel-providers
      summary: List Pixel Providers
      description: Get all pixel providers
      tags:
        - Pixel Providers
      parameters:
        - $ref: '#/components/parameters/page_limit'
        - $ref: '#/components/parameters/page_offset'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/q'
      responses:
        '200':
          description: List pixel providers response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/pixel_providers_response'
                  - $ref: '#/components/schemas/pixel_providers_response_full'
        '400':
          $ref: '#/components/responses/error'
        '401':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/error'
components:
  schemas:
    advertiser_create:
      allOf:
        - $ref: '#/components/schemas/advertiser_base'
        - type: object
          properties:
            agency_id:
              type: integer
              format: int32
              example: 125
              minimum: 1
          required:
            - name
            - agency_id
            - vertical_id
            - ad_server_id
    user_create:
      allOf:
        - $ref: '#/components/schemas/user_base'
        - type: object
          required:
            - first_name
            - last_name
            - username
            - roles
          properties:
            first_name:
              type: string
              minLength: 1
              maxLength: 32
            last_name:
              type: string
              minLength: 1
              maxLength: 32
            phone:
              type: string
              maxLength: 24
            username:
              type: string
              minLength: 1
              maxLength: 255
            roles:
              type: array
              items:
                type: integer
                format: int16
                minimum: -32768
                maximum: 32767
    advertiser_update:
      allOf:
        - $ref: '#/components/schemas/advertiser_base'
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 1
              minimum: 0
    user_update:
      allOf:
        - $ref: '#/components/schemas/user_base'
        - type: object
          required:
            - version
            - first_name
            - last_name
            - roles
          properties:
            version:
              type: integer
              format: int32
              example: 2
            first_name:
              type: string
            last_name:
              type: string
            phone:
              type: string
            roles:
              type: array
              items:
                type: integer
                format: int16
                minimum: -32768
                maximum: 32767
    advertiser_base:
      title: advertiser
      type: object
      properties:
        ad_server_id:
          type: integer
          format: int32
          example: 126
        data_sharing_enabled:
          type: boolean
        dmp_enabled:
          type: string
          enum:
            - disabled
            - inherits
        domain:
          type: string
          maxLength: 255
        external_id:
          type: string
          maxLength: 255
          nullable: true
        frequency_interval:
          type: string
          nullable: true
          enum:
            - hour
            - day
            - week
            - month
            - not-applicable
        frequency_type:
          type: string
          nullable: true
          enum:
            - no-limit
            - asap
            - even
        frequency_amount:
          type: integer
          nullable: true
          format: int32
          example: 3
        minimize_multi_ads:
          type: boolean
        name:
          type: string
        status:
          type: boolean
        vertical_id:
          type: integer
          format: int32
          example: 433
        ads_txt_verified:
          type: string
          nullable: true
          enum:
            - ANY
            - AUTHORIZED_ONLY
            - AUTHORIZED_DIRECT_ONLY
            - NONE
        political:
          type: boolean
        connected_id_type:
          type: string
          enum:
            - DETERMINISTIC_FIRST
        mfa_avoidance:
          type: string
          enum:
            - INHERIT
            - ALLOW_ALL
            - EXCLUDE_MFA
        attribution_level:
          type: string
          enum:
            - INDIVIDUAL
            - HOUSEHOLD
          default: INDIVIDUAL
        targeting_identity_level:
          type: string
          enum:
            - INDIVIDUAL
            - HOUSEHOLD
          default: INDIVIDUAL
        vendor_attributions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              vendor_id:
                type: integer
                format: int32
                example: 18
              impression_pixel:
                type: string
    user_base:
      title: user
      type: object
      properties:
        title:
          type: string
          maxLength: 64
        active:
          type: boolean
        language:
          type: string
        zone_name:
          type: string
    attachment_create:
      type: object
      properties:
        target_id:
          type: number
          minimum: 1
          format: int32
          example: 8
        strategy_id:
          type: number
          minimum: 0
          format: int32
          example: 332
        restriction:
          type: string
          minLength: 1
          enum:
            - INCLUDE
            - EXCLUDE
        operator:
          type: string
          minLength: 1
          enum:
            - OR
            - AND
        or_better:
          type: boolean
      required:
        - target_id
        - strategy_id
        - restriction
        - operator
    attachment_update:
      type: object
      properties:
        target_id:
          type: number
          minimum: 0
          format: int32
          example: 8
        version:
          type: number
          format: int32
          example: 1
        strategy_id:
          type: number
          minimum: 1
          format: int32
          example: 332
        restriction:
          type: string
          minLength: 1
          enum:
            - INCLUDE
            - EXCLUDE
        operator:
          type: string
          minLength: 1
          enum:
            - OR
            - AND
        or_better:
          type: boolean
      required:
        - version
    attachment_base:
      type: object
      properties:
        id:
          type: number
          minimum: 1
        entity_type:
          type: string
          minLength: 1
          readOnly: true
        target_id:
          type: number
          minimum: 0
        strategy_id:
          type: number
          minimum: 1
        restriction:
          type: string
          minLength: 1
          enum:
            - INCLUDE
            - EXCLUDE
        operator:
          type: string
          minLength: 1
          enum:
            - OR
            - AND
        created_on:
          type: string
          readOnly: true
        updated_on:
          type: string
          readOnly: true
        version:
          type: number
          readOnly: true
        or_better:
          type: boolean
      required:
        - id
        - entity_type
        - target_id
        - strategy_id
        - restriction
        - operator
        - created_on
        - updated_on
        - version
    target_base:
      type: object
      properties:
        parent_id:
          type: integer
          format: int32
          example: 10
        name:
          type: string
          minLength: 1
        factual_id:
          type: string
        mediamath_organization_id:
          type: integer
          format: int32
          example: 20
        target_inet:
          type: string
          minLength: 1
        visible:
          type: boolean
        visible_overridden:
          type: boolean
        bidder_frequency:
          type: integer
          format: int32
          example: 5
        dimension_code:
          type: string
          minLength: 1
      required:
        - name
    target_create:
      allOf:
        - $ref: '#/components/schemas/target_base'
        - type: object
    target_update:
      type: object
      properties:
        parent_id:
          type: integer
          format: int32
          example: 5
        name:
          type: string
          minLength: 1
        factual_id:
          type: string
        mediamath_organization_id:
          type: integer
          format: int32
          example: 55
        target_inet:
          type: string
          minLength: 1
        visible:
          type: boolean
        visible_overridden:
          type: boolean
        bidder_frequency:
          type: integer
          format: int32
          example: 3
        dimension_code:
          type: string
          minLength: 1
        version:
          type: integer
          format: int32
          example: 2
    advertiser_response:
      title: advertiser_response
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/advertiser_response_base'
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - Organization
                    - Agency
                    - Advertiser
        meta:
          $ref: '#/components/schemas/single_metadata'
    user_response:
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/user_base'
            - type: object
              properties:
                id:
                  type: integer
                entity_type:
                  type: string
                username:
                  type: string
                version:
                  type: integer
                first_name:
                  type: string
                last_name:
                  type: string
                link_ldap:
                  type: boolean
                link_saml:
                  type: boolean
                phone:
                  type: string
                mobile:
                  type: string
                fax:
                  type: string
                type:
                  type: string
                role:
                  type: string
                scope:
                  type: string
                view_organizations:
                  type: boolean
                edit_campaigns:
                  type: boolean
                edit_margins_and_performance:
                  type: boolean
                creator_id:
                  type: integer
                created_on:
                  type: string
                  format: date-time
                  readOnly: true
                updated_on:
                  type: string
                  format: date-time
                  readOnly: true
                last_login_on:
                  type: string
                  nullable: true
                access_internal_fees:
                  type: boolean
                view_segments:
                  type: boolean
                edit_segments:
                  type: boolean
                view_data_definition:
                  type: boolean
                edit_data_definition:
                  type: boolean
                view_dmp_reports:
                  type: boolean
                email:
                  type: string
                roles:
                  type: array
                  items:
                    type: integer
                    format: int16
                    minimum: -32768
                    maximum: 32767
                permissions:
                  $ref: '#/components/schemas/user_permissions'
        meta:
          type: object
          properties:
            status:
              type: string
              example: success
    user_settings_response:
      type: object
      properties:
        data:
          type: object
          properties:
            settings:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  value:
                    type: string
        user:
          type: object
          properties:
            id:
              type: integer
            type:
              type: string
            name:
              type: string
        status:
          type: object
          properties:
            code:
              type: string
              example: ok
    user_settings_update_request:
      type: object
      properties:
        settings:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                type: string
                nullable: true
                description: if value is null or empty string then setting will be removed
    agency_create:
      allOf:
        - $ref: '#/components/schemas/agency_base'
        - type: object
          properties:
            organization_id:
              type: integer
              format: int32
              example: 17
              minimum: 1
          required:
            - organization_id
            - name
    agency_base:
      title: agency
      type: object
      properties:
        ads_txt_verified:
          type: string
          enum:
            - ANY
            - AUTHORIZED_ONLY
            - AUTHORIZED_DIRECT_ONLY
            - NONE
        allow_x_adv_optimization:
          type: boolean
        allow_x_adv_pixels:
          type: boolean
        dmp_enabled:
          type: string
          enum:
            - disabled
            - inherits
        eligible_for_data_sharing:
          type: boolean
        name:
          type: string
          minLength: 1
          maxLength: 64
        status:
          type: boolean
        logo:
          type: string
          maxLength: 1024
        mfa_avoidance:
          type: string
          enum:
            - INHERIT
            - ALLOW_ALL
            - EXCLUDE_MFA
    agency_response:
      title: agency_response
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/agency_response_base'
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - Organization
                    - Agency
        meta:
          $ref: '#/components/schemas/single_metadata'
    pixel_bundle_base:
      title: pixel_bundle_base
      type: object
      properties:
        id:
          type: integer
          minimum: 1
          format: int32
          example: 32
          readOnly: true
        provider_id:
          type: integer
          nullable: true
          minimum: 1
          format: int32
          example: 15
        name:
          type: string
          minLength: 1
          maxLength: 64
        cost_pct_cpm:
          type: number
          nullable: true
        eligible:
          type: boolean
        tags:
          type: string
          nullable: true
          readOnly: true
        cost_cpm:
          type: number
          nullable: true
        external_identifier:
          type: string
          readOnly: true
        tag_type:
          type: string
          enum:
            - dfa
            - uat
            - image
            - iframe
            - js
        pricing:
          type: string
          enum:
            - CPM
            - CPTS
          nullable: true
        cost_cpts:
          type: number
          nullable: true
        segment_op:
          type: string
          nullable: true
          enum:
            - AND
            - OR
        rmx_friendly:
          type: boolean
        rmx_merit:
          type: boolean
        rmx_pc_window_minutes:
          type: integer
          nullable: true
          format: int32
          example: 34
        rmx_pv_window_minutes:
          type: integer
          nullable: true
          format: int32
          example: 44
        rmx_conversion_type:
          type: string
          enum:
            - one
            - variable
        rmx_conversion_minutes:
          type: integer
          format: int32
          example: 24
        currency:
          type: string
          nullable: true
          enum:
            - S1
            - S2
            - V1
            - V2
        revenue:
          type: string
          nullable: true
          enum:
            - S1
            - S2
            - V1
            - V2
        currency_fixed:
          type: string
          nullable: true
        status:
          type: boolean
        event_urls:
          type: array
          items:
            type: string
          nullable: true
        contianer_tags:
          type: array
          items:
            type: string
          nullable: true
    pixel_bundle_response:
      title: pixel_bundle
      type: object
      allOf:
        - $ref: '#/components/schemas/pixel_bundle_create'
        - $ref: '#/components/schemas/pixel_bundle_base'
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 4
    creative_response:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/creative_base'
        meta:
          type: object
          properties:
            status:
              type: string
              example: success
    creative_base:
      title: creative
      type: object
      properties:
        atomic_creative_id:
          type: integer
          minimum: 1
        tag:
          type: string
        tag_type:
          type: string
          enum:
            - IFRAME_SCRIPT_NOSCRIPT
            - IFRAME_SCRIPT
            - IFRAME_NOSCRIPT
            - IFRAME_IMG
            - SCRIPT_NOSCRIPT
            - SCRIPT
            - NOSCRIPT
            - IFRAME
            - IMG
            - VIDEO
        inner_tag:
          type: string
    organization_base:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
          description: >
            The name of the organization with whom the contract is held.

            This can be an agency holding company, agency, advertiser, network,
            or other media or data buying entity.
        org_type:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - buyer
              - partner
          description: >-
            The `org_type` field is an array that specifies the type of
            organization.
        status:
          type: boolean
        website:
          type: string
          maxLength: 512
          nullable: true
        facebook:
          type: string
          maxLength: 512
          nullable: true
        linkedin:
          type: string
          maxLength: 512
          nullable: true
        twitter:
          type: string
          maxLength: 512
          nullable: true
        allow_x_agency_pixels:
          type: boolean
          description: >
            This field enables the Data Co-op functionality across all the
            Advertisers under this organization.

            Cross-Advertiser Pixel Targeting allows Advertisers to target other
            Advertiser Event Pixels within their Agency and any other similarly
            enabled Agency under the same Organization.
        allow_byo_price:
          type: boolean
        opt_out_connected_id:
          type: boolean
        opt_out_connected_id_mathid:
          type: boolean
        override_suspicious_traffic_filter:
          type: boolean
          description: >-
            Set flag to 'on’ to be able to override default org wide suspicious
            traffic filter level.
        restrict_targeting_to_same_device_id:
          type: boolean
        restrict_targeting_to_deterministic_id:
          type: boolean
        suspicious_traffic_filter_level:
          type: integer
          minimum: 0
          maximum: 100
          description: >
            Specify an organization-wide level of suspicious traffic filtering
            to use. See the Knowledge Base for additional details about this
            feature. This setting will only take affect if the organization's
            override_suspicious_traffic_filter property is set to 'on'.

            If override_suspicious_traffic_filter is enabled and
            suspicious_traffic_filter_level is set to 0, all fraud and
            suspicious traffic will be filtered.
        use_ads_txt:
          type: boolean
        use_evidon_optout:
          type: boolean
          nullable: true
          description: >-
            Set flag to 'on’ to show an opt out button on the organization's ads
            (additional CPM fee will apply when on).
        eligible_for_data_sharing:
          type: boolean
        holding_org_id:
          type: integer
          nullable: true
          format: int32
          example: 8
        service_provider_ccpa:
          type: boolean
        mfa_avoidance:
          type: string
          enum:
            - ALLOW_ALL
            - EXCLUDE_MFA
        mm_contact_name:
          type: string
          maxLength: 64
          description: >-
            This is the name of the primary internal MediaMath contact of the
            Organization.
        adx_seat_account_id:
          type: integer
          minimum: 1
          format: int64
          maximum: 9223372036854776000
          example: 1
          description: >-
            Passed to ADX upon creative registration so ADX knows which seat
            we're registering under.
        connected_id_type:
          type: string
          enum:
            - DETERMINISTIC_FIRST
        contact_name:
          type: string
          maxLength: 64
          description: >-
            This is the primary contact at the organization regarding contract
            issues.
        address_1:
          type: string
          maxLength: 256
          description: >-
            The primary address line, typically includes street address and
            number.
        address_2:
          type: string
          maxLength: 256
          nullable: true
          description: >-
            The secondary address line, used for additional information such as
            apartment, suite, or unit number.
        city:
          type: string
          maxLength: 32
          description: The city of the address.
        state:
          type: string
          maxLength: 2
          description: The state of the address, represented as a 2-character code.
        zip:
          type: string
          maxLength: 10
          description: The postal or ZIP code for the address.
        country:
          type: string
          maxLength: 2
          description: >-
            The country of the address, represented as a 2-character ISO country
            code.
        phone:
          type: string
          maxLength: 24
          description: >-
            The phone number associated with the address, including country code
            if applicable.
        currency_code:
          type: string
          maxLength: 3
          description: Currency code for the campaign budget and spend, as well as billing.
        billing_country_code:
          type: string
          description: Country code that is used for billing purposes.
        dmp_enabled:
          type: string
          enum:
            - enabled
            - disabled
        seats:
          type: array
          items:
            $ref: '#/components/schemas/exchange_seat'
          nullable: true
    exchange_seat:
      title: exchange_seat
      type: object
      required:
        - supply_source_id
        - seat_identifier
      properties:
        supply_source_id:
          type: integer
          format: int32
          example: 5
        seat_identifier:
          type: string
        bill_media_to_client:
          type: boolean
          default: true
          nullable: true
        rmx_exchange_cost_unit:
          type: string
          default: PCT_MEDIA
          nullable: true
        rmx_exchange_cost_cpm:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
          nullable: true
        rmx_exchange_cost_pct:
          type: number
          format: float
          minimum: 0
          maximum: 100
          nullable: true
        status:
          type: boolean
          default: true
          nullable: true
    organization_create:
      title: organization_create
      allOf:
        - $ref: '#/components/schemas/organization_base'
        - type: object
          required:
            - name
            - status
            - mm_contact_name
            - adx_seat_account_id
            - connected_id_type
            - contact_name
            - address_1
            - city
            - state
            - zip
            - country
            - phone
            - currency_code
            - billing_country_code
            - dmp_enabled
    organization_update:
      title: organization_update
      allOf:
        - $ref: '#/components/schemas/organization_base'
        - type: object
          properties:
            terminated:
              type: boolean
            version:
              type: integer
              format: int32
              example: 2
    organization_response:
      title: organization_response
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/organization_base'
            - type: object
              properties:
                id:
                  type: integer
                created_on:
                  type: string
                  format: date-time
                  readOnly: true
                entity_type:
                  type: string
                terminated:
                  type: boolean
                updated_on:
                  type: string
                  format: date-time
                  readOnly: true
                version:
                  type: integer
                seats:
                  type: array
                  items:
                    $ref: '#/components/schemas/exchange_seat_extended'
                  nullable: true
              required:
                - name
                - status
                - mm_contact_name
                - adx_seat_account_id
                - connected_id_type
                - contact_name
                - address_1
                - city
                - state
                - zip
                - country
                - phone
                - currency_code
                - billing_country_code
                - dmp_enabled
        meta:
          type: object
          properties:
            status:
              type: string
              example: success
    list_metadata:
      title: pagination metadata
      type: object
      properties:
        status:
          type: string
          example: success
          description: The status of the response, indicating success or failure.
        count:
          type: integer
          example: 10
          description: The number of items returned in the current response.
        total_count:
          type: integer
          example: 100
          description: The total number of items available in the dataset.
        offset:
          type: integer
          example: 0
          description: The offset from the start of the dataset, used for pagination.
        next_page:
          type: string
          description: The URL to fetch the next page of results.
        prev_page:
          type: string
          description: The URL to fetch the previous page of results.
      required:
        - status
        - count
    error_response:
      title: error response
      type: object
      required:
        - errors
        - meta
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              field:
                description: Optional when it is a schema error
                type: string
              message:
                type: string
        meta:
          type: object
          required:
            - status
          properties:
            status:
              type: string
    day_part:
      type: object
      required:
        - start_hour
        - end_hour
        - days
      properties:
        user_time:
          type: boolean
          default: true
        start_hour:
          type: integer
          minimum: 0
          maximum: 23
          example: 1
        end_hour:
          type: integer
          minimum: 0
          maximum: 23
          example: 5
        days:
          type: array
          items:
            type: string
            enum:
              - M
              - T
              - W
              - R
              - F
              - S
              - U
          example:
            - M
            - T
            - W
            - S
            - U
    entity_group_list_item:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        organization_count:
          type: integer
        agency_count:
          type: integer
        advertiser_count:
          type: integer
        ec_count:
          type: integer
        preview:
          type: string
    entity_group:
      type: object
      properties:
        id:
          type: integer
        version:
          type: integer
        name:
          type: string
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
        organizations:
          type: array
          items:
            $ref: '#/components/schemas/entity_group_entity'
        agencies:
          type: array
          items:
            $ref: '#/components/schemas/entity_group_agency'
        advertisers:
          type: array
          items:
            $ref: '#/components/schemas/entity_group_advertiser'
    entity_group_entity:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    entity_group_agency:
      type: object
      allOf:
        - $ref: '#/components/schemas/entity_group_entity'
        - type: object
          properties:
            organization:
              $ref: '#/components/schemas/entity_group_entity'
    entity_group_advertiser:
      type: object
      allOf:
        - $ref: '#/components/schemas/entity_group_entity'
        - type: object
          properties:
            agency:
              $ref: '#/components/schemas/entity_group_entity'
            organization:
              $ref: '#/components/schemas/entity_group_entity'
    enterprise_control:
      type: object
      description: >-
        Type of constraint_value depends of field and constraint type. It's
        array for constraint types one_of, not and between. Default value is
        consistent with constraint value (can be array or one value).
      allOf:
        - type: object
          properties:
            field:
              type: string
            constraint_type:
              type: string
        - type: object
          oneOf:
            - $ref: '#/components/schemas/control_integer'
              description: Possible for constraint types "eq", "ne"
            - $ref: '#/components/schemas/control_integer_array'
              description: Possible for constraint types "one_of", "not", "at_least"
            - $ref: '#/components/schemas/control_decimal'
              description: >-
                Possible for constraint types "eq", "ne", "gt", "gte", "lt",
                "lte"
            - $ref: '#/components/schemas/control_decimal_array'
              description: Possible for constraint type "between"
            - $ref: '#/components/schemas/control_string'
              description: Possible for constraint types "eq", "ne"
            - $ref: '#/components/schemas/control_string_array'
              description: Possible for constraint types "one_of", "not", "at_least"
            - $ref: '#/components/schemas/control_boolean'
              description: Possible for constraint types "eq", "ne"
    forecast:
      title: forecast
      type: object
      nullable: true
      required:
        - data
        - meta
      properties:
        data:
          type: object
          required:
            - errors
            - flags
            - opps
            - pricing
            - uniques
          properties:
            errors:
              type: string
              nullable: true
              example: null
              description: When forecast is successful this value is null
            flags:
              type: string
              nullable: true
              example: null
              description: When forecast is successful this value is null
            opps:
              type: integer
              example: 216000
            pricing:
              type: array
              items:
                properties:
                  impressions:
                    type: integer
                  price:
                    type: string
                    example: '7.665749'
                  spend:
                    type: string
                    example: '352816.151476'
                  uniques:
                    type: integer
                required:
                  - impressions
                  - price
                  - spend
                  - uniques
            uniques:
              type: integer
              example: 156270
        meta:
          type: object
          required:
            - status
          properties:
            status:
              type: string
              enum:
                - success
              example: success
    duration_base:
      type: object
      properties:
        start_date:
          type: string
          format: date-time
          description: start_date can not be in the past
          nullable: true
        end_date:
          type: string
          format: date-time
          description: end_date must be between 1 and 30 days away from start_date
          nullable: true
      required:
        - start_date
        - end_date
    frequency_base:
      required:
        - frequency_type
        - frequency_interval
      properties:
        frequency_type:
          type: string
          enum:
            - no-limit
            - asap
            - even
          description: >-
            If no-limit is selected, then frequency_amount is not required and
            frequency_interval must be not-applicable
        frequency_amount:
          type: integer
        frequency_interval:
          type: string
          enum:
            - not-applicable
            - hour
            - day
            - week
            - month
    forecast_request:
      type: object
      required:
        - forecast_date
        - forecast_result
      properties:
        forecast_date:
          type: string
          format: date-time
          example: '2050-01-01T16:00:00.000Z'
        forecast_result:
          $ref: '#/components/schemas/forecast'
      nullable: true
    targeting_base:
      type: object
      properties:
        audience:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/audience_target'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/audience_target'
        contextual:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_include'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_exclude'
        my_data:
          type: object
          properties:
            include:
              type: object
              properties:
                pixel_bundle_ids:
                  type: array
                  items:
                    type: integer
                    format: int32
                    example: 88
                operator:
                  type: string
                  enum:
                    - AND
                    - OR
            exclude:
              type: object
              properties:
                pixel_bundle_ids:
                  type: array
                  items:
                    type: integer
                    format: int32
                    example: 32
        location:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_include'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_exclude'
        technology:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_include'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/target_dimension_exclude'
        day_parts:
          type: array
          items:
            $ref: '#/components/schemas/day_part'
    audience_target:
      type: object
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
        audience_segment_ids:
          type: array
          items:
            type: integer
            format: int32
            example: 32
    target_dimension_include:
      type: object
      properties:
        code:
          type: string
          description: >-
            valid location codes - DMAX, REGN, USZC | valid technology codes - 
            BSER, CSPD, DVCE, ISPX, OSXX, INVT, DVMD | valid contextual codes - 
            SFTY
        operator:
          type: string
          enum:
            - AND
            - OR
        target_value_ids:
          type: array
          items:
            type: integer
            format: int32
            example: 33
      required:
        - code
        - operator
        - target_value_ids
    target_dimension_exclude:
      type: object
      properties:
        code:
          type: string
          description: >-
            valid location codes - DMAX, REGN, USZC | valid technology codes - 
            BSER, CSPD, DVCE, ISPX, OSXX, INVT, DVMD | valid contextual codes - 
            SFTY
        operator:
          type: string
          enum:
            - AND
            - OR
        target_value_ids:
          type: array
          items:
            type: integer
            format: int32
            example: 3
      required:
        - target_value_ids
    inventory_base:
      type: object
      anyOf:
        - properties:
            supply_source_ids:
              type: array
              items:
                type: integer
            run_on_all_exchanges:
              type: boolean
            run_on_all_pmp:
              type: boolean
            deal_ids:
              type: array
              items:
                type: integer
            deal_group_ids:
              type: array
              items:
                type: integer
            site_list_ids:
              type: array
              items:
                type: integer
    domain_restriction:
      type: object
      required:
        - domain
        - target_type
      properties:
        domain:
          type: string
          example: www.mediamath.com
        target_type:
          type: string
          enum:
            - DOMAIN
            - APP
    targeting_postal_codes:
      type: object
      properties:
        restriction:
          type: string
          example: INCLUDE
        codes:
          writeOnly: true
          type: array
          maxItems: 100000
          items:
            type: string
          example:
            - us-14392
            - us-24981
            - us-25632
            - us-16191
            - us-48574
            - us14392
            - us24981
            - us25632
            - us16191
            - us48574
            - '14392'
            - '24981'
            - '25632'
            - '16191'
            - '48574'
    targeting_ip_addresses:
      type: object
      properties:
        restriction:
          type: string
          example: INCLUDE
          enum:
            - INCLUDE
            - EXCLUDE
            - ''
        codes:
          writeOnly: true
          type: array
          maxItems: 100000
          items:
            type: string
    location_response:
      type: object
      properties:
        strategy_id:
          type: number
        strategy_target_id:
          type: number
        strategy_target_exclude:
          type: boolean
        strategy_target_active:
          type: boolean
        strategy_target_operator:
          type: string
          minLength: 1
        strategy_target_value_id:
          type: number
        target_dimension_code:
          type: string
          minLength: 1
        target_dimension_name:
          type: string
          minLength: 1
        target_value_id:
          type: number
        target_value_name:
          type: string
          minLength: 1
        target_value_value:
          type: number
        target_value_code:
          type: string
          minLength: 1
        strategy_count:
          type: number
      required:
        - strategy_id
        - strategy_target_id
        - strategy_target_exclude
        - strategy_target_active
        - strategy_target_operator
        - strategy_target_value_id
        - target_dimension_code
        - target_dimension_name
        - target_value_id
        - target_value_name
        - target_value_value
        - target_value_code
        - strategy_count
      x-examples:
        example-1:
          strategy_id: 65
          strategy_target_exclude: false
          strategy_target_active: true
          strategy_target_operator: OR
          target_dimension_code: REGN
          target_dimension_name: nameface REGN
          target_value_id: 18
          target_value_name: target values item
          target_value_value: 123123
          target_value_code: Target Value 1
          strategy_count: 2
      title: ''
    campaign_base:
      type: object
      properties:
        archived:
          type: boolean
          default: false
        status:
          type: boolean
          default: true
        name:
          type: string
          minLength: 1
          maxLength: 256
        service_type:
          type: string
          enum:
            - SELF
            - MANAGED
        io_name:
          type: string
          maxLength: 256
        io_reference_num:
          type: string
          maxLength: 32
        is_programmatic_guaranteed:
          type: boolean
        political:
          type: boolean
          default: false
        source_campaign_id:
          type: integer
          nullable: true
          format: int32
          example: 7
        zone_name:
          type: string
          minLength: 1
        viewability:
          $ref: '#/components/schemas/campaign_viewability'
        identity:
          $ref: '#/components/schemas/campaign_identity'
        ad_server:
          $ref: '#/components/schemas/campaign_ad_server'
        pacing:
          $ref: '#/components/schemas/campaign_pacing'
        attribution:
          $ref: '#/components/schemas/campaign_attribution'
        vendor_contracts:
          type: array
          items:
            $ref: '#/components/schemas/vendor_contract_base'
        mfa_avoidance:
          type: string
          enum:
            - INHERIT
            - ALLOW_ALL
            - EXCLUDE_MFA
        targeting_identity_level:
          type: string
          enum:
            - INHERIT
            - INDIVIDUAL
            - HOUSEHOLD
          default: INHERIT
    campaign_identity:
      type: object
      properties:
        device_graph_only:
          type: boolean
          default: false
        bid_min_devices:
          type: integer
          format: int16
          minimum: -32768
          maximum: 32767
          default: 1
        connected_id_type:
          type: string
          nullable: true
          enum:
            - DETERMINISTIC_FIRST
    campaign_ad_server:
      type: object
      properties:
        ad_server_id:
          type: integer
          format: int32
          example: 19
        ad_server_username:
          type: string
          maxLength: 64
        ad_server_password:
          type: string
          maxLength: 64
        use_default_ad_server:
          type: boolean
          default: true
        ad_server_fee:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
    campaign_duration:
      type: object
      description: Duration of campaigns must not exceed 36 months
      properties:
        start_date:
          type: string
          format: date-time
        end_date:
          type: string
          format: date-time
    campaign_goals:
      type: object
      properties:
        goal_type:
          type: string
          enum:
            - spend
            - reach
            - cpc
            - cpe
            - cpa
            - roi
            - ctr
            - vcr
            - viewability_rate
            - vcpm
            - cpcv
        goal_alert:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
        goal_value:
          type: number
          format: float
          minimum: 0.0001
          maximum: 9999999.9999
        goal_category:
          type: string
          enum:
            - audience
            - engagement
            - response
          nullable: true
    campaign_budget:
      type: object
      properties:
        total_budget:
          type: number
          format: float
          nullable: true
          deprecated: true
        total_impression_budget:
          type: integer
          nullable: true
          deprecated: true
          format: int64
          minimum: -9223372036854776000
          maximum: 9223372036854776000
          example: 18789
        currency_code:
          type: string
          minLength: 3
          maxLength: 3
          example: USD
        margin_pct:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.9999
        dynamic_budget_allocation_type:
          type: string
          enum:
            - SBA_AUTO_ALLOCATION
            - SBA_RECOMMENDATIONS_ONLY
            - 'OFF'
          default: 'OFF'
        dynamic_budget_allocation_applied:
          type: string
          format: date-time
        dynamic_budget_allocation_available:
          type: string
          format: date-time
    campaign_frequency:
      type: object
      properties:
        frequency_type:
          type: string
          enum:
            - even
            - asap
            - no-limit
            - t1-optimized
            - frequency_goal
        frequency_interval:
          type: string
          minLength: 1
          enum:
            - hour
            - day
            - week
            - month
            - not-applicable
          default: not-applicable
          nullable: true
        frequency_amount:
          type: integer
          nullable: true
          format: int32
          example: 10
        use_mm_freq:
          type: boolean
          deprecated: true
          default: false
        frequency_optimization:
          type: boolean
          default: false
    campaign_pacing:
      type: object
      properties:
        pacing_alert:
          type: number
          format: float
          default: 0
          minimum: 0
          maximum: 999.99
        impression_cap_automatic:
          type: boolean
          default: false
        impression_cap_amount:
          type: integer
          nullable: true
          format: int32
          example: 11
        impression_cap_type:
          type: string
          enum:
            - even
            - asap
            - no-limit
          default: no-limit
        spend_cap_type:
          type: string
          default: no-limit
          enum:
            - even
            - asap
            - no-limit
        spend_cap_amount:
          type: number
          nullable: true
          format: float
          default: 0
          minimum: 0
          maximum: 9999999.99
        spend_cap_automatic:
          type: boolean
          default: true
        brain_intraday_pacing:
          type: boolean
          default: false
        spend_pace_ahead:
          description: feature still in development
          type: boolean
          default: false
        impression_pace_ahead:
          description: feature still in development
          type: boolean
          default: false
    campaign_inventory:
      type: object
      properties:
        ads_txt_verified:
          type: string
          enum:
            - ANY
            - AUTHORIZED_ONLY
            - AUTHORIZED_DIRECT_ONLY
            - NONE
          nullable: true
        minimize_multi_ads:
          type: boolean
          default: false
        override_suspicious_traffic_filter:
          type: boolean
          default: false
        suspicious_traffic_filter_level:
          type: integer
          default: 25
          minimum: 0
          maximum: 100
        dcs_data_is_campaign_level:
          type: boolean
          default: false
        restrict_targeting_to_deterministic_id:
          deprecated: true
          type: boolean
          default: true
        restrict_targeting_to_same_device_id:
          type: boolean
    campaign_attribution:
      type: object
      properties:
        has_custom_attribution:
          type: boolean
          default: false
        custom_attribution_source:
          type: string
          enum:
            - 3rd Party Attribution
            - T1 MTA via Neustar
          nullable: true
        pc_window_minutes:
          type: integer
          format: int32
          example: 5
        pv_window_minutes:
          type: integer
          format: int32
          example: 6
        pv_pct:
          type: number
          format: float
          default: 100
          minimum: 0
          maximum: 100
        merit_pixel_id:
          type: integer
          nullable: true
          format: int32
          example: 17
        conversion_type:
          type: string
          enum:
            - every
            - one
            - variable
          default: variable
        conversion_variable_minutes:
          type: integer
          default: 1
          format: int32
          example: 1
    campaign_budget_flights:
      type: object
      properties:
        id:
          type: integer
          format: int32
          example: 77
        start_date:
          type: string
          format: date-time
        end_date:
          type: string
          format: date-time
          description: >-
            The latest end date of flight must be no more than 36 months after
            the earliest start date
        total_budget:
          type: number
          format: float
        total_impression_budget:
          nullable: true
          type: integer
          format: int64
          minimum: -9223372036854776000
          maximum: 9223372036854776000
          example: 12345
        is_relevant:
          type: boolean
          readOnly: true
    vendor_contract:
      type: object
      allOf:
        - $ref: '#/components/schemas/vendor_contract_base'
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    vendor_contract_base:
      type: object
      required:
        - vendor_id
      properties:
        vendor_id:
          type: integer
          format: int32
          example: 23
        use_mm_contract:
          type: boolean
        price:
          type: number
          format: float
          nullable: true
        rate_card_type:
          type: string
          nullable: true
          deprecated: true
          enum:
            - CPM
            - FIXED
    campaign_viewability:
      type: object
      nullable: true
      required:
        - vendor_id
        - sample_rate
        - type
      properties:
        vendor_id:
          type: integer
          format: int32
          example: 34
        type:
          type: string
          enum:
            - AUTO_TAG
            - BYOV
        sample_rate:
          type: number
          format: float
          minimum: 0
          maximum: 1
    campaign_create:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_base'
        - type: object
          required:
            - advertiser_id
            - name
            - service_type
            - budget
            - goals
          properties:
            advertiser_id:
              type: integer
              minimum: 1
              format: int32
              example: 8
            goals:
              $ref: '#/components/schemas/campaign_goals_create'
            budget:
              allOf:
                - $ref: '#/components/schemas/campaign_budget'
                - required:
                    - currency_code
                    - flights
                  properties:
                    flights:
                      type: array
                      minItems: 1
                      items:
                        $ref: '#/components/schemas/campaign_budget_flights_create'
            frequency:
              $ref: '#/components/schemas/campaign_frequency'
            inventory:
              $ref: '#/components/schemas/campaign_inventory'
            site_lists:
              type: array
              items:
                type: object
                required:
                  - id
                  - assigned
                properties:
                  id:
                    type: integer
                    format: int32
                    example: 55
                  assigned:
                    type: boolean
            custom_brain_selections:
              type: array
              items:
                type: object
                properties:
                  selection_id:
                    type: integer
                    format: int32
                    example: 23
                  selection_type:
                    enum:
                      - Audience Target
                      - Data Pixel
                      - Event Pixel
                      - Segment
                      - Dynamic
    campaign_full:
      allOf:
        - $ref: '#/components/schemas/campaign_base'
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            advertiser_id:
              type: integer
              readOnly: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
            locked_on:
              type: string
              format: date-time
              readOnly: true
              nullable: true
            v3_usage:
              type: boolean
              readOnly: true
            duration:
              allOf:
                - $ref: '#/components/schemas/campaign_duration'
                - type: object
                  properties:
                    initial_start_date:
                      type: string
                      format: date-time
            goals:
              $ref: '#/components/schemas/campaign_goals'
            budget:
              allOf:
                - $ref: '#/components/schemas/campaign_budget'
                - type: object
                  properties:
                    flights:
                      type: array
                      items:
                        $ref: '#/components/schemas/campaign_budget_flights'
            frequency:
              $ref: '#/components/schemas/campaign_frequency'
            inventory:
              allOf:
                - $ref: '#/components/schemas/campaign_inventory'
                - type: object
                  properties:
                    effective_ads_txt_verified:
                      type: string
                      minLength: 1
                      enum:
                        - ANY
                        - AUTHORIZED_ONLY
                        - AUTHORIZED_DIRECT_ONLY
                        - NONE
            site_lists:
              type: array
              items:
                $ref: '#/components/schemas/campaign_site_list'
            custom_brain_selections:
              type: array
              items:
                $ref: '#/components/schemas/campaign_custom_brain_selection'
            strategies:
              type: object
              properties:
                count:
                  type: integer
                strategies_list:
                  type: array
                  items:
                    type: integer
                    format: int32
                distinct_strategy_goal_types:
                  type: array
                  items:
                    type: string
                    enum:
                      - spend
                      - reach
                      - cpc
                      - cpe
                      - cpa
                      - roi
                      - ctr
                      - vcr
                      - viewability_rate
                      - vcpm
                      - cpcv
            strategy_groups:
              type: object
              properties:
                count:
                  type: integer
                strategy_groups_list:
                  type: array
                  items:
                    type: string
    campaign_bulk:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_base'
        - type: object
          required:
            - id
          properties:
            id:
              type: integer
              minimum: 1
              format: int32
              example: 67
            version:
              type: integer
              format: int32
              example: 1
            goals:
              $ref: '#/components/schemas/campaign_goals'
            duration:
              $ref: '#/components/schemas/campaign_duration'
            budget:
              allOf:
                - $ref: '#/components/schemas/campaign_budget'
                - type: object
                  properties:
                    flights:
                      type: array
                      items:
                        $ref: '#/components/schemas/campaign_budget_flights'
            frequency:
              $ref: '#/components/schemas/campaign_frequency'
            inventory:
              $ref: '#/components/schemas/campaign_inventory'
    marketplace_create:
      type: object
      allOf:
        - $ref: '#/components/schemas/marketplace_full'
        - type: object
          required:
            - name
            - strategy_id
    marketplace_update:
      type: object
      allOf:
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 3
        - $ref: '#/components/schemas/marketplace_full'
    marketplace_full:
      type: object
      properties:
        created_on:
          type: string
          format: date-time
          readOnly: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          minLength: 1
        supply_type:
          type: string
          minLength: 1
        status:
          type: boolean
        rtb_enabled:
          type: boolean
        strategy_id:
          type: integer
          format: int32
          example: 5
        code:
          type: string
          minLength: 1
        bidder_exchange_identifier:
          type: integer
          format: int32
          example: 8
        rtb_type:
          type: string
          minLength: 1
        has_display:
          type: boolean
        has_mobile_display:
          type: boolean
        has_video:
          type: boolean
        has_mobile_video:
          type: boolean
        requires_creative_audit:
          type: boolean
        has_desktop_video:
          type: boolean
        has_connected_tv:
          type: boolean
        mma_free:
          type: boolean
        private:
          type: boolean
        mkt_sell_price:
          type: number
          format: float
          minimum: -1
          nullable: true
        mkt_sell_price_currency_code:
          type: string
          minLength: 3
          maxLength: 3
          example: USD
          nullable: true
        permission_organizations:
          type: array
          items:
            type: integer
            format: int32
            example: 7
        permission_agencies:
          type: array
          items:
            type: integer
            format: int32
            example: 9
    marketplace_full_response:
      allOf:
        - type: object
          properties:
            id:
              type: integer
              format: int32
              example: 33
            version:
              type: integer
              format: int32
              example: 3
        - $ref: '#/components/schemas/marketplace_full'
    strategy_template_response:
      title: strategy template response
      additionalProperties: false
      type: object
      properties:
        id:
          type: integer
          format: int32
        global:
          type: boolean
        organization_id:
          type: integer
          format: int32
        agency_id:
          type: integer
          format: int32
        advertiser_id:
          type: integer
          format: int32
        name:
          type: string
          minLength: 1
          maxLength: 256
          example: strategy template test
        descriptiom:
          type: string
          minLength: 1
          example: this is a strategy template
        creator_id:
          type: integer
          format: int32
        created_on:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    single_metadata:
      title: single_metadata
      type: object
      properties:
        status:
          type: string
          example: success
      required:
        - status
    strategy_full:
      allOf:
        - $ref: '#/components/schemas/strategy_details'
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 2
            zone_name:
              type: string
              example: America/New_York
              readOnly: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
            duration:
              $ref: '#/components/schemas/strategy_duration'
            budget:
              $ref: '#/components/schemas/strategy_budget'
            pacing:
              $ref: '#/components/schemas/strategy_pacing'
            goals:
              $ref: '#/components/schemas/strategy_goals'
            frequency:
              $ref: '#/components/schemas/strategy_frequency'
            inventory:
              $ref: '#/components/schemas/strategy_inventory'
            concepts:
              $ref: '#/components/schemas/strategy_concepts_extended'
            groups:
              type: array
              items:
                type: string
              nullable: true
    strategy_full_request:
      allOf:
        - $ref: '#/components/schemas/strategy_full'
        - type: object
          properties:
            targeting:
              allOf:
                - $ref: '#/components/schemas/strategy_targeting'
                - properties:
                    language_codes:
                      type: array
                      items:
                        type: string
    strategy_full_response:
      allOf:
        - $ref: '#/components/schemas/strategy_full'
        - type: object
          properties:
            id:
              type: integer
            campaign_id:
              type: integer
            targeting:
              allOf:
                - $ref: '#/components/schemas/strategy_targeting'
                - properties:
                    language_codes:
                      type: array
                      items:
                        properties:
                          code:
                            type: string
                          name:
                            type: string
    strategy_full_extended:
      allOf:
        - $ref: '#/components/schemas/strategy_details'
        - $ref: '#/components/schemas/strategy_campaign_info'
        - type: object
          properties:
            id:
              type: integer
              readOnly: true
            version:
              type: integer
            advertiser_id:
              type: integer
              readOnly: true
            zone_name:
              type: string
              example: America/New_York
              readOnly: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
            duration:
              $ref: '#/components/schemas/strategy_duration'
            budget:
              $ref: '#/components/schemas/strategy_budget'
            pacing:
              $ref: '#/components/schemas/strategy_pacing'
            goals:
              $ref: '#/components/schemas/strategy_goals'
            frequency:
              $ref: '#/components/schemas/strategy_frequency'
            inventory:
              $ref: '#/components/schemas/strategy_inventory_extended'
            targeting:
              $ref: '#/components/schemas/strategy_targeting_extended'
            concepts:
              $ref: '#/components/schemas/strategy_concepts_extended'
    strategy_details:
      type: object
      properties:
        name:
          type: string
          maxLength: 128
        description:
          type: string
          maxLength: 1024
        status:
          type: boolean
        archived:
          type: boolean
          default: false
        is_programmatic_guaranteed:
          type: boolean
          default: false
          readOnly: true
        media_type:
          type: string
          enum:
            - DISPLAY
            - VIDEO
        use_optimization:
          type: boolean
        ads_txt_verified:
          type: string
          enum:
            - ANY
            - AUTHORIZED_ONLY
            - AUTHORIZED_DIRECT_ONLY
            - NONE
          nullable: true
        type:
          type: string
          enum:
            - REM
            - GBO
            - AUD
        feature_compatibility:
          type: string
          maxLength: 1024
          nullable: true
        device_graph_only:
          type: boolean
        mfa_avoidance:
          type: string
          enum:
            - INHERIT
            - ALLOW_ALL
            - EXCLUDE_MFA
    strategy_pacing:
      type: object
      additionalProperties: false
      properties:
        impression_pacing_type:
          type: string
          enum:
            - even
            - asap
            - no-limit
        impression_pacing_amount:
          type: integer
          minimum: 1
          nullable: true
          format: int32
          example: 23
        impression_pacing_interval:
          type: string
          enum:
            - hour
            - day
        pacing_type:
          type: string
          enum:
            - even
            - asap
        pacing_amount:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
          nullable: true
        pacing_interval:
          type: string
          enum:
            - hour
            - day
        pacing_optimization_type:
          type: string
          enum:
            - monetary
            - impression
        pacing_optimization_amount:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
          nullable: true
        use_dba_strategy_pacing:
          type: string
          enum:
            - always
            - never
            - custom
        use_dba_strategy_pacing_after_date:
          type: string
          format: date
          nullable: true
    strategy_goals:
      type: object
      additionalProperties: false
      properties:
        goal_type:
          type: string
          enum:
            - spend
            - reach
            - cpc
            - cpe
            - cpa
            - roi
            - ctr
            - vcr
            - viewability_rate
            - vcpm
            - cpcv
        goal_value:
          type: number
          format: float
          minimum: 0
          maximum: 999999999.9999
        min_bid:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
        max_bid:
          type: number
          format: float
          minimum: 0.01
          maximum: 9999999.99
        roi_target:
          type: number
          format: double
          minimum: 0
          maximum: 999999999.99
          nullable: true
        bid_min_devices:
          type: integer
          format: int16
          nullable: true
          example: 1
          minimum: -32768
          maximum: 32767
        bid_aggressiveness:
          type: integer
          minimum: 0
          maximum: 100
        bid_price_is_media_only:
          type: boolean
        max_bid_wm:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
          nullable: true
        use_bid_shading:
          type: boolean
        flat_rate_cpm:
          type: number
          format: float
          minimum: 0.01
          maximum: 9999999.99
          nullable: true
    strategy_frequency:
      type: object
      additionalProperties: false
      properties:
        frequency_type:
          type: string
          enum:
            - even
            - asap
            - no-limit
            - t1-optimized
            - frequency_goal
        frequency_interval:
          type: string
          enum:
            - hour
            - day
            - week
            - month
            - not-applicable
          nullable: true
        frequency_amount:
          type: integer
          nullable: true
          format: int32
          example: 345
        frequency_optimization:
          type: boolean
    strategy_duration:
      type: object
      additionalProperties: false
      description: Duration of strategy must not exceed 36 months
      properties:
        use_campaign_start:
          type: boolean
        use_campaign_end:
          type: boolean
        start_date:
          type: string
          format: date-time
          nullable: true
        end_date:
          type: string
          format: date-time
          nullable: true
    strategy_budget:
      type: object
      properties:
        budget:
          type: number
          format: float
          description: >-
            Must be a valid float between 1 and 10000000 USD or its equivalent
            in other currency.
          nullable: true
        currency_code:
          type: string
        margin_pct:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.9999
          nullable: true
    strategy_concepts:
      type: object
      properties:
        weighting:
          type: string
          enum:
            - NONE
            - BUDGET
            - IMPRESSION
        creative_groups:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              concept_id:
                type: integer
              percent:
                type: number
                format: float
                description: Sum of all percents provided inside group must be equal to 100
                minimum: 0
                maximum: 100
                exclusiveMinimum: false
            required:
              - concept_id
              - percent
    strategy_concepts_extended:
      type: object
      properties:
        weighting:
          type: string
          enum:
            - NONE
            - BUDGET
            - IMPRESSION
        creative_groups:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              concept_id:
                type: integer
                format: int32
                example: 24
              percent:
                type: number
                format: float
                description: Sum of all percents provided inside group must be equal to 100
                minimum: 0
                maximum: 100
                exclusiveMinimum: false
              name:
                type: string
                maxLength: 128
                description: available only when extended
                readOnly: true
              status:
                type: boolean
                description: available only when extended
                readOnly: true
              created_on:
                type: string
                format: date-time
                description: available only when extended
                nullable: true
                readOnly: true
              start_date:
                type: string
                format: date-time
                description: available only when extended
                nullable: true
                readOnly: true
              assigned_creatives_count:
                type: integer
                minimum: 0
                description: available only when extended
                readOnly: true
            required:
              - concept_id
              - percent
    strategy_inventory:
      type: object
      properties:
        supply_type:
          type: string
          enum:
            - RTB
            - RMX_API
            - T1_RMX
            - MKT
            - BATCH
        run_on_all_pmp:
          type: boolean
        run_on_all_exchanges:
          type: boolean
          description: >-
            default value is false if campaign is programmatic guarantee and is
            true otherwise
        site_restriction_transparent_urls:
          type: boolean
        domain_restrictions:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
        site_lists:
          type: array
          items:
            $ref: '#/components/schemas/site_list'
        campaign_site_lists:
          type: array
          items:
            $ref: '#/components/schemas/site_list'
          readOnly: true
        deals:
          type: array
          items:
            $ref: '#/components/schemas/deal'
        deal_groups:
          type: array
          items:
            $ref: '#/components/schemas/deal_group'
        supply_sources:
          type: array
          items:
            $ref: '#/components/schemas/supply_source'
    strategy_inventory_extended:
      type: object
      properties:
        run_on_all_pmp:
          type: boolean
        run_on_all_exchanges:
          type: boolean
        site_restriction_transparent_urls:
          type: boolean
        domain_restrictions:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
        site_lists:
          type: array
          items:
            $ref: '#/components/schemas/site_list_extended'
        campaign_site_lists:
          type: array
          items:
            $ref: '#/components/schemas/site_list_extended'
        deals:
          type: array
          items:
            $ref: '#/components/schemas/deal'
        deal_groups:
          type: array
          items:
            $ref: '#/components/schemas/deal_group'
        supply_sources:
          type: array
          items:
            $ref: '#/components/schemas/supply_source_extended'
      required:
        - run_on_all_pmp
        - run_on_all_exchanges
    supply_source:
      title: ''
      type: object
      properties:
        supply_source_id:
          type: integer
          format: int32
          example: 54
      required:
        - supply_source_id
    supply_source_extended:
      title: ''
      type: object
      properties:
        supply_source_id:
          type: integer
        name:
          type: string
          description: available only when extended
          readOnly: true
        rtb_type:
          type: string
          enum:
            - STANDARD
            - MARKETPLACE
          description: available only when extended
          readOnly: true
      required:
        - supply_source_id
    site_list:
      title: site_list
      type: object
      properties:
        site_list_id:
          type: integer
          format: int32
          example: 32
        assigned:
          type: boolean
      required:
        - site_list_id
        - assigned
    site_list_extended:
      title: site_list_extended
      type: object
      properties:
        site_list_id:
          type: integer
        name:
          type: string
        status:
          type: boolean
          description: available only when extended
          readOnly: true
        restriction:
          type: string
          enum:
            - INCLUDE
            - EXCLUDE
          description: available only when extended
          readOnly: true
        sites_count:
          type: integer
          description: available only when extended
          readOnly: true
        sites_count_domain:
          type: integer
          description: available only when extended
          readOnly: true
        sites_count_app:
          type: integer
          description: available only when extended
          readOnly: true
        sites_count_primary_seller_id:
          type: integer
          description: available only when extended
          readOnly: true
        content_updated_on:
          type: string
          format: date-time
          description: available only when extended
          readOnly: true
        assigned:
          type: boolean
          readOnly: true
      required:
        - site_list_id
        - assigned
    deal:
      title: ''
      type: object
      properties:
        deal_id:
          type: integer
          format: int32
          example: 8
      required:
        - deal_id
    deal_group:
      title: ''
      type: object
      properties:
        deal_group_id:
          type: integer
          format: int32
          example: 9
      required:
        - deal_group_id
    strategy_targeting:
      allOf:
        - properties:
            fold_position:
              type: array
              items:
                type: string
                enum:
                  - ABOVE
                  - BELOW
                  - UNCATEGORIZED
              nullable: true
            audience:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                        default: OR
                      segments:
                        type: array
                        items:
                          $ref: '#/components/schemas/strategy_audience_segment'
                exclude:
                  type: object
                  properties:
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                      default: OR
                    segments:
                      type: array
                      items:
                        $ref: '#/components/schemas/strategy_audience_segment'
            contextual:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      code:
                        type: string
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                        default: OR
                      segments:
                        type: array
                        items:
                          $ref: '#/components/schemas/strategy_contextual_segment'
                exclude:
                  type: object
                  properties:
                    code:
                      type: string
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                      default: OR
                    segments:
                      type: array
                      items:
                        $ref: '#/components/schemas/strategy_contextual_segment'
                  required:
                    - segments
            audience_groups:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_segment_group'
                exclude:
                  type: object
                  items:
                    $ref: '#/components/schemas/strategy_segment_group_exclude'
            contextual_groups:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_segment_group'
                exclude:
                  type: object
                  items:
                    $ref: '#/components/schemas/strategy_segment_group_exclude'
            postal_codes:
              $ref: '#/components/schemas/targeting_postal_codes'
            geofence:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_geofence'
                exclude:
                  $ref: '#/components/schemas/strategy_geofence'
            my_data:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_my_data'
                exclude:
                  $ref: '#/components/schemas/strategy_my_data'
            location:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location'
            technology:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology'
            ip_addresses:
              $ref: '#/components/schemas/targeting_ip_addresses'
            day_parts:
              type: array
              items:
                $ref: '#/components/schemas/day_part'
            recency:
              type: array
              items:
                type: object
                properties:
                  pixel_id:
                    type: integer
                    format: int32
                    example: 55
                  from_hour:
                    type: integer
                    format: int32
                    example: 5
                  to_hour:
                    type: integer
                    format: int32
                    example: 7
                required:
                  - pixel_id
                  - from_hour
                  - to_hour
      type: object
    strategy_targeting_extended:
      allOf:
        - properties:
            fold_position:
              type: array
              items:
                type: string
                enum:
                  - ABOVE
                  - BELOW
                  - UNCATEGORIZED
              nullable: true
            audience:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                        default: OR
                      segments:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/strategy_audience_segment_extended
                exclude:
                  type: object
                  properties:
                    segments:
                      type: array
                      items:
                        $ref: >-
                          #/components/schemas/strategy_audience_segment_extended
                retired:
                  type: array
                  items:
                    type: integer
                  readOnly: true
            contextual:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                        default: OR
                      segments:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/strategy_contextual_segment_extended
                exclude:
                  type: object
                  properties:
                    segments:
                      type: array
                      items:
                        $ref: >-
                          #/components/schemas/strategy_contextual_segment_extended
                  required:
                    - segments
                retired:
                  type: array
                  items:
                    type: integer
                    readOnly: true
            audience_groups:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_segment_group_extended'
                exclude:
                  type: object
                  items:
                    $ref: >-
                      #/components/schemas/strategy_segment_group_exclude_extended
            contextual_groups:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_segment_group_extended'
                exclude:
                  type: object
                  items:
                    $ref: >-
                      #/components/schemas/strategy_segment_group_exclude_extended
            postal_codes:
              $ref: '#/components/schemas/targeting_postal_codes'
            geofence:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_geofence_extended'
                exclude:
                  $ref: '#/components/schemas/strategy_geofence_extended'
            my_data:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_my_data_extended'
                exclude:
                  $ref: '#/components/schemas/strategy_my_data_extended'
            location:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location_extended'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location_extended'
            technology:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology_extended'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology_extended'
            ip_addresses:
              $ref: '#/components/schemas/targeting_ip_addresses'
            day_parts:
              type: array
              items:
                $ref: '#/components/schemas/day_part'
            recency:
              type: array
              items:
                type: object
                properties:
                  pixel_id:
                    type: integer
                  from_hour:
                    type: integer
                  to_hour:
                    type: integer
                required:
                  - to_hour
            language_codes:
              type: array
              items:
                properties:
                  code:
                    type: string
                  name:
                    type: string
      type: object
    strategy_technology:
      type: object
      title: ''
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        code:
          type: string
          enum:
            - BSER
            - CSPD
            - DVCE
            - ISPX
            - OSXX
            - INVT
            - VPSZ
            - VLIN
            - VCON
            - VAUD
            - VSKP
            - VPLC
            - DVMD
            - BRLG
            - IPTA
            - HYPL
        target_value_id:
          type: integer
          format: int32
          example: 77
      required:
        - code
        - target_value_id
    strategy_technology_extended:
      type: object
      title: ''
      properties:
        code:
          type: string
          enum:
            - BSER
            - CSPD
            - DVCE
            - ISPX
            - OSXX
            - INVT
            - VPSZ
            - VLIN
            - VCON
            - VAUD
            - VSKP
            - VPLC
            - DVMD
            - BRLG
            - IPTA
            - HYPL
        target_value_id:
          type: integer
        name:
          type: string
          description: available only when extended
          readOnly: true
        target_value:
          type: integer
          description: available only when extended
          readOnly: true
      required:
        - code
        - target_value_id
    strategy_my_data:
      type: object
      title: ''
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        pixels:
          type: array
          items:
            type: object
            properties:
              pixel_id:
                type: integer
                format: int32
                example: 65
            required:
              - pixel_id
      required:
        - pixels
    strategy_my_data_extended:
      type: object
      title: ''
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        pixels:
          type: array
          items:
            type: object
            properties:
              pixel_id:
                type: integer
              pixel_name:
                type: string
                description: available only when extended
                readOnly: true
              pixel_type:
                type: string
                enum:
                  - event
                  - data
                  - dynamic
                description: available only when extended
                readOnly: true
              owner_type:
                type: string
                enum:
                  - advertiser
                  - agency
                description: available only when extended
                readOnly: true
              owner_id:
                type: integer
                description: available only when extended
                readOnly: true
              owner_name:
                type: string
                description: available only when extended
                readOnly: true
            required:
              - pixel_id
      required:
        - pixels
    strategy_geofence:
      type: object
      title: ''
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        segments:
          type: array
          items:
            type: object
            minProperties: 1
            properties:
              geofence_segment_id:
                type: integer
                format: int32
                example: 45
              geofence_segment_factual_id:
                type: string
    strategy_geofence_extended:
      type: object
      title: ''
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        segments:
          type: array
          items:
            type: object
            required:
              - geofence_segment_id
              - geofence_segment_factual_id
            properties:
              geofence_segment_id:
                type: integer
              geofence_segment_factual_id:
                type: string
              name:
                type: string
                maxLength: 128
                description: available only when extended
              status:
                type: boolean
                description: available only when extended
              updated_on:
                type: string
                format: date-time
                readOnly: true
                description: available only when extended
    strategy_location:
      title: ''
      type: object
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
          default: OR
        target_value_id:
          type: integer
          format: int32
          example: 87
        code:
          type: string
          enum:
            - DMAX
            - REGN
            - CITY
            - COUNTRY
      required:
        - target_value_id
        - code
    strategy_location_extended:
      title: ''
      type: object
      properties:
        target_value_id:
          type: integer
        name:
          type: string
          description: available only when extended
        full_path:
          type: string
          description: available only when extended
          example: United States >> New York >> New York
        code:
          type: string
          enum:
            - DMAX
            - REGN
            - CITY
            - COUNTRY
        target_value:
          type: integer
          description: available only when extended
      required:
        - target_value_id
    strategy_audience_segment:
      type: object
      title: strategy_audience_segment
      properties:
        audience_segment_id:
          type: integer
          format: int32
          example: 24
        user_cpm:
          type: number
          format: float
          nullable: true
          description: >-
            user_cpm is stored in the currency of the campaign and will not
            fluctuate with daily exchange rates.
      required:
        - audience_segment_id
    strategy_audience_segment_extended:
      type: object
      title: ''
      properties:
        audience_segment_id:
          type: integer
        audience_segment_name:
          type: string
          description: available only when extended
          readOnly: true
        cpm:
          type: number
          readOnly: true
          description: available only when extended
        user_cpm:
          type: number
          readOnly: true
          description: available only when extended
        currency_code:
          type: string
          readOnly: true
          description: available only when extended
        full_path:
          type: string
          description: available only when extended
          readOnly: true
        size:
          type: integer
          description: available only when extended
          readOnly: true
        vendor_id:
          type: integer
          description: available only when extended
          readOnly: true
        vendor_name:
          type: string
          description: available only when extended
          readOnly: true
        code:
          type: string
          description: available only when extended
          readOnly: true
      required:
        - audience_segment_id
    strategy_contextual_segment:
      title: strategy_contextual_segment
      type: object
      properties:
        targeting_segment_id:
          type: integer
          format: int32
          example: 33
        user_cpm:
          type: number
          format: float
          nullable: true
          description: >-
            user_cpm is stored in the currency of the campaign and will not
            fluctuate with daily exchange rates.
      required:
        - targeting_segment_id
    strategy_contextual_segment_extended:
      title: ''
      type: object
      properties:
        targeting_segment_id:
          type: integer
        targeting_segment_name:
          type: string
          description: available only when extended
          readOnly: true
        full_path:
          type: string
          description: available only when extended
          readOnly: true
        vendor_id:
          type: integer
          description: available only when extended
          readOnly: true
        vendor_name:
          type: string
          description: available only when extended
          readOnly: true
        objective_type_id:
          type: integer
          description: available only when extended
          readOnly: true
        objective_type_name:
          type: string
          description: available only when extended
          readOnly: true
        retail_cpm:
          type: number
          description: available only when extended
          readOnly: true
        user_cpm:
          type: number
          readOnly: true
          description: available only when extended
        currency_code:
          type: string
          readOnly: true
          description: available only when extended
        external_code:
          type: string
          readOnly: true
          description: available only when extended
      required:
        - targeting_segment_id
    atomic_creative_create:
      title: atomic_creative_create
      type: object
      properties:
        width:
          type: integer
          format: int32
          example: 80
        name:
          type: string
          minLength: 1
          maxLength: 256
        height:
          type: integer
          format: int32
          example: 90
        creative_import_file_id:
          type: integer
          format: int32
          example: 5
        file_type:
          type: string
          enum:
            - swf
            - gif
            - html5
            - jpg
            - jpeg
            - tiff
            - tif
            - png
            - unknown
            - vast
          default: unknown
        is_multi_creative:
          type: boolean
          default: false
        has_sound:
          type: boolean
          default: false
        rich_media:
          type: boolean
          default: false
        rich_media_provider:
          type: string
        built:
          type: boolean
          default: false
        build_date:
          type: string
        built_by_user_id:
          type: integer
          format: int32
          example: 99
          readOnly: true
        build_errors:
          type: string
        external_identifier:
          type: string
          minLength: 1
          maxLength: 64
        expand:
          type: string
        expansion_trigger:
          type: string
          enum:
            - AUTOMATIC
            - MOUSEOVER
            - CLICK
          default: MOUSEOVER
        tpas_ad_tag:
          type: string
        edited_tag:
          type: string
        click_through_url:
          type: string
          maxLength: 2048
          format: uri
          nullable: true
        concept_id:
          type: integer
          nullable: true
          format: int32
          example: 7
        status:
          type: boolean
          default: true
        is_mraid:
          type: boolean
          default: false
        is_https:
          type: boolean
          default: false
        t1as:
          type: boolean
          default: false
        start_date:
          type: string
          nullable: true
        end_date:
          type: string
          nullable: true
        vast_version:
          type: number
          format: float
          minimum: 0
          maximum: 9.9
          nullable: true
        is_audio:
          type: boolean
          nullable: true
        expansion_direction:
          type: string
          maxLength: 19
          default: NONRESTRICTED
        media_type:
          type: string
          enum:
            - display
            - video
            - mobile
          default: display
        ad_server_type:
          type: string
        ad_format:
          type: string
          enum:
            - DISPLAY
            - MOBILE
            - EXPANDABLE
            - FBX
            - COMPONENT
          default: DISPLAY
        approval_status:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
          default: PENDING
        tpas_ad_tag_name:
          type: string
          minLength: 1
          maxLength: 255
        click_url:
          format: uri
          type: string
          nullable: true
        sizmek_tag_status:
          type: string
          default: NOT_USED
        sizmek_creative_status:
          type: string
          default: NOT_USED
        advertiser_id:
          type: integer
          minimum: 1
          format: int32
        tag:
          type: string
        tag_type:
          type: string
          enum:
            - IFRAME_SCRIPT_NOSCRIPT
            - IFRAME_SCRIPT
            - IFRAME_NOSCRIPT
            - IFRAME_IMG
            - SCRIPT_NOSCRIPT
            - SCRIPT
            - NOSCRIPT
            - IFRAME
            - IMG
            - VIDEO
      required:
        - width
        - height
        - external_identifier
        - advertiser_id
    atomic_creative_update:
      title: atomic_creative_update
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 256
        version:
          type: integer
          format: int32
          example: 3
        external_identifier:
          type: string
          minLength: 1
          maxLength: 64
        advertiser_id:
          type: integer
          minimum: 1
          format: int32
          example: 8
        width:
          type: integer
          format: int32
          example: 80
        height:
          type: integer
          format: int32
          example: 90
        concept_id:
          type: integer
          nullable: true
          format: int32
          example: 33
        status:
          type: boolean
        is_mraid:
          type: boolean
        is_https:
          type: boolean
        t1as:
          type: boolean
        start_date:
          type: string
          nullable: true
        end_date:
          type: string
          nullable: true
        vast_version:
          type: number
          format: float
          minimum: 0
          maximum: 9.9
          nullable: true
        is_audio:
          type: boolean
          nullable: true
        expansion_direction:
          type: string
          maxLength: 19
          default: NONRESTRICTED
        expansion_trigger:
          type: string
          enum:
            - AUTOMATIC
            - MOUSEOVER
            - CLICK
          default: MOUSEOVER
        media_type:
          type: string
          enum:
            - display
            - video
            - mobile
        ad_server_type:
          type: string
        ad_format:
          type: string
          enum:
            - DISPLAY
            - MOBILE
            - EXPANDABLE
            - FBX
            - COMPONENT
          default: DISPLAY
        approval_status:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
        tpas_ad_tag:
          type: string
        tpas_ad_tag_name:
          type: string
          minLength: 1
          maxLength: 255
        click_through_url:
          type: string
          maxLength: 2048
          format: uri
          nullable: true
        click_url:
          format: uri
          type: string
          nullable: true
        edited_tag:
          type: string
        tag:
          type: string
        built_by_user_id:
          type: integer
          readOnly: true
        tag_type:
          type: string
          enum:
            - IFRAME_SCRIPT_NOSCRIPT
            - IFRAME_SCRIPT
            - IFRAME_NOSCRIPT
            - IFRAME_IMG
            - SCRIPT_NOSCRIPT
            - SCRIPT
            - NOSCRIPT
            - IFRAME
            - IMG
            - VIDEO
    atomic_creative_creative:
      title: atomic_creative_creative
      type: object
      properties:
        tag:
          type: string
        tag_type:
          type: string
          enum:
            - IFRAME_SCRIPT_NOSCRIPT
            - IFRAME_SCRIPT
            - IFRAME_NOSCRIPT
            - IFRAME_IMG
            - SCRIPT_NOSCRIPT
            - SCRIPT
            - NOSCRIPT
            - IFRAME
            - IMG
            - VIDEO
    atomic_creative_vendor:
      title: atomic_creative_vendor
      type: object
      properties:
        vendor_ids:
          type: array
          example:
            - 3
            - 56
          items:
            type: integer
            format: int32
    atomic_creative_response:
      title: atomic_creative_response
      type: object
      properties:
        id:
          type: integer
        version:
          type: integer
        entity_type:
          type: string
        advertiser_id:
          type: integer
        concept_id:
          type: integer
        concept_name:
          type: string
        name:
          type: string
        width:
          type: integer
        height:
          type: integer
        creative_import_file_id:
          type: integer
        file_type:
          type: string
        is_https:
          type: boolean
        is_multi_creative:
          type: boolean
        has_sound:
          type: boolean
        rich_media:
          type: boolean
        rich_media_provider:
          type: string
        status:
          type: boolean
        built:
          type: boolean
        build_date:
          type: string
        built_by_user_id:
          type: integer
          nullable: true
        build_errors:
          type: string
        created_on:
          type: string
          format: date-time
          readOnly: true
        last_modified:
          type: string
        external_identifier:
          type: string
        tpas_ad_tag_name:
          type: string
        updated_on:
          type: string
          format: date-time
          readOnly: true
        expand:
          type: string
        click_url:
          type: string
        ad_format:
          type: string
        expansion_direction:
          type: string
          maxLength: 19
          default: NONRESTRICTED
        expansion_trigger:
          type: string
          enum:
            - AUTOMATIC
            - MOUSEOVER
            - CLICK
          default: MOUSEOVER
        ad_server_type:
          type: string
        t1as:
          type: boolean
        tpas_ad_tag:
          type: string
        edited_tag:
          type: string
        click_through_url:
          type: string
        rejected_reason:
          type: string
        approval_status:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        media_type:
          type: string
        is_mraid:
          type: boolean
        vast_version:
          type: number
          format: float
          minimum: 0
          maximum: 9.9
          nullable: true
        sizmek_tag_status:
          type: string
        sizmek_creative_status:
          type: string
        last_payload_modified:
          type: string
        is_audio:
          type: boolean
        tag:
          type: string
        tag_type:
          type: string
        targeted_strategies:
          type: object
          properties:
            count:
              type: integer
            strategies_list:
              type: array
              items:
                type: integer
                format: int32
        atomic_creative_ssl_validators:
          type: object
          properties:
            is_https:
              type: string
            notify_state:
              type: string
            ignored:
              type: string
            ksize:
              type: integer
        vendors:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              adx_approved:
                type: boolean
              adx_declaration_required:
                type: boolean
              mm_contract_available:
                type: boolean
              is_eligible:
                type: boolean
              adx_ssl_approved:
                type: boolean
              adx_video_ssl_approved:
                type: boolean
              adx_video_approved:
                type: boolean
              auto_tag_display:
                type: boolean
              set_by:
                type: string
        creative_assets:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              version:
                type: integer
              creative_id:
                type: integer
              primary_asset_id:
                type: integer
              created_on:
                type: string
                format: date-time
                readOnly: true
              updated_on:
                type: string
                format: date-time
                readOnly: true
              file_name:
                type: string
              file_role:
                type: string
              file_type:
                type: string
              file_storage_path:
                type: string
              file_size:
                type: integer
              media_version:
                type: number
                format: float
              width:
                type: integer
              height:
                type: integer
              note:
                type: string
      required:
        - id
        - version
        - entity_type
        - advertiser_id
        - name
        - width
        - height
        - file_type
        - is_https
        - is_multi_creative
        - has_sound
        - rich_media
        - built
        - created_on
        - last_modified
        - external_identifier
        - tpas_ad_tag_name
        - updated_on
        - ad_format
        - expansion_trigger
        - expansion_direction
        - t1as
        - approval_status
        - media_type
        - is_mraid
        - sizmek_tag_status
        - sizmek_creative_status
    currency_rate_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            date:
              type: string
              format: date-time
            currency_code:
              type: string
              maxLength: 3
            rate:
              type: number
              format: float
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    ad_server_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            name:
              type: string
              maxLength: 64
    site_list_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            status:
              type: boolean
            organization_id:
              type: integer
            name:
              type: string
              maxLength: 64
            restriction:
              type: string
              enum:
                - INCLUDE
                - EXCLUDE
            filename:
              type: string
              maxLength: 255
              nullable: true
            content_updated_on:
              type: string
              format: date-time
              readOnly: true
            sites_count:
              type: integer
              nullable: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    timezone_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            date:
              type: string
              format: date-time
            description:
              type: string
              nullable: true
              maxLength: 256
            display_name:
              type: string
              maxLength: 64
            zone_name:
              type: string
              maxLength: 64
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    strategy_deal_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            strategy_id:
              type: integer
            deal_id:
              type: integer
    strategy_day_part_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            strategy_id:
              type: integer
            user_time:
              type: boolean
              default: true
            status:
              type: boolean
              nullable: true
            start_hour:
              type: integer
            end_hour:
              type: integer
            days:
              type: string
              maxLength: 7
              default: MTWRFSU
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    strategy_group_full:
      allOf:
        - type: object
          properties:
            group:
              type: array
              items:
                type: string
    strategy_group_full_extended:
      allOf:
        - type: object
          properties:
            count:
              type: integer
            strategy_ids:
              type: array
              items:
                type: integer
                format: int32
            name:
              type: string
    strategy_ip_address_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            strategy_id:
              type: integer
            target_inet:
              type: array
              items:
                type: string
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    strategy_concept_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            strategy_id:
              type: integer
            concept_id:
              type: integer
            status:
              type: boolean
            weighting:
              type: string
              enum:
                - BUDGET
                - IMPRESSION
                - NONE
              default: NONE
            percent:
              type: number
              format: float
              nullable: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    targeting_segment_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            targeting_vendor_id:
              type: integer
            parent_targeting_segment_id:
              type: integer
              nullable: true
            objective_id:
              type: integer
              nullable: true
            name:
              type: string
              maxLength: 256
            uniques:
              type: integer
              nullable: true
            external_code:
              type: string
              maxLength: 48
              nullable: true
            wholesale_cpm:
              type: number
              format: double
              nullable: true
            retail_cpm:
              type: number
              format: double
              nullable: true
            buyable:
              type: boolean
              default: true
            tag:
              type: string
              maxLength: 64
            full_path:
              type: string
            child_count:
              type: integer
              nullable: true
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    strategy_target_value_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            strategy_target:
              $ref: '#/components/schemas/strategy_target_full'
            target_value:
              type: array
              items:
                $ref: '#/components/schemas/target_value_full'
    strategy_target_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            strategy_id:
              type: integer
            target_dimension_id:
              type: integer
            exclude:
              type: boolean
              default: false
            active:
              type: boolean
              default: true
            target_op:
              type: string
              enum:
                - AND
                - OR
    target_value_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            parent_value_id:
              type: integer
              nullable: true
            target_dimension_id:
              type: integer
            name:
              type: string
              nullable: true
            value:
              type: integer
            code:
              type: string
              nullable: true
            is_targetable:
              type: boolean
              default: true
    strategy_plan_target_value_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            strategy_target:
              $ref: '#/components/schemas/strategy_plan_target_full'
            target_value:
              type: array
              items:
                $ref: '#/components/schemas/target_value_full'
    strategy_plan_target_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            strategy_plan_id:
              type: integer
            target_dimension_id:
              type: integer
            exclude:
              type: boolean
              default: false
            active:
              type: boolean
              default: true
            target_op:
              type: string
              enum:
                - AND
                - OR
    contract_base:
      title: contract_base
      type: object
      properties:
        organization_id:
          type: integer
          format: int32
          example: 34
        effective_start_date:
          type: string
          format: date-time
        effective_end_date:
          type: string
          format: date-time
        platform_monthly_min:
          type: number
          format: float
        platform_access_fee_pct:
          type: number
          format: float
          nullable: true
        platform_access_fee_cpm:
          type: number
          format: float
          nullable: true
        platform_access_fee_fixed:
          type: number
          format: float
          nullable: true
        managed_service_fee_pct:
          type: number
          format: float
          nullable: true
        managed_service_fee_cpm:
          type: number
          format: float
          nullable: true
        managed_service_fee_fixed:
          type: number
          format: float
          nullable: true
        optimization_fee_pct:
          type: number
          format: float
          nullable: true
        optimization_fee_cpm:
          type: number
          format: float
          nullable: true
        optimization_fee_fixed:
          type: number
          format: float
          nullable: true
        pmp_optimization_off_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - PCT_NET_TOTAL_SPEND
        pmp_optimization_off_fee_pct:
          type: number
          format: float
          nullable: true
        pmp_optimization_off_fee_cpm:
          type: number
          format: float
          nullable: true
        pmp_optimization_on_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - PCT_NET_TOTAL_SPEND
        pmp_optimization_on_fee_pct:
          type: number
          format: float
          nullable: true
        pmp_optimization_on_fee_cpm:
          type: number
          format: float
          nullable: true
        dmp_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - CPTS
          nullable: true
        dmp_fee_pct:
          type: number
          format: float
          nullable: true
        dmp_fee_cpm:
          type: number
          format: float
          nullable: true
        dmp_fee_cpts:
          type: number
          format: float
          nullable: true
        signals_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
          nullable: true
        signals_fee_pct:
          type: number
          format: float
          nullable: true
        signals_fee_cpm:
          type: number
          format: float
          nullable: true
        t1_apps_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
          nullable: true
        t1_apps_fee_pct:
          type: number
          format: float
          nullable: true
        t1_apps_fee_cpm:
          type: number
          format: float
          nullable: true
        contract_number:
          type: integer
          readOnly: true
        spend_cap:
          type: number
          format: float
          nullable: true
        platform_access_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - FIXED
            - PCT_NET_TOTAL_SPEND
        managed_service_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - FIXED
            - PCT_NET_TOTAL_SPEND
        optimization_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - FIXED
            - PCT_NET_TOTAL_SPEND
        profit_share_fee_pct:
          type: number
          format: float
        exclude_agency_margin:
          type: boolean
          default: false
        t1_as_fee_cpm:
          type: number
          format: float
          default: 0.05
        evidon_privacy_cost_cpm:
          type: number
          format: float
          default: 0.02
        peer39_channel_fee_cpm:
          type: number
          format: float
          nullable: true
        peer39_custom_fee_cpm:
          type: number
          format: float
          nullable: true
        peer39_safety_fee_cpm:
          type: number
          format: float
        peer39_quality_fee_cpm:
          type: number
          format: float
        fbx_dynamic_cpm:
          type: number
          format: float
          default: 0.3
        t1_vads_fee_cpm:
          type: number
          format: float
          default: 0.25
        adaptive_segment_cpm:
          type: number
          format: float
          default: 0
        external_media_tracking_cpm:
          type: number
          format: float
          default: 0
        currency_code:
          type: string
          maxLength: 3
          minLength: 3
        t1_html5_fee_cpm:
          type: number
          format: float
          default: 0.05
        viewability_display_sample:
          type: number
          format: float
          nullable: true
        viewability_display_all_imps:
          type: number
          format: float
          nullable: true
        viewability_video_sample:
          type: number
          format: float
          nullable: true
        viewability_video_all_imps:
          type: number
          format: float
          nullable: true
        standard_segment_cpm:
          type: number
          format: float
          default: 0.1
        connected_id_cost:
          type: number
          format: float
          default: 0
        financing_cost:
          type: number
          format: float
          default: 0
        audience_verification_cost:
          type: number
          format: float
          default: 0.25
        programmatic_guaranteed_platform_access_fee_cpm:
          type: number
          format: float
          nullable: true
        programmatic_guaranteed_platform_access_fee_pct:
          type: number
          format: float
          nullable: true
        programmatic_guaranteed_platform_access_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - PCT_NET_TOTAL_SPEND
        media_enablement_fee_cpm:
          type: number
          format: float
          nullable: true
        media_enablement_fee_pct:
          type: number
          format: float
          nullable: true
        media_enablement_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
            - PCT_CLEAR
        source_platform_access_fee_cpm:
          type: number
          format: float
          nullable: true
        source_platform_access_fee_pct:
          type: number
          format: float
          nullable: true
        source_platform_access_fee_unit:
          type: string
          enum:
            - PCT_TOTAL_COST
            - CPM
        country_tax_withholding_fee_cpm:
          type: number
          format: float
          nullable: true
        country_tax_withholding_fee_pct:
          type: number
          format: float
          nullable: true
        country_tax_withholding_fee_unit:
          type: string
          enum:
            - CPM
            - PCT_CLEAR
            - PCT_NET_TOTAL_SPEND
        partnership_rebate_fee_cpm:
          type: number
          format: float
          nullable: true
        partnership_rebate_fee_pct:
          type: number
          format: float
          nullable: true
        partnership_rebate_fee_unit:
          type: string
          enum:
            - CPM
            - PCT_CLEAR
            - PCT_NET_TOTAL_SPEND
        cross_device_fee_cpm:
          type: number
          format: float
          nullable: true
        dba_optimization_fee_cpm:
          type: number
          format: float
          nullable: true
        dba_optimization_fee_pct:
          type: number
          format: float
          nullable: true
        dba_optimization_fee_unit:
          type: string
          enum:
            - CPM
            - PCT_MEDIA
        audio_video_platform_access_fee_cpm:
          type: number
          format: float
          nullable: true
        audio_video_platform_access_fee_pct:
          type: number
          format: float
          nullable: true
        audio_video_platform_access_fee_unit:
          type: string
          enum:
            - CPM
            - PCT_TOTAL_COST
        created_on:
          type: string
          format: date-time
          readOnly: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
        mfa_fee_cpm:
          type: number
          format: float
          nullable: true
    contract_base_response:
      type: object
      allOf:
        - type: object
          properties:
            id:
              type: integer
              format: int32
              example: 4
            version:
              type: integer
              format: int32
              example: 44
        - $ref: '#/components/schemas/contract_base'
    advertiser_collection:
      title: advertiser_collection
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
              agency:
                type: object
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  entity_type:
                    type: string
                  rel:
                    type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    advertiser_collection_full:
      title: advertiser_collection_full
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/advertiser_base'
            - type: object
              properties:
                id:
                  type: integer
                ad_server_fee:
                  type: number
                agency_id:
                  type: integer
                created_on:
                  type: string
                  format: date-time
                  readOnly: true
                entity_type:
                  type: string
                updated_on:
                  type: string
                  format: date-time
                  readOnly: true
                version:
                  type: integer
                effective_ads_txt_verified:
                  type: string
                allow_x_strat_optimization:
                  type: boolean
                  deprecated: true
                billing_contact_id:
                  type: integer
                  minimum: 1
                  deprecated: true
                sales_contact_id:
                  type: integer
                  nullable: true
                  minimum: 1
                  deprecated: true
                agency:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
                    entity_type:
                      type: string
                    rel:
                      type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    advertiser_response_base:
      allOf:
        - $ref: '#/components/schemas/advertiser_base'
        - type: object
          properties:
            id:
              type: integer
            ad_server_fee:
              type: number
            agency_id:
              type: integer
            created_on:
              type: string
              format: date-time
              readOnly: true
            entity_type:
              type: string
            updated_on:
              type: string
              format: date-time
              readOnly: true
            version:
              type: integer
            effective_ads_txt_verified:
              type: string
            allow_x_strat_optimization:
              type: boolean
              deprecated: true
            billing_contact_id:
              type: integer
              minimum: 1
              deprecated: true
            sales_contact_id:
              type: integer
              nullable: true
              minimum: 1
              deprecated: true
            agency:
              type: object
              properties:
                id:
                  type: integer
                name:
                  type: string
                entity_type:
                  type: string
                rel:
                  type: string
    advertiser_response_extended:
      title: advertiser_response_extended
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/advertiser_response_base'
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  enum:
                    - Organization
                    - Agency
                    - Advertiser
        meta:
          $ref: '#/components/schemas/single_metadata'
    agency_collection:
      title: agency_collection
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    agency_collection_full:
      title: agency_collection_full
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/agency_base'
            - type: object
              properties:
                id:
                  type: integer
                created_on:
                  type: string
                  format: date-time
                  readOnly: true
                entity_type:
                  type: string
                organization_id:
                  type: integer
                  minimum: 1
                updated_on:
                  type: string
                  format: date-time
                  readOnly: true
                version:
                  type: integer
                organization:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
                    entity_type:
                      type: string
                    rel:
                      type: string
                sales_contact_id:
                  type: integer
                  deprecated: true
                billing_contact_id:
                  type: integer
                  deprecated: true
                traffic_contact_id:
                  type: integer
                  deprecated: true
        meta:
          $ref: '#/components/schemas/list_metadata'
    agency_response_base:
      allOf:
        - $ref: '#/components/schemas/agency_base'
        - type: object
          properties:
            id:
              type: integer
            created_on:
              type: string
              format: date-time
              readOnly: true
            entity_type:
              type: string
            organization_id:
              type: integer
              minimum: 1
            updated_on:
              type: string
              format: date-time
              readOnly: true
            version:
              type: integer
            sales_contact_id:
              type: integer
              deprecated: true
            billing_contact_id:
              type: integer
              deprecated: true
            traffic_contact_id:
              type: integer
              deprecated: true
    agency_response_extended:
      title: agency_response_extended
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/agency_response_base'
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  enum:
                    - Organization
                    - Agency
        meta:
          $ref: '#/components/schemas/single_metadata'
    agency_update:
      allOf:
        - $ref: '#/components/schemas/agency_base'
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 1
              minimum: 0
    pixel_bundle_collection:
      title: pixel_bundle_collection
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
          nullable: true
        meta:
          $ref: '#/components/schemas/list_metadata'
    pixel_bundle_create:
      type: object
      properties:
        pixel_type:
          type: string
          enum:
            - creative
            - event
            - data
            - segment
            - dynamic
        advertiser_id:
          type: integer
          nullable: true
          format: int32
          example: 23
        agency_id:
          type: integer
          nullable: true
          format: int32
          example: 12
    pixel_bundle_collection_full:
      title: pixel_bundle_collection_full
      type: object
      properties:
        data:
          $ref: '#/components/schemas/pixel_bundle_response'
          nullable: true
        meta:
          $ref: '#/components/schemas/list_metadata'
    organization_collection:
      title: organization_collection
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    exchange_seat_extended:
      title: exchange_seat_extended
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/exchange_seat'
            - type: object
              properties:
                id:
                  type: integer
                version:
                  type: integer
                created_on:
                  type: string
                  format: date-time
                  readOnly: true
                updated_on:
                  type: string
                  format: date-time
                  readOnly: true
    permission_flags:
      type: object
      properties:
        create:
          type: boolean
        read:
          type: boolean
        update:
          type: boolean
        delete:
          type: boolean
        inherited_from:
          type: string
    permission_organization:
      allOf:
        - type: object
          properties:
            organization_id:
              type: integer
        - $ref: '#/components/schemas/permission_flags'
    settings_organization:
      type: object
      properties:
        settings:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
                example: attribute3
              value:
                type: string
                example: value3
        entity:
          type: object
          properties:
            id:
              type: integer
            name:
              type: string
            settings_total:
              type: integer
            type:
              type: string
    settings_organization_update:
      type: object
      properties:
        settings:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
                example: attribute3
              value:
                type: string
                example: value3
                nullable: true
                description: Setting with `value = null` will be removed.
    campaign_plan_update:
      type: object
      properties:
        version:
          type: integer
    campaign_plan_create:
      type: object
      properties:
        id:
          type: integer
        advertiser_id:
          type: integer
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
    campaign_plan_common:
      type: object
      properties:
        name:
          type: string
        version:
          type: integer
        duration:
          type: object
          properties:
            start_date:
              type: string
              format: date-time
            end_date:
              type: string
              format: date-time
        budget:
          type: object
          properties:
            total_budget:
              type: number
              format: float
              minimum: 1
              maximum: 99999999999999.98
            currency_code:
              type: string
        zone_name:
          type: string
    campaign_plan:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_plan_update'
        - $ref: '#/components/schemas/campaign_plan_create'
        - $ref: '#/components/schemas/campaign_plan_common'
    strategy_plan_details:
      type: object
      properties:
        name:
          type: string
          maxLength: 128
        feature_compatibility:
          type: string
          maxLength: 1024
        device_graph_only:
          type: boolean
    strategy_plan_duration:
      type: object
      additionalProperties: false
      properties:
        use_campaign_start:
          type: boolean
        use_campaign_end:
          type: boolean
        start_date:
          type: string
          format: date-time
          nullable: true
        end_date:
          type: string
          format: date-time
          nullable: true
    strategy_plan_budget:
      type: object
      properties:
        budget:
          type: number
          format: float
          description: >-
            Must be a valid float between 1 and 10000000 USD or its equivalent
            in other currency.
          nullable: true
        currency_code:
          type: string
    strategy_plan_goals:
      type: object
      additionalProperties: false
      properties:
        goal_type:
          type: string
          enum:
            - spend
            - reach
            - cpc
            - cpe
            - cpa
            - roi
            - ctr
            - vcr
            - viewability_rate
            - vcpm
            - cpcv
            - ''
        goal_value:
          type: number
          format: float
          minimum: 0
          maximum: 999999999.9999
        min_bid:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
        max_bid:
          type: number
          format: float
          minimum: 0.01
          maximum: 9999999.99
        roi_target:
          type: number
          format: double
          minimum: 0
          maximum: 999999999.99
          nullable: true
        bid_min_devices:
          type: integer
          nullable: true
          format: int32
          example: 1
        bid_aggressiveness:
          type: integer
          minimum: 0
          maximum: 100
        bid_price_is_media_only:
          type: boolean
        max_bid_wm:
          type: number
          format: float
          minimum: 0
          maximum: 9999999.99
          nullable: true
        use_bid_shading:
          type: boolean
    strategy_plan_frequency:
      type: object
      additionalProperties: false
      properties:
        frequency_type:
          type: string
          nullable: true
          enum:
            - even
            - asap
            - no-limit
            - t1-optimized
        frequency_interval:
          type: string
          enum:
            - hour
            - day
            - week
            - month
            - campaign
            - not-applicable
        frequency_amount:
          type: integer
          format: int32
          example: 5
        frequency_optimization:
          type: boolean
    strategy_plan_inventory:
      type: object
      properties:
        run_on_all_pmp:
          type: boolean
        run_on_all_exchanges:
          type: boolean
        site_restriction_transparent_urls:
          type: boolean
        domain_restrictions:
          type: object
          properties:
            include:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
            exclude:
              type: array
              items:
                $ref: '#/components/schemas/domain_restriction'
        site_lists:
          type: array
          items:
            $ref: '#/components/schemas/site_list'
        deals:
          type: array
          items:
            $ref: '#/components/schemas/deal'
        deal_groups:
          type: array
          items:
            $ref: '#/components/schemas/deal_group'
        supply_sources:
          type: array
          items:
            $ref: '#/components/schemas/supply_source'
      required:
        - run_on_all_pmp
        - run_on_all_exchanges
    strategy_plan_targeting:
      allOf:
        - properties:
            fold_position:
              type: array
              items:
                type: string
                enum:
                  - ABOVE
                  - BELOW
                  - UNCATEGORIZED
              nullable: true
            audience:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                      segments:
                        type: array
                        items:
                          $ref: '#/components/schemas/strategy_audience_segment'
                exclude:
                  type: object
                  properties:
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                    segments:
                      type: array
                      items:
                        $ref: '#/components/schemas/strategy_audience_segment'
            contextual:
              type: object
              properties:
                include:
                  type: array
                  items:
                    type: object
                    properties:
                      code:
                        type: string
                      operator:
                        type: string
                        enum:
                          - AND
                          - OR
                      segments:
                        type: array
                        items:
                          $ref: '#/components/schemas/strategy_contextual_segment'
                exclude:
                  type: object
                  properties:
                    code:
                      type: string
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                    segments:
                      type: array
                      items:
                        $ref: '#/components/schemas/strategy_contextual_segment'
                  required:
                    - segments
            postal_codes:
              $ref: '#/components/schemas/targeting_postal_codes'
            geofence:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_geofence'
                exclude:
                  $ref: '#/components/schemas/strategy_geofence'
            my_data:
              type: object
              properties:
                include:
                  $ref: '#/components/schemas/strategy_my_data'
                exclude:
                  $ref: '#/components/schemas/strategy_my_data'
            location:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_location'
            technology:
              type: object
              properties:
                include:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology'
                exclude:
                  type: array
                  items:
                    $ref: '#/components/schemas/strategy_technology'
            ip_addresses:
              $ref: '#/components/schemas/targeting_ip_addresses'
            day_parts:
              type: array
              items:
                $ref: '#/components/schemas/day_part'
            recency:
              type: array
              items:
                type: object
                properties:
                  pixel_id:
                    type: integer
                    format: int32
                    example: 67
                  from_hour:
                    type: integer
                    format: int32
                    example: 5
                  to_hour:
                    type: integer
                    format: int32
                    example: 7
                required:
                  - pixel_id
                  - from_hour
                  - to_hour
            language_codes:
              type: array
              items:
                properties:
                  code:
                    type: string
                  name:
                    type: string
      type: object
    strategy_plan_creatives:
      type: object
      required:
        - ad_expandable
        - ad_formats
        - ad_sizes
      properties:
        ad_expandable:
          type: boolean
          nullable: true
        ad_formats:
          type: array
          items:
            type: string
          nullable: true
        ad_sizes:
          type: array
          items:
            type: string
          nullable: true
    new_strategy_plan_full:
      allOf:
        - $ref: '#/components/schemas/strategy_plan_details'
        - type: object
          properties:
            zone_name:
              type: string
              example: America/New_York
            campaign_service_type:
              type: string
            type:
              type: string
            duration:
              $ref: '#/components/schemas/strategy_plan_duration'
            budget:
              $ref: '#/components/schemas/strategy_plan_budget'
            goals:
              $ref: '#/components/schemas/strategy_plan_goals'
            frequency:
              $ref: '#/components/schemas/strategy_plan_frequency'
            inventory:
              $ref: '#/components/schemas/strategy_plan_inventory'
            targeting:
              $ref: '#/components/schemas/strategy_plan_targeting'
            creatives:
              $ref: '#/components/schemas/strategy_plan_creatives'
      description: New Strategy Plan
    new_strategy_plan_full_response:
      allOf:
        - $ref: '#/components/schemas/new_strategy_plan_full'
        - type: object
          properties:
            id:
              type: integer
              format: int32
              example: 33
            version:
              type: integer
              format: int32
              example: 3
            campaign_id:
              type: integer
              format: int32
              example: 8
    strategy_plan_target_value_collection:
      type: object
      title: strategy_plan_target_value_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_plan_target_value_collection_full:
      type: object
      title: strategy_plan_target_value_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_plan_target_value_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_collection:
      type: object
      title: strategy_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_campaign_info:
      type: object
      properties:
        campaign_name:
          type: string
          readOnly: true
        campaign_start_date:
          type: string
          format: date-time
          readOnly: true
        campaign_end_date:
          type: string
          format: date-time
          readOnly: true
        campaign_zone_name:
          type: string
          readOnly: true
        campaign_service_type:
          type: string
          readOnly: true
        campaign_goal_type:
          type: string
          readOnly: true
        campaign_goal_value:
          type: number
          format: float
          readOnly: true
        campaign_merit_pixel_id:
          type: integer
          nullable: true
          readOnly: true
        viewability:
          type: object
          readOnly: true
          properties:
            sample_rate:
              type: number
              format: float
              readOnly: true
            type:
              type: string
              readOnly: true
              example: AUTO_TAG
            vendor_id:
              type: integer
              readOnly: true
    strategy_segment_group:
      type: object
      properties:
        operator:
          type: string
          enum:
            - AND
        segment_groups:
          type: array
          items:
            type: object
            properties:
              segment_group_id:
                type: integer
                format: int32
                example: 43
      required:
        - segment_groups
        - operator
    strategy_segment_group_exclude:
      type: object
      properties:
        segment_groups:
          type: array
          items:
            type: object
            properties:
              segment_group_id:
                type: integer
                format: int32
                example: 98
      required:
        - segment_groups
    strategy_collection_full:
      type: object
      title: strategy_collection_full
      properties:
        data:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/strategy_campaign_info'
              - $ref: '#/components/schemas/strategy_full_response'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_segment_group_extended:
      type: object
      properties:
        operator:
          type: string
          enum:
            - AND
        segment_groups:
          type: array
          items:
            type: object
            properties:
              segment_group_id:
                type: integer
              segment_group_name:
                type: string
      required:
        - segment_groups
    strategy_segment_group_exclude_extended:
      type: object
      properties:
        segment_groups:
          type: array
          items:
            type: object
            properties:
              segment_group_id:
                type: integer
              segment_group_name:
                type: string
      required:
        - segment_groups
    strategy_collection_full_extended:
      type: object
      title: strategy_collection_full_extended
      properties:
        data:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/strategy_campaign_info'
              - $ref: '#/components/schemas/strategy_full_extended'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy:
      title: strategy_response
      type: object
      properties:
        data:
          allOf:
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  description: available if mfa_avoidance = INHERIT
                  enum:
                    - Organization
                    - Agency
                    - Advertiser
                    - Campaign
                    - Strategy
            - $ref: '#/components/schemas/strategy_campaign_info'
            - $ref: '#/components/schemas/strategy_full_response'
        meta:
          $ref: '#/components/schemas/single_metadata'
    strategy_extended:
      title: strategy_extended_response
      type: object
      properties:
        data:
          allOf:
            - type: object
              properties:
                inherited_mfa_avoidance:
                  type: string
                  enum:
                    - INHERIT
                    - ALLOW_ALL
                    - EXCLUDE_MFA
                inherited_mfa_from:
                  type: string
                  enum:
                    - Organization
                    - Agency
                    - Advertiser
                    - Campaign
                    - Strategy
            - $ref: '#/components/schemas/strategy_full_extended'
        meta:
          $ref: '#/components/schemas/single_metadata'
    targeting_friendly_name:
      type: object
      properties:
        friendly_name:
          type: string
        vendor_id:
          type: integer
        vendor_name:
          type: string
        target_id:
          type: string
        dimension_id:
          type: integer
          format: int32
        dimension_code:
          type: string
        tuple:
          type: string
    strategy_forecast_query:
      type: object
      properties:
        expression:
          type: string
        freqCap:
          type: integer
          nullable: true
        freqDur:
          type: string
          enum:
            - hour
            - day
            - week
            - month
            - campaign
            - not-applicable
          nullable: true
        maxSpend:
          type: number
          format: float
          nullable: true
        maxCPM:
          type: number
          format: float
          nullable: true
    campaign_budget_flights_create:
      type: object
      properties:
        start_date:
          type: string
          format: date-time
        end_date:
          type: string
          format: date-time
          description: >-
            The latest end date of flight must be no more than 36 months after
            the earliest start date
        total_budget:
          type: number
          format: float
        total_impression_budget:
          nullable: true
          type: integer
          format: int64
          minimum: -9223372036854776000
          maximum: 9223372036854776000
          example: 12345
      required:
        - start_date
        - end_date
        - total_budget
    campaign_site_list:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        version:
          type: integer
        status:
          type: boolean
        organization_id:
          type: integer
        created_on:
          type: string
          format: date-time
          readOnly: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
        restriction:
          type: string
        filename:
          type: string
        campaign_id:
          type: integer
        assigned:
          type: boolean
        sites_count:
          type: integer
        sites_count_app:
          type: integer
        sites_count_domain:
          type: integer
        sites_count_primary_seller_id:
          type: integer
    campaign_custom_brain_selection:
      type: object
      properties:
        id:
          type: integer
        version:
          type: integer
        campaign_id:
          type: integer
        selection_id:
          type: integer
        selection_type:
          type: string
        active:
          type: boolean
        enable_mm_audiences_in_brain:
          type: boolean
        is_retired:
          type: boolean
        full_path:
          type: string
        owner_name:
          type: string
        selection_name:
          type: string
        child_count:
          type: integer
        parent_audience_segment_id:
          type: integer
        retail_cpm:
          type: number
          format: float
        uniques:
          type: integer
        wholesale_cpm:
          type: number
          format: float
    campaign_full_with_inherited:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_full'
        - type: object
          properties:
            inherited_mfa_avoidance:
              type: string
              description: available if mfa_avoidance = INHERIT
              enum:
                - INHERIT
                - ALLOW_ALL
                - EXCLUDE_MFA
            inherited_mfa_from:
              type: string
              description: available if mfa_avoidance = INHERIT
              enum:
                - Organization
                - Agency
                - Advertiser
                - Campaign
            inherited_targeting_identity_level:
              type: string
              description: available if targeting_identity_level = INHERIT
              enum:
                - INDIVIDUAL
                - HOUSEHOLD
    campaign_campaign_full:
      title: campaign_response
      type: object
      properties:
        data:
          $ref: '#/components/schemas/campaign_full_with_inherited'
        meta:
          $ref: '#/components/schemas/single_metadata'
    campaign_full_extended:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_full'
        - type: object
          properties:
            inherited_mfa_avoidance:
              type: string
              enum:
                - INHERIT
                - ALLOW_ALL
                - EXCLUDE_MFA
            inherited_mfa_from:
              type: string
              enum:
                - Organization
                - Agency
                - Advertiser
                - Campaign
            inherited_targeting_identity_level:
              type: string
              enum:
                - INDIVIDUAL
                - HOUSEHOLD
    campaign_campaign_full_extended:
      title: campaign_response_extended
      type: object
      properties:
        data:
          $ref: '#/components/schemas/campaign_full_extended'
        meta:
          $ref: '#/components/schemas/single_metadata'
    campaign_update:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_base'
        - type: object
          properties:
            version:
              type: integer
              format: int32
              example: 4
            goals:
              $ref: '#/components/schemas/campaign_goals'
            budget:
              allOf:
                - $ref: '#/components/schemas/campaign_budget'
                - required:
                    - currency_code
                    - flights
                  properties:
                    flights:
                      type: array
                      minItems: 1
                      items:
                        $ref: '#/components/schemas/campaign_budget_flights'
            frequency:
              $ref: '#/components/schemas/campaign_frequency'
            inventory:
              $ref: '#/components/schemas/campaign_inventory'
            site_lists:
              type: array
              items:
                type: object
                required:
                  - id
                  - assigned
                properties:
                  id:
                    type: integer
                    format: int32
                    example: 23
                  assigned:
                    type: boolean
            custom_brain_selections:
              type: array
              items:
                type: object
                properties:
                  selection_id:
                    type: integer
                    format: int32
                    example: 45
                  selection_type:
                    enum:
                      - Audience Target
                      - Data Pixel
                      - Event Pixel
                      - Segment
                      - Dynamic
    campaign_collection:
      type: object
      title: campaign_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    campaign_collection_full:
      type: object
      title: campaign_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/campaign_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    campaign_goals_create:
      type: object
      allOf:
        - $ref: '#/components/schemas/campaign_goals'
        - required:
            - goal_type
    budget_flight_collection:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    budget_flight_full:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        version:
          type: integer
        campaign_id:
          type: integer
        start_date:
          type: string
          format: date-time
        end_date:
          type: string
          format: date-time
        total_budget:
          type: number
          format: float
        is_relevant:
          type: boolean
        created_on:
          type: string
          format: date-time
          readOnly: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
        zone_name:
          type: string
        currency_code:
          type: string
        total_impression_budget:
          type: integer
          nullable: true
    budget_flight_collection_full:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/budget_flight_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    campaign_dba_collection:
      type: object
      title: campaign_dba_collection
      properties:
        data:
          type: object
          properties:
            id:
              type: integer
            entity_type:
              type: string
            name:
              type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    campaign_dba_collection_full:
      type: object
      title: campaign_dba_collection_full
      properties:
        data:
          $ref: '#/components/schemas/campaign_full'
        meta:
          $ref: '#/components/schemas/single_metadata'
    dba:
      type: array
      items:
        type: object
        properties:
          id:
            type: integer
            description: campaign id
          dynamic_budget_allocation_applied:
            type: string
            format: date-time
            nullable: true
          dynamic_budget_allocation_available:
            type: string
            format: date-time
            nullable: true
        required:
          - id
    contextual_segment_short:
      type: object
      properties:
        id:
          type: integer
          format: int32
          example: 3
        name:
          type: string
        full_path:
          type: string
        cpm:
          type: number
          format: double
        segment_objective_name:
          type: string
        uniques:
          type: integer
          format: int32
          example: 12345
          nullable: true
    audience_segments_group:
      type: object
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
        segments:
          type: array
          items:
            type: object
            properties:
              audience_segment_id:
                type: integer
                format: int32
                example: 88
    audience_segment_short:
      type: object
      properties:
        id:
          type: integer
          format: int32
          example: 11
        name:
          type: string
          example: Name3
        full_path:
          type: string
          example: Name1 - Name2 - Name3
        cpm:
          type: number
          format: double
        uniques:
          type: integer
          format: int32
          nullable: true
          example: 12345
        code:
          type: string
          nullable: true
    user_permission:
      title: user permission
      type: object
      properties:
        id:
          type: integer
        create:
          type: boolean
        read:
          type: boolean
        update:
          type: boolean
        delete:
          type: boolean
    user_permissions:
      title: user permissions
      description: available only when extended
      nullable: true
      type: object
      properties:
        organizations:
          type: array
          items:
            $ref: '#/components/schemas/user_permission'
        agencies:
          type: array
          items:
            $ref: '#/components/schemas/user_permission'
        advertisers:
          type: array
          items:
            $ref: '#/components/schemas/user_permission'
    permission_agency:
      allOf:
        - $ref: '#/components/schemas/permission_flags'
        - type: object
          properties:
            agency_id:
              type: integer
    permission_advertiser:
      allOf:
        - $ref: '#/components/schemas/permission_flags'
        - type: object
          properties:
            advertiser_id:
              type: integer
    permission:
      type: object
      properties:
        id:
          type: integer
        create:
          type: boolean
        read:
          type: boolean
        update:
          type: boolean
        delete:
          type: boolean
        propogate:
          type: boolean
    permission_user_output:
      type: object
      properties:
        id:
          type: integer
        entity_type:
          type: string
        username:
          type: string
        active:
          type: boolean
        version:
          type: integer
        title:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        link_ldap:
          type: boolean
        link_saml:
          type: boolean
        phone:
          type: string
        mobile:
          type: string
        fax:
          type: string
        type:
          type: string
        role:
          type: string
        scope:
          type: string
        view_organizations:
          type: boolean
        edit_campaigns:
          type: boolean
        edit_margins_and_performance:
          type: boolean
        labs_enable_rmx:
          type: boolean
        creator_id:
          type: integer
        created_on:
          type: string
          format: date-time
          readOnly: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
        last_login_on:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        access_internal_fees:
          type: boolean
        view_segments:
          type: boolean
        edit_segments:
          type: boolean
        view_data_definition:
          type: boolean
        edit_data_definition:
          type: boolean
        view_dmp_reports:
          type: boolean
        email:
          type: string
        permissions:
          type: object
          properties:
            organizations:
              type: array
              items:
                $ref: '#/components/schemas/permission'
            agencies:
              type: array
              items:
                $ref: '#/components/schemas/permission'
            advertisers:
              type: array
              items:
                $ref: '#/components/schemas/permission'
        roles:
          type: array
          items:
            type: integer
        language:
          type: string
        zone_name:
          type: string
    permission_campaign:
      allOf:
        - type: object
          properties:
            campaign_id:
              type: integer
            permission:
              $ref: '#/components/schemas/permission_flags'
        - $ref: '#/components/schemas/permission_user_output'
    permission_strategy:
      allOf:
        - type: object
          properties:
            strategy_id:
              type: integer
            permission:
              $ref: '#/components/schemas/permission_flags'
        - $ref: '#/components/schemas/permission_user_output'
    permission_list:
      type: object
      properties:
        organizations:
          type: array
          items:
            $ref: '#/components/schemas/permission_organization'
        agencies:
          type: array
          items:
            $ref: '#/components/schemas/permission_agency'
        advertisers:
          type: array
          items:
            $ref: '#/components/schemas/permission_advertiser'
        campaigns:
          type: array
          items:
            $ref: '#/components/schemas/permission_campaign'
        strategies:
          type: array
          items:
            $ref: '#/components/schemas/permission_strategy'
    permission_v2_flags:
      type: object
      properties:
        type:
          type: string
        role:
          type: string
        scope:
          type: string
        view_segments:
          type: boolean
        view_organizations:
          type: boolean
        edit_margins_and_performance:
          type: boolean
        access_internal_fees:
          type: boolean
        edit_segments:
          type: boolean
        edit_campaigns:
          type: boolean
        view_data_definition:
          type: boolean
        view_dmp_reports:
          type: boolean
        edit_data_definition:
          type: boolean
    permission_v2_organization:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            name:
              type: string
            dmp_enabled:
              type: string
            full_access:
              type: boolean
    permission_v2_agency:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            name:
              type: string
            dmp_enabled:
              type: string
            full_access:
              type: boolean
            organization_id:
              type: integer
    permission_v2_advertiser:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            name:
              type: string
            dmp_enabled:
              type: string
            agency_id:
              type: integer
    permission_v2_object:
      type: object
      properties:
        flags:
          type: object
          $ref: '#/components/schemas/permission_v2_flags'
        entities:
          type: object
          properties:
            organizations:
              type: array
              items:
                $ref: '#/components/schemas/permission_v2_organization'
            agencies:
              type: array
              items:
                $ref: '#/components/schemas/permission_v2_agency'
            advertisers:
              type: array
              items:
                $ref: '#/components/schemas/permission_v2_advertiser'
    atomic_creative_healthcheck_response:
      title: atomic_creative_healthcheck_response
      type: object
      properties:
        AdxOpenAuction:
          type: string
        AtomicCreativeID:
          type: integer
        Freakout:
          type: string
        MicrosoftAdExchange:
          type: string
        AdxDeals:
          type: string
        MoPubDirect:
          type: string
        RightMediaExchange:
          type: string
        BrightrollForDisplay:
          type: string
        AppNexus:
          type: string
        EntityType:
          type: string
        NetStatus:
          type: string
        CreativeName:
          type: string
        AdvertiserID:
          type: integer
        AdvertiserName:
          type: string
    concepts_collection_short:
      title: concept
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        entity_type:
          type: string
    concept_update:
      type: object
      properties:
        version:
          type: integer
          format: int32
          example: 3
      required:
        - version
    concept_common:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 256
        status:
          type: boolean
      required:
        - name
    concept_create:
      type: object
      properties:
        advertiser_id:
          type: integer
          format: int32
          example: 76
      required:
        - advertiser_id
    concept_response:
      type: object
      title: concept_full
      allOf:
        - type: object
          properties:
            id:
              type: integer
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
            entity_type:
              type: string
            atomic_creative_list:
              type: array
              example:
                - 123
                - 124
              items:
                type: integer
                format: int32
              nullable: true
            media_type_list:
              type: array
              example:
                - audio
                - display
                - native
                - video
              items:
                type: string
                enum:
                  - audio
                  - display
                  - native
                  - video
              nullable: true
            strategy_list:
              type: array
              example:
                - 456
                - 457
              items:
                type: integer
                format: int32
              nullable: true
            advertiser_name:
              type: string
        - $ref: '#/components/schemas/concept_update'
        - $ref: '#/components/schemas/concept_common'
        - $ref: '#/components/schemas/concept_create'
    bulk_errors:
      title: bulk errors
      type: array
      items:
        type: object
        properties:
          id:
            type: integer
          action:
            type: string
          entity_type:
            type: string
          index:
            type: integer
          errors:
            type: array
            items:
              type: object
              properties:
                id:
                  type: integer
                code:
                  type: string
                field:
                  type: string
                message:
                  type: string
    search_result:
      type: object
      properties:
        id:
          type: integer
        entity_type:
          type: string
        name:
          type: string
    contextual_segment_collection:
      type: object
      title: contextual_segment_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    contextual_segment_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            name:
              type: string
            parent_targeting_segment_id:
              type: integer
              nullable: true
            full_path:
              type: string
            cpm:
              type: number
              format: double
            targeting_vendor_id:
              type: integer
            vendor_name:
              type: string
            external_code:
              type: string
            segment_objective_name:
              type: string
            segment_objective_id:
              type: integer
            buyable:
              type: boolean
            has_children:
              type: boolean
    contextual_segment_collection_full:
      type: object
      title: contextual_segment_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/contextual_segment_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    cpm:
      type: object
      properties:
        currency_code:
          type: string
          example: USD
        value:
          type: number
          format: double
    audience_vendor:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        version:
          type: integer
        vendor_id:
          type: integer
        mma_free_cm:
          type: boolean
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
        provides_batch_segments:
          type: boolean
        campaign_brain_enabled:
          type: boolean
        pin_top_search:
          type: boolean
        bidder_code:
          type: string
        namespace_code:
          type: string
    path_audience_segment:
      title: path_audience_segment
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        version:
          type: integer
        parent_audience_segment_id:
          type: integer
          nullable: true
        full_path:
          type: string
        uniques:
          type: integer
        retail_cpm:
          type: array
          items:
            $ref: '#/components/schemas/cpm'
        audience_vendor_id:
          type: integer
        code:
          type: string
          nullable: true
        buyable:
          type: boolean
        child_count:
          type: integer
        wholesale_cpm:
          type: array
          items:
            $ref: '#/components/schemas/cpm'
        type:
          type: string
        taxonomy_id:
          type: integer
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
        audience_vendor:
          description: available with parameter `with=audience_vendor`
          nullable: true
          $ref: '#/components/schemas/audience_vendor'
    path_audience_segments_collection_full:
      type: object
      title: path_audience_segments_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/path_audience_segment'
        meta:
          $ref: '#/components/schemas/list_metadata'
    control_integer:
      title: control_integer
      type: object
      properties:
        constraint_values:
          type: integer
        default_values:
          type: integer
    control_integer_array:
      title: control_integer_array
      type: object
      properties:
        constraint_values:
          type: array
          items:
            type: integer
        default_values:
          oneOf:
            - type: integer
            - type: array
              items:
                type: integer
    control_decimal:
      title: control_decimal
      type: object
      properties:
        constraint_values:
          type: number
          format: float
        default_values:
          type: number
          format: float
    control_decimal_array:
      title: control_decimal_array
      type: object
      properties:
        constraint_values:
          type: array
          items:
            type: number
            format: float
        default_values:
          type: number
          format: float
    control_string:
      title: control_string
      type: object
      properties:
        constraint_values:
          type: string
        default_values:
          type: string
    control_string_array:
      title: control_string_array
      type: object
      properties:
        constraint_values:
          type: array
          items:
            type: string
        default_values:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
    control_boolean:
      title: control_boolean
      type: object
      properties:
        constraint_values:
          type: boolean
        default_values:
          type: boolean
    supply_source_response:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            name:
              type: string
            supply_type:
              type: string
            status:
              type: boolean
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
            rtb_enabled:
              type: boolean
            mm_safe:
              type: boolean
            pixel_tag:
              type: string
            distribute:
              type: boolean
            use_pool:
              type: boolean
            code:
              type: string
            is_proservice:
              type: boolean
            default_seat_identifier:
              type: string
            seat_enabled:
              type: boolean
            bidder_exchange_identifier:
              type: integer
            pmp_enabled:
              type: boolean
            rtb_type:
              type: string
            parent_supply_id:
              type: integer
            has_display:
              type: boolean
            has_mobile_display:
              type: boolean
            has_video:
              type: boolean
            has_mobile_video:
              type: boolean
            requires_creative_audit:
              type: boolean
            has_desktop_video:
              type: boolean
            has_connected_tv:
              type: boolean
            attribution_group:
              type: string
            fraud_filter:
              type: boolean
            mma_free:
              type: boolean
            private:
              type: boolean
    vendor_collection:
      type: object
      title: vendor_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    vendor_base:
      title: vendor
      type: object
      properties:
        id:
          type: integer
        version:
          type: integer
        name:
          type: string
        adx_approved:
          type: boolean
        adx_declaration_required:
          type: boolean
        adx_vendor_identifier:
          type: string
          maxLength: 16
        mm_contract_available:
          type: boolean
        rate_card_price:
          type: number
          format: double
          maximum: 999999999.9999
        rate_card_type:
          type: string
          enum:
            - CPM
            - FIXED
        wholesale_price:
          type: number
          format: double
          maximum: 999999999.9999
        is_eligible:
          type: boolean
        created_on:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        updated_on:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        description:
          type: string
          maxLength: 4096
        vendor_type:
          type: string
          enum:
            - AD_SERVER
            - AD_VERIFICATION
            - AUDIENCE_VERIFICATION
            - CONTEXTUAL
            - DATA
            - DSP
            - DYNAMIC_CREATIVE
            - MEASUREMENT
            - NETWORK
            - OBA_COMPLIANCE
            - OTHER
            - PIXEL_TRACKING
            - RICH_MEDIA
            - SURVEY
            - VIEWABILITY
            - VIEWABILITY_BYO_DISPLAY
            - VIEWABILITY_BYO_VIDEO
        code:
          type: string
          maxLength: 64
        adx_ssl_approved:
          type: boolean
        adx_video_ssl_approved:
          type: boolean
        adx_video_approved:
          type: boolean
        auto_tag_display:
          type: boolean
        provider_tax:
          type: number
          format: double
          maximum: 999999.999999
        set_by:
          type: string
    vendor_collection_full:
      type: object
      title: vendor_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/vendor_base'
        meta:
          $ref: '#/components/schemas/list_metadata'
    currency_rate_collection:
      type: object
      title: currency_rate_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    currency_rate_collection_full:
      type: object
      title: currency_rate_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/currency_rate_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    ad_server_collection:
      type: object
      title: ad_server_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    ad_server_collection_full:
      type: object
      title: ad_server_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ad_server_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    site_list_collection:
      type: object
      title: site_list_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    site_list_collection_full:
      type: object
      title: site_list_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/site_list_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    site_list_assignment_collection:
      type: object
      title: site_list_assignment_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    site_list_assignment_full:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            site_list_id:
              type: integer
            entity_id:
              type: integer
            associated_campaign_id:
              type: integer
            collection:
              type: string
            name:
              type: string
    site_list_assignment_collection_full:
      type: object
      title: site_list_assignment_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/site_list_assignment_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    timezone_collection:
      type: object
      title: timezone_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    timezone_collection_full:
      type: object
      title: timezone_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/timezone_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    targeting_segment_collection:
      type: object
      title: targeting_segment_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    targeting_segment_collection_full:
      type: object
      title: targeting_segment_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/targeting_segment_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    targeting_segment_objective_response:
      allOf:
        - type: object
          properties:
            id:
              type: integer
            version:
              type: integer
            objective:
              type: string
            created_on:
              type: string
              format: date-time
              readOnly: true
            updated_on:
              type: string
              format: date-time
              readOnly: true
    strategy_deal_collection:
      type: object
      title: strategy_deal_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_deal_collection_full:
      type: object
      title: strategy_deal_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_deal_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_day_part_collection:
      type: object
      title: strategy_day_part_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_day_part_collection_full:
      type: object
      title: strategy_day_part_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_day_part_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_group_collection:
      type: object
      title: strategy_group_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_group_collection_full:
      type: object
      title: strategy_group_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_group_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_group_collection_full_extended:
      type: object
      title: strategy_group_collection_full_extended
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_group_full_extended'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_ip_address_collection:
      type: object
      title: strategy_ip_address_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_ip_address_collection_full:
      type: object
      title: strategy_ip_address_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_ip_address_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_concept_collection:
      type: object
      title: strategy_concept_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_concept_collection_full:
      type: object
      title: strategy_concept_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_concept_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_target_value_collection:
      type: object
      title: strategy_target_value_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    strategy_target_value_collection_full:
      type: object
      title: strategy_target_value_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/strategy_target_value_full'
        meta:
          $ref: '#/components/schemas/list_metadata'
    contract_collection:
      type: object
      title: contract_collection
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              entity_type:
                type: string
              name:
                type: string
          nullable: true
        meta:
          $ref: '#/components/schemas/list_metadata'
    contract_collection_full:
      type: object
      title: contract_collection_full
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/contract_base_response'
          nullable: true
        meta:
          $ref: '#/components/schemas/list_metadata'
    segment_group_create:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 256
        type:
          type: string
          enum:
            - CONTEXTUAL
            - AUDIENCE
        organization_id:
          type: integer
          format: int32
          example: 1234
        status:
          type: boolean
        segment_subgroup:
          type: array
          items:
            type: object
            properties:
              segment_operator:
                type: string
                enum:
                  - AND
                  - OR
              segment_members:
                type: array
                items:
                  type: object
                  required:
                    - segment_id
                    - segment_type
                  properties:
                    segment_id:
                      type: integer
                      format: int32
                      example: 6
                    segment_type:
                      type: string
                      enum:
                        - CONTEXTUAL
                        - 3P
            required:
              - segment_operator
              - segment_members
      required:
        - name
        - type
        - organization_id
        - status
        - segment_subgroup
    segment_group_update:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 256
        type:
          type: string
          enum:
            - CONTEXTUAL
            - AUDIENCE
        organization_id:
          type: integer
          format: int32
          example: 1234
        status:
          type: boolean
        segment_subgroup:
          type: array
          items:
            type: object
            properties:
              segment_operator:
                type: string
                enum:
                  - AND
                  - OR
              segment_members:
                type: array
                items:
                  type: object
                  required:
                    - segment_id
                    - segment_type
                  properties:
                    segment_id:
                      type: integer
                      format: int32
                      example: 6
                    segment_type:
                      type: string
                      enum:
                        - CONTEXTUAL
                        - 3P
            required:
              - segment_operator
              - segment_members
    pixel_providers_response:
      title: pixel_providers_response
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              entity_type:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
    pixel_providers_response_full:
      title: pixel_providers_full_response
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              version:
                type: integer
              name:
                type: string
              status:
                type: boolean
              taxonomy_file:
                type: string
              created_on:
                type: string
                format: date-time
                readOnly: true
              updated_on:
                type: string
                format: date-time
                readOnly: true
              agency_id:
                type: integer
              execution_by:
                type: string
              vendor_id:
                type: integer
              provider_tax:
                type: number
              entity_type:
                type: string
        meta:
          $ref: '#/components/schemas/list_metadata'
  parameters:
    page_limit:
      in: query
      name: page_limit
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        example: 100
      required: false
      description: Number of elements in the collection to retrieve
    page_offset:
      in: query
      name: page_offset
      schema:
        type: integer
        minimum: 0
        maximum: 1000
        example: 0
      required: false
      description: Index of the first element in the collection to retrieve
    sort_by:
      in: query
      name: sort_by
      description: >
        The field to sort by. You can use any field name in ascending or
        descending order.

        For ascending order, use the field name directly, e.g., `id`. 

        For descending order, prefix the field name with a hyphen (`-`), e.g.,
        `-id`.
      schema:
        type: string
        example: id, -id, name, -name
      required: false
    q:
      in: query
      name: q
      schema:
        type: string
      required: false
      description: >
        Query search for filtering. This parameter can be used to filter results
        based on various fields.

        - `q=name=:{search}*` to find all results with names starting with
        "search".

        - `q=status==true` to find all active entities.

        - `q=id>=1000` to find all entities with id greater than or equal to
        1000.

        - `q=id==(1,2,3)` find specific entities by ID.

        Supported operators: ==, =:, !=, >, < , >=, <=.
    full:
      in: query
      name: full
      schema:
        type: string
        example: '*'
      required: false
      description: >
        To return all fields, set the value to `*`. For example, `full=*` will
        include all properties.
    extended:
      in: query
      name: extended
      schema:
        type: boolean
      required: false
      description: Get extended properties in response
    advertisers_with:
      in: query
      name: with
      schema:
        type: string
        enum:
          - agency
      required: false
      description: Get related property in response
    agencies_with:
      in: query
      name: with
      schema:
        type: string
        enum:
          - organization
      required: false
      description: Get related property in response
    strategy_with:
      in: query
      name: with
      schema:
        type: string
        enum:
          - technology
          - location
          - ip_addresses
          - geofences
          - my_data
          - audience
          - contextual
          - deals
          - site_lists
          - supply
          - domain_restrictions
          - concepts
          - day_parts
          - fold_positions
      required: false
      description: Get related property in response
    q_required:
      in: query
      name: q
      schema:
        type: string
      required: true
      description: >
        Query search for filtering. This parameter can be used to filter results
        based on various fields.

        - `q=name=:{search}*` to find all results with names starting with
        "search".

        - `q=status==true` to find all active entities.

        - `q=id>=1000` to find all entities with id greater than or equal to
        1000.

        - `q=id==(1,2,3)` find specific entities by ID.

        Supported operators: ==, =:, !=, >, < , >=, <=.
    strategy_deals_with:
      in: query
      name: with
      schema:
        type: string
        enum:
          - strategy
          - campaign
          - advertiser
          - agency
      required: false
      description: Get related property in response
  requestBodies:
    audience_segment_cpm_estimate:
      $ref: '#/components/requestBodies/audience_segments_cpm_estimate'
    strategy_create:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  campaign_id:
                    type: integer
                    format: int32
                    example: 45
                  name:
                    type: string
                    maxLength: 128
                  media_type:
                    type: string
                    enum:
                      - DISPLAY
                      - VIDEO
                  goals:
                    allOf:
                      - type: object
                        required:
                          - goal_value
                      - $ref: '#/components/schemas/strategy_goals'
                  duration:
                    $ref: '#/components/schemas/strategy_duration'
                  inventory:
                    allOf:
                      - type: object
                        required:
                          - run_on_all_pmp
                          - run_on_all_exchanges
                      - $ref: '#/components/schemas/strategy_inventory'
                required:
                  - campaign_id
                  - name
                  - media_type
                  - goals
                  - duration
              - $ref: '#/components/schemas/strategy_full_request'
    strategy_update:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/strategy_full_request'
    campaign_bulk_update:
      content:
        application/json:
          schema:
            type: object
            properties:
              update:
                type: array
                uniqueItems: true
                minItems: 1
                items:
                  $ref: '#/components/schemas/campaign_bulk'
            required:
              - update
    budget_flight_bulk_update:
      content:
        application/json:
          schema:
            type: object
            properties:
              budget_flights:
                properties:
                  create:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/campaign_budget_flights_create'
                        - type: object
                          required:
                            - campaign_id
                          properties:
                            campaign_id:
                              type: integer
                              format: int32
                              example: 12
                  update:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/campaign_budget_flights'
                        - type: object
                          required:
                            - id
                          properties:
                            id:
                              type: integer
                              format: int32
                              example: 55
                              minimum: 1
                  delete:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          format: int32
                          example: 5
    campaign:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/campaign_create'
    contextual_segment_estimate:
      content:
        application/json:
          schema:
            title: Contextual Segment Estimate Request
            type: object
            required:
              - currency_code
            properties:
              currency_code:
                type: string
                example: USD
                minLength: 3
                maxLength: 3
              include:
                type: array
                items:
                  type: object
                  properties:
                    code:
                      type: string
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                    segments:
                      type: array
                      items:
                        type: object
                        properties:
                          targeting_segment_id:
                            type: integer
                            format: int32
                            example: 67
                          user_cpm:
                            type: number
              exclude:
                type: object
                properties:
                  code:
                    type: string
                  operator:
                    type: string
                    enum:
                      - AND
                      - OR
                  segments:
                    type: array
                    items:
                      type: object
                      properties:
                        targeting_segment_id:
                          type: integer
                          format: int32
                          example: 76
                        user_cpm:
                          type: number
    marketplace_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/marketplace_create'
    marketplace_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/marketplace_update'
    strategy_template_create:
      content:
        application/json:
          schema:
            type: object
            properties:
              organization_id:
                type: integer
                format: int32
                nullable: true
              agency_id:
                type: integer
                format: int32
                nullable: true
              advertiser_id:
                type: integer
                format: int32
                nullable: true
              global:
                type: boolean
                nullable: true
              name:
                type: string
                minLength: 1
                maxLength: 256
              description:
                type: string
                minLength: 1
                maxLength: 256
              template:
                type: string
            required:
              - name
              - description
              - template
          examples:
            GlobalTemplate:
              value:
                global: true
                name: valid strategy template (Global)
                description: this is an example of valid strategy template  at Global level
                template: 'key: value'
            OrganizationLevel:
              value:
                organization_id: 1
                name: valid strategy template (Organization)
                description: >-
                  this is an example of valid strategy template  at Organization
                  level
                template: 'key: value'
            AgencyLevel:
              value:
                agency_id: 190
                name: valid strategy template (Agency)
                description: this is an example of valid strategy template  at Agency level
                template: 'key: value'
            AdvertiserLevel:
              value:
                advertiser_id: 190
                name: valid strategy template (Advertiser)
                description: >-
                  this is an example of valid strategy template  at Advertiser
                  level
                template: 'key: value'
    attachment_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/attachment_create'
    attachment_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/attachment_update'
    target_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/target_create'
    target_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/target_update'
    strategy_bulk_update:
      content:
        application/json:
          schema:
            type: object
            properties:
              update:
                type: array
                items:
                  allOf:
                    - type: object
                      properties:
                        id:
                          type: integer
                          writeOnly: true
                          format: int32
                          example: 23
                      required:
                        - id
                    - $ref: '#/components/schemas/strategy_full_request'
    atomic_creative_create:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/atomic_creative_create'
              - $ref: '#/components/schemas/atomic_creative_creative'
              - $ref: '#/components/schemas/atomic_creative_vendor'
    atomic_creative_update:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/atomic_creative_update'
              - $ref: '#/components/schemas/atomic_creative_creative'
              - $ref: '#/components/schemas/atomic_creative_vendor'
    atomic_creative_bulk:
      content:
        application/json:
          schema:
            type: object
            properties:
              atomic_creatives:
                type: object
                properties:
                  create:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/atomic_creative_create'
                        - $ref: '#/components/schemas/atomic_creative_creative'
                        - $ref: '#/components/schemas/atomic_creative_vendor'
                  update:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            id:
                              type: integer
                              format: int32
                              example: 11
                        - $ref: '#/components/schemas/atomic_creative_update'
                        - $ref: '#/components/schemas/atomic_creative_creative'
                        - $ref: '#/components/schemas/atomic_creative_vendor'
    pixel_bundle_create:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                required:
                  - name
                  - pixel_type
                  - tag_type
                properties:
                  event_urls:
                    type: array
                    items:
                      type: string
                      maxLength: 2048
                    nullable: true
                  container_tags:
                    type: array
                    items:
                      type: string
                      maxLength: 1024
                    nullable: true
              - $ref: '#/components/schemas/pixel_bundle_create'
              - $ref: '#/components/schemas/pixel_bundle_base'
    pixel_bundle_update:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  version:
                    type: integer
                    format: int32
                    example: 4
              - $ref: '#/components/schemas/pixel_bundle_base'
    contract_create:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                required:
                  - organization_id
                  - currency_code
                  - effective_start_date
                  - effective_end_date
                  - platform_monthly_min
                  - exclude_agency_margin
                  - profit_share_fee_pct
                  - t1_as_fee_cpm
                  - t1_vads_fee_cpm
                  - t1_html5_fee_cpm
                  - standard_segment_cpm
                  - adaptive_segment_cpm
              - $ref: '#/components/schemas/contract_base'
    contract_update:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  version:
                    type: integer
                    format: int32
                    example: 44
              - $ref: '#/components/schemas/contract_base'
    organization_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/organization_create'
    organization_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/organization_update'
    id_list:
      content:
        application/json:
          schema:
            type: object
            properties:
              id:
                type: array
                example:
                  - 8
                  - 98
                  - 7
                minItems: 1
                items:
                  type: integer
                  format: int32
            required:
              - id
    settings_organization_update:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/settings_organization_update'
    new_strategy_plan_create:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  advertiser_id:
                    type: integer
                    format: int32
                    example: 7
                  campaign_plan_id:
                    type: integer
                    format: int32
                    example: 55
                  channels:
                    type: array
                    items:
                      type: string
              - $ref: '#/components/schemas/new_strategy_plan_full'
    new_strategy_plan_update:
      required: true
      content:
        application/json:
          schema:
            allOf:
              - type: object
                properties:
                  version:
                    type: integer
                    format: int32
                    example: 2
                  channels:
                    type: array
                    items:
                      type: string
              - $ref: '#/components/schemas/new_strategy_plan_full'
    campaign_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/campaign_update'
    campaign_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/campaign_create'
    dba:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/dba'
    audience_segments_cpm_estimate:
      description: Audience segments CPM estimate request
      content:
        application/json:
          schema:
            type: object
            required:
              - currency_code
            properties:
              currency_code:
                type: string
                example: USD
                minLength: 3
                maxLength: 3
              include:
                type: array
                items:
                  $ref: '#/components/schemas/audience_segments_group'
              exclude:
                $ref: '#/components/schemas/audience_segments_group'
    permission_check:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              organizations:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 10
              agencies:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 12
              advertisers:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 11
              campaigns:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 71
              strategies:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 17
    permission_v2_check:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              organizations:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 5
              agencies:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 6
              advertisers:
                type: array
                items:
                  type: integer
                  format: int32
                  example: 7
    concept_create:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/concept_create'
              - $ref: '#/components/schemas/concept_common'
    concept_update:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/concept_update'
              - $ref: '#/components/schemas/concept_common'
    concepts_bulk:
      content:
        application/json:
          schema:
            type: object
            properties:
              concepts:
                type: object
                properties:
                  update:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            id:
                              type: integer
                              format: int32
                              example: 32
                            status:
                              type: boolean
    segment_group_create:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/segment_group_create'
    segment_group_update:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/segment_group_update'
  responses:
    health_check:
      description: Health check response
      content:
        application/json:
          schema:
            title: health check response
            type: object
            properties:
              build_version:
                type: string
              database_connection:
                type: boolean
              latency:
                type: string
              node_conns:
                type: object
                properties:
                  acquired:
                    type: integer
                  constucting:
                    type: integer
                  idle:
                    type: integer
              node_max_conns:
                type: integer
              node_total_cons:
                type: integer
    error:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_response'
    deleted_new_strategy_plans:
      description: Deleted new strategy plans response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                nullable: true
              meta:
                type: object
                properties:
                  status:
                    type: string
                    example: success
    strategy:
      description: Strategy response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                allOf:
                  - $ref: '#/components/schemas/strategy_campaign_info'
                  - $ref: '#/components/schemas/strategy_full_response'
              meta:
                type: object
                properties:
                  status:
                    type: string
                    example: success
    strategy_bulk:
      description: strategies bulk update response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/strategy_full_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
    campaign:
      description: Campaign response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/campaign_full_with_inherited'
              meta:
                $ref: '#/components/schemas/single_metadata'
    campaign_bulk:
      description: Campaign bulk response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/campaign_bulk'
              meta:
                $ref: '#/components/schemas/list_metadata'
    collection:
      description: Collection response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                nullable: true
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
              meta:
                $ref: '#/components/schemas/list_metadata'
    contextual_segment_estimate:
      description: CPM estimate response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  cpm:
                    type: object
                    required:
                      - value
                      - contextual_cpm_min
                      - contextual_cpm_max
                    properties:
                      currency_code:
                        type: string
                        minLength: 3
                        maxLength: 3
                      value:
                        type: number
                        format: double
                        minimum: 0
                        maximum: 999999999999.99
                      includes_taxed_segments:
                        type: boolean
                      contextual_cpm_min:
                        type: number
                        format: double
                        minimum: 0
                        maximum: 999999999999.99
                      contextual_cpm_max:
                        type: number
                        format: double
                        minimum: 0
                        maximum: 999999999999.99
                  segments:
                    type: array
                    description: available only when extended
                    items:
                      $ref: '#/components/schemas/contextual_segment_short'
              meta:
                type: object
                properties:
                  status:
                    type: string
                    example: success
    targeting_segment_friendly_name:
      description: Targeting segment friendly name response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                nullable: true
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    external_code:
                      type: string
                    friendly_name:
                      type: string
                    vendor_id:
                      type: number
                    vendor_name:
                      type: string
                    dimension_id:
                      type: number
                    code:
                      type: string
                    frequency:
                      type: number
                    name:
                      type: string
                    retail_cpm:
                      type: number
                    objective_id:
                      type: number
                    targeting_vendor_id:
                      type: number
                    segment_objective_name:
                      type: string
              meta:
                type: object
                properties:
                  status:
                    type: string
                    example: success
    marketplace:
      description: Marketplace response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/marketplace_full_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_template_created:
      description: Strategy created response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  organization_id:
                    type: integer
                    nullable: true
                  agency_id:
                    type: integer
                    nullable: true
                  advertiser_id:
                    type: integer
                    nullable: true
                  global:
                    type: boolean
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  template:
                    type: object
                  created_on:
                    type: string
                    format: date-time
                    readOnly: true
                    nullable: true
                  updated_on:
                    type: string
                    format: date-time
                    readOnly: true
                    nullable: true
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_template_updated:
      description: Strategy updated response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  organization_id:
                    type: integer
                    nullable: true
                  agency_id:
                    type: integer
                    nullable: true
                  advertiser_id:
                    type: integer
                    nullable: true
                  global:
                    type: boolean
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  template:
                    type: object
                  created_on:
                    type: string
                    format: date-time
                    readOnly: true
                  updated_on:
                    type: string
                    format: date-time
                    readOnly: true
              meta:
                $ref: '#/components/schemas/single_metadata'
    target:
      description: Target response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/target_base'
              meta:
                $ref: '#/components/schemas/single_metadata'
    attachment:
      description: Attachment response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/attachment_base'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_extended:
      description: Strategy response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_full_extended'
              meta:
                $ref: '#/components/schemas/single_metadata'
    atomic_creative:
      description: Atomic creative response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/atomic_creative_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    atomic_creative_bulk:
      description: Atomic creative bulk response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/atomic_creative_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
              errors:
                $ref: '#/components/schemas/bulk_errors'
    supply_source:
      description: Supply source response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/supply_source_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    currency_rate:
      description: Currency rate response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/currency_rate_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    ad_server:
      description: Ad server response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/ad_server_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    site_list:
      description: Site list response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/site_list_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    timezone:
      description: Timezone response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/timezone_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_deal:
      description: Strategy deal response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_deal_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_day_part:
      description: Strategy day part response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_day_part_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_group:
      description: Strategy group response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_group_full'
              meta:
                $ref: '#/components/schemas/list_metadata'
    strategy_group_extended:
      description: Strategy group extended response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_group_full_extended'
              meta:
                $ref: '#/components/schemas/list_metadata'
    strategy_ip_address:
      description: Strategy IP address response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_ip_address_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_concept:
      description: Strategy concept response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_concept_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    targeting_segment:
      description: Targeting segment response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/targeting_segment_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_target_value:
      description: Strategy target value response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_target_value_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    new_strategy_plan_target_value:
      description: New strategy plan target value response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_plan_target_value_full'
              meta:
                $ref: '#/components/schemas/single_metadata'
    pixel_bundle:
      description: Pixel bundle response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/pixel_bundle_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    contract:
      description: Contract response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/contract_base_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    organization:
      description: Organization response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/organization_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    attachments_list:
      description: Attachments list response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/attachment_base'
              meta:
                $ref: '#/components/schemas/list_metadata'
    attachment_deleted:
      description: Attachment deleted response
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: '#/components/schemas/single_metadata'
    target_deleted:
      description: Target deleted response
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: '#/components/schemas/single_metadata'
    audit_log:
      description: Audit log response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    action:
                      type: string
                    date:
                      type: string
                      format: date-time
                    fields:
                      type: array
                      items:
                        type: object
                        properties:
                          field_name:
                            type: string
                          old_value:
                            type: string
                          new_value:
                            type: string
                    user_name:
                      type: string
                    user_id:
                      type: integer
                    collection:
                      type: string
                    entity_id:
                      type: integer
                    tool_name:
                      type: string
              meta:
                $ref: '#/components/schemas/list_metadata'
    audit_log_bulk:
      description: Audit log bulk response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    action:
                      type: string
                    date:
                      type: string
                      format: date-time
                    tool_name:
                      type: string
                    user_name:
                      type: string
                    user_id:
                      type: integer
                    collection:
                      type: string
                    entity_id:
                      type: integer
                    fields:
                      type: array
                      items:
                        type: object
                        properties:
                          field_name:
                            type: string
                          old_value:
                            type: string
                          new_value:
                            type: string
              meta:
                $ref: '#/components/schemas/list_metadata'
    new_strategy_plan:
      description: New strategy plan response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                allOf:
                  - type: object
                    properties:
                      campaign_start_date:
                        type: string
                        format: date-time
                        readOnly: true
                      campaign_end_date:
                        type: string
                        format: date-time
                        readOnly: true
                      campaign_zone_name:
                        type: string
                  - $ref: '#/components/schemas/new_strategy_plan_full_response'
              meta:
                type: object
                properties:
                  status:
                    type: string
                    example: success
    deleted_strategy_plans:
      description: Strategy plans deleted response
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: '#/components/schemas/single_metadata'
    strategy_friendly_names:
      description: Strategy friendly names response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/targeting_friendly_name'
              meta:
                $ref: '#/components/schemas/list_metadata'
    strategy_forecast_query:
      description: Strategy forecast query response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/strategy_forecast_query'
              meta:
                $ref: '#/components/schemas/single_metadata'
    dba_bulk:
      description: Dba bulk response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/dba'
              meta:
                $ref: '#/components/schemas/list_metadata'
    audience_segments_cpm_estimate:
      description: Audience segments CPM estimate response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  cpm:
                    type: object
                    required:
                      - audience_cpm_min
                      - audience_cpm_max
                    properties:
                      currency_code:
                        type: string
                        minLength: 3
                        maxLength: 3
                      includes_taxed_segments:
                        type: boolean
                      audience_cpm_min:
                        type: number
                        format: double
                        minimum: 0
                        maximum: 999999999999.99
                      audience_cpm_max:
                        type: number
                        format: double
                        minimum: 0
                        maximum: 999999999999.99
                  segments:
                    type: array
                    description: available only when extended
                    items:
                      $ref: '#/components/schemas/audience_segment_short'
              meta:
                $ref: '#/components/schemas/single_metadata'
    vendor_contracts_list:
      description: Vendor contracts list response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/vendor_contract'
              meta:
                $ref: '#/components/schemas/list_metadata'
    strategy_template_deleted:
      description: Strategy template deleted response
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: '#/components/schemas/single_metadata'
    list_roles:
      description: List roles response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                nullable: true
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    entity_type:
                      type: string
                    name:
                      type: string
                    must_include:
                      type: array
                      items:
                        type: number
                    must_exclude:
                      type: array
                      items:
                        type: number
              meta:
                $ref: '#/components/schemas/list_metadata'
    atomic_creative_collection:
      description: Atomic creative collection response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/atomic_creative_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
    atomic_creative_healthcheck:
      description: Atomic creative healthcheck response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/atomic_creative_healthcheck_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
    concepts_collection:
      description: Concepts collection response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/concepts_collection_short'
                    - $ref: '#/components/schemas/concept_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
    concept:
      description: Concept response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/concept_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    concepts_bulk:
      description: Concepts bulk response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/concept_response'
              meta:
                $ref: '#/components/schemas/list_metadata'
    search_result:
      description: Search result
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  organizations:
                    type: array
                    items:
                      $ref: '#/components/schemas/search_result'
                  agencies:
                    type: array
                    items:
                      $ref: '#/components/schemas/search_result'
                  advertisers:
                    type: array
                    items:
                      $ref: '#/components/schemas/search_result'
              meta:
                $ref: '#/components/schemas/list_metadata'
    list_target_values:
      description: List target values response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                nullable: true
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    dimension_id:
                      type: number
                    dimension_code:
                      type: string
                    parent_value_id:
                      type: number
                    name:
                      type: string
                    value:
                      type: number
                    code:
                      type: string
                    is_targetable:
                      type: boolean
                    full_path:
                      type: string
              meta:
                $ref: '#/components/schemas/list_metadata'
    list_technology_target_values:
      description: List technology target values
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                nullable: true
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: number
                    dimension:
                      type: string
                    name:
                      type: string
                    full_path:
                      type: string
                    value:
                      type: number
                    code:
                      type: string
              meta:
                $ref: '#/components/schemas/list_metadata'
    targeting_segment_objective:
      description: Targeting segment objectives response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/targeting_segment_objective_response'
              meta:
                $ref: '#/components/schemas/single_metadata'
    segment_group_collection:
      description: Audience group collection response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      example: 1234
                    name:
                      type: string
                      example: My Audience Group
                    type:
                      type: string
                      example: CONTEXTUAL
                    organization_id:
                      type: integer
                      example: 1234
                    status:
                      type: boolean
                      example: true
                    segment_subgroup:
                      type: array
                      items:
                        type: object
                        properties:
                          segment_operator:
                            type: string
                            example: AND
                          segment_members:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  example: My Audience Group
                                segment_id:
                                  type: integer
                                  example: 5678
                                segment_type:
                                  type: string
                                  example: CONTEXTUAL
                                full_path:
                                  type: string
                                  example: My Audience Group Parent - My Audience Group
                                objective:
                                  type: string
                                  example: Custom
                                cpm:
                                  type: number
                                  example: 0.5
                                code:
                                  type: string
                                  example: SEG123
                                uniques:
                                  type: integer
                                  example: 1500
              meta:
                $ref: '#/components/schemas/list_metadata'
    segment_group:
      description: Audience group response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  name:
                    type: string
                    example: My Audience Group
                  type:
                    type: string
                    example: CONTEXTUAL
                  organization_id:
                    type: integer
                    example: 1234
                  status:
                    type: boolean
                    example: true
                  segment_subgroup:
                    type: array
                    items:
                      type: object
                      properties:
                        segment_operator:
                          type: string
                          example: AND
                        segment_members:
                          type: array
                          items:
                            type: object
                            properties:
                              segment_id:
                                type: integer
                                format: int32
                              segment_type:
                                type: string
                                enum:
                                  - CONTEXTUAL
                                  - 3P
              meta:
                $ref: '#/components/schemas/single_metadata'
    segment_group_single_get:
      description: Audience group response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  name:
                    type: string
                    example: My Audience Group
                  type:
                    type: string
                    example: CONTEXTUAL
                  organization_id:
                    type: integer
                    example: 1234
                  status:
                    type: boolean
                    example: true
                  segment_subgroup:
                    type: array
                    items:
                      type: object
                      properties:
                        segment_operator:
                          type: string
                          example: AND
                        segment_members:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: My Audience Group
                              segment_id:
                                type: integer
                                example: 5678
                              segment_type:
                                type: string
                                example: CONTEXTUAL
                              full_path:
                                type: string
                                example: My Audience Group Parent - My Audience Group
                              objective:
                                type: string
                                example: Custom
                              cpm:
                                type: number
                                example: 0.5
                              code:
                                type: string
                                example: SEG123
                              uniques:
                                type: integer
                                example: 1500
              meta:
                $ref: '#/components/schemas/single_metadata'
    segment_group_assignments:
      description: Audience group assignments response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      example: 1234
                    strategy_id:
                      type: integer
                      example: 5678
                    strategy_name:
                      type: string
                      example: My Strategy
                    campaign_id:
                      type: integer
                      example: 91011
                    campaign_name:
                      type: string
                      example: My Campaign
                    advertiser_id:
                      type: integer
                      example: 121314
                    advertiser_name:
                      type: string
                      example: My Advertiser
                    agency_id:
                      type: integer
                      example: 151617
                    agency_name:
                      type: string
                      example: My Agency
              meta:
                $ref: '#/components/schemas/list_metadata'
  securitySchemes:
    Auth0:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://auth.mediamath.com/authorize
          scopes:
            offline_access: for refresh tokens
            manage:services: normal access
          tokenUrl: https://auth.mediamath.com/oauth/token
          refreshUrl: https://auth.mediamath.com/authorize?scope=offline_access
security:
  - Auth0:
      - offline_access
      - manage:services
servers:
  - url: https://api.mediamath.com/api/v3.0
    description: Live Server
tags:
  - name: Organizations
    description: Organizations
  - name: Agencies
    description: Agencies
  - name: Advertisers
    description: Advertisers
  - name: Campaigns
    description: Campaigns
  - name: Campaigns Budget Flights
    description: Campaigns Budget Flights
  - name: Campaign Plans
    description: Campaign Plans
  - name: Strategies
    description: Strategies
  - name: Strategy Parameters
    description: Strategy Parameters
  - name: Strategy Templates
    description: Strategy Templates
  - name: New Strategy Plans
    description: New Strategy Plans
  - name: Targeting
    description: Targeting
  - name: Targeting Attachments
    description: TargetingAttachments
  - name: Targeting Segments
    description: Targeting Segments
  - name: Targeting Segment Objectives
    description: Targeting Segment Objectives
  - name: Vendor Contracts
    description: Vendor Contracts
  - name: Contracts
    description: Contracts
  - name: Audience Vendors
    description: Audience Vendors
  - name: Vendors
    description: Vendors
  - name: Atomic Creatives
    description: Atomic Creatives
  - name: Concepts
    description: Concepts
  - name: Creatives
    description: Creatives
  - name: Pixel Bundles
    description: Pixel Bundles
  - name: Pixel Providers
    description: Pixel Providers
  - name: Marketplaces
    description: Marketplaces
  - name: Users
    description: Users
  - name: User Permissions
    description: User Permissions
  - name: Enterprise Controls
    description: Enterprise Controls
  - name: General
    description: General
  - name: Currency Rates
    description: Currency Rates
  - name: Site Lists
    description: Site Lists
  - name: Timezones
    description: Timezones
  - name: Verticals
    description: Verticals
  - name: Supply Sources
    description: Supply Sources
  - name: Ad Servers
    description: Ad Servers
  - name: Segment Groups
    description: Segment Groups
