openapi: 3.1.0
info:
  title: Platform API
  description: >
    The Talroo Platform API provides programmatic management of many of the
    objects that are available in the Talroo Ad Platform (TAP). This API allows
    our TAP customers the ability to customize their experience a little bit by
    building their own applications that pull in only the data that they're
    interested in seeing or integrating TAP data with their existing
    applications. While TAP has many more features, the Platform API exposes
    lower-level flexibility to manage objects when you want and how you want.
  version: v5
servers:
  - url: https://api.talroo.com/v5
    description: Generated server url
paths:
  /sources/{sourceId}/jobs/{jobReference}/job-expansions:
    get:
      tags:
        - Job Expansions
      summary: Get Job Expansions by Job Reference
      operationId: getJobExpansionsBySourceAndReference
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: jobReference
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=title,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, title,
            createdAt, modifiedAt, lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, title, createdAt, modifiedAt,
            lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobExpansion'
      security:
        - bearer:
            - title-expansions:read
    post:
      tags:
        - Job Expansions
      summary: Create a Job Expansion
      operationId: createJobExpansionBySourceIdAndJobReference
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: jobReference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobExpansionCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExpansion'
      deprecated: true
      security:
        - bearer:
            - title-expansions
  /sources/{sourceId}/job-expansions:
    get:
      tags:
        - Job Expansions
      summary: Get Job Expansions by Source ID
      operationId: getJobExpansionsBySource
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=title,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, title,
            createdAt, modifiedAt, lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, title, createdAt, modifiedAt,
            lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobExpansion'
      security:
        - bearer:
            - title-expansions:read
    post:
      tags:
        - Job Expansions
      summary: Create a Job Expansion
      operationId: createJobExpansionBySourceWithFilters
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobExpansionCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExpansion'
      security:
        - bearer:
            - title-expansions
  /segments/{segmentId}/scheduling/pauses:
    get:
      tags:
        - Scheduling - Pauses
      summary: Get Platform Scheduled Pause by Segment ID
      operationId: getScheduledPausesBySegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=pauseOn,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, pauseOn,
            completed, createdAt, modifiedAt, campaignId,
            segmentId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, pauseOn, completed, createdAt, modifiedAt,
            campaignId, segmentId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageScheduledPause'
      security:
        - bearer:
            - advertiser:read
    post:
      tags:
        - Scheduling - Pauses
      summary: Create a Platform Scheduled Pause for a Segment
      operationId: createScheduledPauseForSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledPauseUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPause'
      security:
        - bearer:
            - advertiser
  /segments/{segmentId}/pause:
    post:
      tags:
        - Job Segments
      summary: Set a JobSegment to Paused
      operationId: pauseSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /segments/{segmentId}/launch:
    post:
      tags:
        - Job Segments
      summary: Set a JobSegment to Live
      operationId: launchSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /segments/{segmentId}/copy:
    post:
      tags:
        - Job Segments
      summary: Create a new JobSegment from an existing JobSegment
      operationId: copySegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobSegmentCopy'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /segments/{segmentId}/archive:
    post:
      tags:
        - Job Segments
      summary: Archive a JobSegment
      operationId: archiveSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /scheduling/monthly-budget-changes/{monthlyBudgetChangeId}/acknowledge:
    post:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Acknowledge a failed Monthly Budget Change
      operationId: acknowledgeFailedMonthlyBudgetChange
      parameters:
        - name: monthlyBudgetChangeId
          in: path
          description: Scheduled Monthly Budget Change ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyBudgetChange'
      security:
        - bearer:
            - advertiser
  /pools/{poolId}/campaigns:
    get:
      tags:
        - Job Campaigns
      summary: Get JobCampaigns by JobPool
      operationId: getCampaignsByPool
      parameters:
        - name: poolId
          in: path
          description: Job Pool ID
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=modifiedAt,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, modifiedAt,
            status, mtdSpend, createdAt, name, applyOrder, adType,
            poolId<br><strong>Nested fields</strong><br>pool.id, pool.createdAt,
            pool.name, pool.isCpa, pool.modifiedAt, pool.customer.id,
            pool.customer.createdAt, pool.customer.name,
            pool.customer.modifiedAt, pool.customerId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, modifiedAt, status, mtdSpend, createdAt,
            name, applyOrder, adType, poolId<br><strong>Nested
            fields</strong><br>pool.id, pool.createdAt, pool.name, pool.isCpa,
            pool.modifiedAt, pool.customer.id, pool.customer.createdAt,
            pool.customer.name, pool.customer.modifiedAt, pool.customerId
          required: false
          schema:
            type: string
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
                - SURVEY_STATUS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
                - surveyStatus
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobCampaign'
      security:
        - bearer:
            - campaigns:read
    post:
      tags:
        - Job Campaigns
      summary: Create a JobCampaign
      operationId: createCampaign
      parameters:
        - name: poolId
          in: path
          description: Job Pool ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobCampaignCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /oauth2/token:
    post:
      tags:
        - OAuth2
      operationId: oauth2Token
      parameters:
        - name: Authorization
          in: header
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AuthorizationCodeTokenRequest'
                - $ref: '#/components/schemas/ClientCredentialsRequest'
                - $ref: '#/components/schemas/PasswordTokenRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
      security:
        - basic: []
  /jobs/{jobId}/job-expansions:
    get:
      tags:
        - Job Expansions
      summary: Get Job Expansions by Job ID
      operationId: getJobExpansionsByJob
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=title,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, title,
            createdAt, modifiedAt, lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, title, createdAt, modifiedAt,
            lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobExpansion'
      security:
        - bearer:
            - title-expansions:read
    post:
      tags:
        - Job Expansions
      summary: Create a Job Expansion
      operationId: createJobExpansionByJob
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobExpansionCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExpansion'
      deprecated: true
      security:
        - bearer:
            - title-expansions
  /jobs/title-suggestions:
    post:
      tags:
        - Jobs
      summary: Get title suggestions for a Title And Description
      operationId: createJobTitleSuggestions
      parameters:
        - name: sortSetting
          in: query
          required: false
          schema:
            type: string
            enum:
              - BY_RELEVANCE
              - BY_CTR
        - name: blendWeight
          in: query
          required: false
          schema:
            type: number
            format: double
            default: 0.1
        - name: count
          in: query
          required: false
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TitleSuggestionCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TitleSuggestion'
      security:
        - bearer:
            - title-expansions
  /jobs/status:
    post:
      tags:
        - Jobs
      summary: Get Several Job's status with a List of ID's
      operationId: getJobStatuses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobStatusRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/JobStatusResponse'
      security:
        - bearer:
            - job:status:read
  /jobs/llm-title-suggestions:
    post:
      tags:
        - Jobs
      summary: Generate LLM-based title suggestions from title and description
      operationId: createLlmJobTitleSuggestions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TitleSuggestionCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LlmTitleSuggestion'
      security:
        - bearer:
            - title-expansions
  /job-expansions/bulk:
    post:
      tags:
        - Job Expansions
      summary: Create Job Expansions in bulk
      operationId: createJobExpansions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemBatchJobExpansionBulkCreate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemBatchJobExpansion'
      security:
        - bearer:
            - title-expansions
  /customers/me/recommended-cpc:
    post:
      tags:
        - Click Volume Estimate
      summary: Recommend the CPC based on the volume
      operationId: recommendedCpcByVolume
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecommendedCpcByVolumeResourceRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendedCpcByVolumeResourceResponse'
      security:
        - bearer:
            - advertiser:read
  /customers/me/recommended-cpc-by-budget:
    post:
      tags:
        - Click Volume Estimate
      summary: Recommend the CPC based on the budget
      operationId: recommendedCpcByBudget
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecommendedCpcByBudgetResourceRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendedCpcByBudgetResourceResponse'
      security:
        - bearer:
            - advertiser:read
  /customers/me/campaign-boost:
    post:
      tags:
        - Click Volume Estimate
      summary: Predict the number of applications and the number of clicks for jobs
      operationId: campaignBoost
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CampaignBoostResourceRequest'
              maxItems: 200
              minItems: 1
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CampaignBoostResourceResponse'
      security:
        - bearer:
            - advertiser:read
  /customers/me/app-clients:
    get:
      tags:
        - App Clients
      summary: Get AppClients
      operationId: getMyAppClients
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=name,desc&sort=clientId,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>name, clientId,
            createdAt, customerId<br><strong>Nested
            fields</strong><br>customer.id, customer.createdAt, customer.name,
            customer.modifiedAt
          required: false
          schema:
            type: array
            items:
              type: string
              example: name,asc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAppClient'
      security:
        - bearer:
            - integration
    post:
      tags:
        - App Clients
      summary: Create an AppClient
      operationId: createAppClient
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppClientUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppClient'
      security:
        - bearer:
            - integration
  /campaigns/{campaignId}/segments:
    get:
      tags:
        - Job Segments
      summary: Get a JobCampaign's JobSegments
      operationId: getSegmentsByCampaign
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name, status,
            applyOrder, mtdSpend, createdAt, modifiedAt,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name, status, applyOrder, mtdSpend,
            createdAt, modifiedAt, campaignId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
            uniqueItems: true
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobSegment'
      security:
        - bearer:
            - advertiser:read
    post:
      tags:
        - Job Segments
      summary: Create a JobSegment
      operationId: createSegment
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobSegmentUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /campaigns/{campaignId}/scheduling/pauses:
    get:
      tags:
        - Scheduling - Pauses
      summary: Get Platform Scheduled Pause by Campaign ID
      operationId: getScheduledPausesByCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=pauseOn,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, pauseOn,
            completed, createdAt, modifiedAt, campaignId,
            segmentId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, pauseOn, completed, createdAt, modifiedAt,
            campaignId, segmentId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageScheduledPause'
      security:
        - bearer:
            - advertiser:read
    post:
      tags:
        - Scheduling - Pauses
      summary: Create a Platform Scheduled Pause
      operationId: createScheduledPauseForCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledPauseUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPause'
      security:
        - bearer:
            - advertiser
  /campaigns/{campaignId}/scheduling/one-time-budgets:
    get:
      tags:
        - Scheduling - One Time Budgets
      summary: Get OneTimeBudgets by Campaign
      operationId: getOneTimeBudgetsByCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=start,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, start, end,
            rollover, createdAt, modifiedAt, started, completed, launchOnStart,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, start, end, rollover, createdAt,
            modifiedAt, started, completed, launchOnStart,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageOneTimeBudget'
      security:
        - bearer:
            - advertiser:read
    post:
      tags:
        - Scheduling - One Time Budgets
      summary: Create a OneTimeBudget
      description: >-
        **NOTE:** By default, non-LIVE Campaigns will be launched when the
        OneTimeBudget is started. To change this behavior, set the
        `launchOnStart` property in the request body to `false`.
      operationId: createOneTimeBudget
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneTimeBudgetUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OneTimeBudget'
      security:
        - bearer:
            - advertiser
  /campaigns/{campaignId}/scheduling/monthly-budget-changes:
    get:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Get Monthly Budget Changes by Campaign
      operationId: getMonthlyBudgetChangesByCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=applyOn,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, applyOn,
            completed, failed, createdAt, modifiedAt,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, applyOn, completed, failed, createdAt,
            modifiedAt, campaignId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageMonthlyBudgetChange'
      security:
        - bearer:
            - advertiser:read
    post:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Create a Monthly Budget Change for a Campaign
      operationId: createMonthlyBudgetChange
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonthlyBudgetChangeUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyBudgetChange'
      security:
        - bearer:
            - advertiser
  /campaigns/{campaignId}/pause:
    post:
      tags:
        - Job Campaigns
      summary: Set a JobCampaign to Paused
      operationId: pauseCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
        - name: reasonId
          in: query
          description: '[Optional] Pause Reason ID. See Enum - Pause Reasons'
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /campaigns/{campaignId}/launch:
    post:
      tags:
        - Job Campaigns
      summary: Set a JobCampaign to Live
      operationId: launchCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /campaigns/{campaignId}/copy:
    post:
      tags:
        - Job Campaigns
      summary: Create a new JobCampaign from an existing JobCampaign
      operationId: copyCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobCampaignCopy'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /campaigns/{campaignId}/archive:
    post:
      tags:
        - Job Campaigns
      summary: Archive a JobCampaign
      operationId: archiveCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /applications/questions/validate:
    post:
      tags:
        - Application Questions
      summary: Validate that Application Questions are in the Talroo format
      operationId: validateApplicationQuestions
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items: {}
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApplicationQuestionsValidateResponse'
      security:
        - bearer:
            - advertiser:read
  /segments/{segmentId}:
    get:
      tags:
        - Job Segments
      summary: Get a JobSegment by ID
      operationId: getSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser:read
    patch:
      tags:
        - Job Segments
      summary: Update a JobSegment
      operationId: updateSegment
      parameters:
        - name: segmentId
          in: path
          description: Talroo Job Segment ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobSegmentUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobSegment'
      security:
        - bearer:
            - advertiser
  /scheduling/pauses/{pauseId}:
    get:
      tags:
        - Scheduling - Pauses
      summary: Get a Scheduled Pause by ID
      operationId: getScheduledPause
      parameters:
        - name: pauseId
          in: path
          description: Scheduled Pause ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPause'
      security:
        - bearer:
            - advertiser:read
    delete:
      tags:
        - Scheduling - Pauses
      summary: Delete a Scheduled Pause
      operationId: deleteScheduledPause
      parameters:
        - name: pauseId
          in: path
          description: Scheduled Pause ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
      security:
        - bearer:
            - advertiser
    patch:
      tags:
        - Scheduling - Pauses
      summary: Update a Platform Scheduled Pause
      operationId: updateScheduledPause
      parameters:
        - name: pauseId
          in: path
          description: Scheduled Pause ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledPauseUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPause'
      security:
        - bearer:
            - advertiser
  /scheduling/one-time-budgets/{oneTimeBudgetId}:
    get:
      tags:
        - Scheduling - One Time Budgets
      summary: Get a OneTimeBudget by ID
      operationId: getOneTimeBudget
      parameters:
        - name: oneTimeBudgetId
          in: path
          description: One Time Budget ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OneTimeBudget'
      security:
        - bearer:
            - advertiser:read
    delete:
      tags:
        - Scheduling - One Time Budgets
      summary: Delete a OneTimeBudget
      operationId: deleteOneTimeBudget
      parameters:
        - name: oneTimeBudgetId
          in: path
          description: One Time Budget ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
      security:
        - bearer:
            - advertiser
    patch:
      tags:
        - Scheduling - One Time Budgets
      summary: Update a OneTimeBudget
      description: >-
        **NOTE:** By default, non-LIVE Campaigns will be launched when the
        OneTimeBudget is started. To change this behavior, set the
        `launchOnStart` property in the request body to `false`.
      operationId: updateOneTimeBudget
      parameters:
        - name: oneTimeBudgetId
          in: path
          description: One Time Budget ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneTimeBudgetUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OneTimeBudget'
      security:
        - bearer:
            - advertiser
  /scheduling/monthly-budget-changes/{monthlyBudgetChangeId}:
    get:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Get a Monthly Budget Change by ID
      operationId: getMonthlyBudgetChange
      parameters:
        - name: monthlyBudgetChangeId
          in: path
          description: Scheduled Monthly Budget Change ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyBudgetChange'
      security:
        - bearer:
            - advertiser:read
    delete:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Delete a Monthly Budget Change
      operationId: deleteMonthlyBudgetChange
      parameters:
        - name: monthlyBudgetChangeId
          in: path
          description: Scheduled Monthly Budget Change ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
      security:
        - bearer:
            - advertiser
    patch:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Update a Monthly Budget Change
      operationId: updateMonthlyBudgetChange
      parameters:
        - name: monthlyBudgetChangeId
          in: path
          description: Scheduled Monthly Budget Change ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonthlyBudgetChangeUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyBudgetChange'
      security:
        - bearer:
            - advertiser
  /job-expansions/{expansionId}:
    get:
      tags:
        - Job Expansions
      summary: Get a Job Expansion by ID
      operationId: getJobExpansion
      parameters:
        - name: expansionId
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExpansion'
      security:
        - bearer:
            - title-expansions:read
    delete:
      tags:
        - Job Expansions
      summary: Delete a Job Expansion
      operationId: deleteJobExpansion
      parameters:
        - name: expansionId
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
      security:
        - bearer:
            - title-expansions
    patch:
      tags:
        - Job Expansions
      summary: Update a Job Expansion
      operationId: updateJobExpansion
      parameters:
        - name: expansionId
          in: path
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobExpansionUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobExpansion'
      security:
        - bearer:
            - title-expansions
  /campaigns/{campaignId}:
    get:
      tags:
        - Job Campaigns
      summary: Get a JobCampaign by ID
      operationId: getCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
                - SURVEY_STATUS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
                - surveyStatus
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns:read
    patch:
      tags:
        - Job Campaigns
      summary: Update a JobCampaign
      operationId: updateCampaign
      parameters:
        - name: campaignId
          in: path
          description: Talroo Job Campaign ID
          required: true
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobCampaignUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCampaign'
      security:
        - bearer:
            - campaigns
  /status:
    get:
      tags:
        - Status
      operationId: status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
  /segments/{segmentId}/applications:
    get:
      tags:
        - Job Applications
      summary: Get Applications by Segment ID
      operationId: getApplicationsBySegmentId
      parameters:
        - name: segmentId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=tlrApplicationId,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id,
            tlrApplicationId, applicationTime, completed, createdAt, tlrSid,
            qualified, redirectUrl, campaignId, segmentId<br><strong>Nested
            fields</strong><br>job.jobId, job.sourceId, job.jobReference,
            job.originalJobReference, job.company, job.title, job.zipcode,
            job.city, job.state, job.url, applicant.firstName,
            applicant.lastName, applicant.phone, applicant.emailAddress,
            applicant.address, applicant.city, applicant.state,
            applicant.zipcode, applicant.country, applicant.userAgent,
            campaign.id, campaign.modifiedAt, campaign.status,
            campaign.mtdSpend, campaign.createdAt, campaign.name,
            campaign.applyOrder, campaign.adType, campaign.pool.id,
            campaign.pool.createdAt, campaign.pool.name, campaign.pool.isCpa,
            campaign.pool.modifiedAt, campaign.pool.customer.id,
            campaign.pool.customer.createdAt, campaign.pool.customer.name,
            campaign.pool.customer.modifiedAt, campaign.pool.customerId,
            campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, tlrApplicationId, applicationTime,
            completed, createdAt, tlrSid, qualified, redirectUrl, campaignId,
            segmentId<br><strong>Nested fields</strong><br>job.jobId,
            job.sourceId, job.jobReference, job.originalJobReference,
            job.company, job.title, job.zipcode, job.city, job.state, job.url,
            applicant.firstName, applicant.lastName, applicant.phone,
            applicant.emailAddress, applicant.address, applicant.city,
            applicant.state, applicant.zipcode, applicant.country,
            applicant.userAgent, campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - resume
                - qualifyingQuestionAnswers
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobApplication'
      security:
        - bearer:
            - advertiser:read
  /reports/live-jobs/segments:
    get:
      tags:
        - Reports
      operationId: getLiveJobCountBySegment
      parameters:
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)
          required: false
          schema: {}
        - name: next
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: previous
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 50
            maximum: 5000
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorPageJobCountBySegmentInteger'
      security:
        - bearer:
            - advertiser:read
  /reports/live-jobs/campaigns:
    get:
      tags:
        - Reports
      operationId: getLiveJobCountByCampaign
      parameters:
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)
          required: false
          schema: {}
        - name: next
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: previous
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 50
            maximum: 5000
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorPageJobCountByCampaignInteger'
      security:
        - bearer:
            - advertiser:read
  /pools/{poolId}:
    get:
      tags:
        - Job Pools
      summary: Get a JobPool by ID
      operationId: getPool
      parameters:
        - name: poolId
          in: path
          description: Job Pool ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobPool'
      security:
        - bearer:
            - advertiser:read
  /pause-reasons:
    get:
      tags:
        - Enum - Pause Reasons
      summary: Get Pause Reasons
      operationId: getPauseReasons
      parameters:
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=id,asc)<br><br><strong>Supported fields</strong>
            (different for each endpoint)<br>id
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagePauseReason'
      security:
        - bearer:
            - advertiser:read
  /pause-reasons/{pauseReasonId}:
    get:
      tags:
        - Enum - Pause Reasons
      summary: Get a Pause Reason by ID
      operationId: getPauseReason
      parameters:
        - name: pauseReasonId
          in: path
          description: Pause Reason ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PauseReason'
      security:
        - bearer:
            - advertiser:read
  /locations/us/zipcodes:
    get:
      tags:
        - Locations - ZIP Codes
      summary: Get US ZipCodes
      operationId: getZipcodes
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=id,asc)<br><br><strong>Supported fields</strong>
            (different for each endpoint)<br>id
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageZipCity'
      security:
        - bearer:
            - location:read
  /locations/us/zipcodes/{zipCode}:
    get:
      tags:
        - Locations - ZIP Codes
      summary: Get a US ZipCode By ZipCode
      operationId: getZipcode
      parameters:
        - name: zipCode
          in: path
          description: ZipCode - 5 digits
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZipCity'
      security:
        - bearer:
            - location:read
  /locations/us/states:
    get:
      tags:
        - Locations - States
      summary: Get States
      operationId: getStates
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=abbreviation,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, abbreviation,
            name
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, abbreviation, name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageState'
      security:
        - bearer:
            - location:read
  /locations/us/states/{stateId}:
    get:
      tags:
        - Locations - States
      summary: Get a State by ID
      operationId: getState
      parameters:
        - name: stateId
          in: path
          description: State ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/State'
      security:
        - bearer:
            - location:read
  /locations/us/states/{stateId}/zipcodes:
    get:
      tags:
        - Locations - ZIP Codes
      summary: Get US ZipCodes by US State
      operationId: getZipcodesByState
      parameters:
        - name: stateId
          in: path
          description: State ID. See Locations - States
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=id,asc)<br><br><strong>Supported fields</strong>
            (different for each endpoint)<br>id
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageZipCity'
      security:
        - bearer:
            - location:read
  /locations/us/states/{stateId}/counties:
    get:
      tags:
        - Locations - Counties
      summary: Get US Counties by US State
      operationId: getCountiesByState
      parameters:
        - name: stateId
          in: path
          description: State ID. See Locations - States
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCounty'
      security:
        - bearer:
            - location:read
  /locations/us/states/{stateId}/cities:
    get:
      tags:
        - Locations - Cities
      summary: Get US Cities By US State
      operationId: getCitiesByState
      parameters:
        - name: stateId
          in: path
          description: State ID. See Locations - States
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCity'
      security:
        - bearer:
            - location:read
  /locations/us/counties:
    get:
      tags:
        - Locations - Counties
      summary: Get US Counties
      operationId: getCounties
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCounty'
      security:
        - bearer:
            - location:read
  /locations/us/counties/{countyId}:
    get:
      tags:
        - Locations - Counties
      summary: Get a US County by ID
      operationId: getCounty
      parameters:
        - name: countyId
          in: path
          description: County ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/County'
      security:
        - bearer:
            - location:read
  /locations/us/counties/{countyId}/cities:
    get:
      tags:
        - Locations - Cities
      summary: Get US Cities By US County
      operationId: getCitiesByCounty
      parameters:
        - name: countyId
          in: path
          description: County ID. See Locations - Counties
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCity'
      security:
        - bearer:
            - location:read
  /locations/us/cities:
    get:
      tags:
        - Locations - Cities
      summary: Get US Cities
      operationId: getCities
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name, cityState
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCity'
      security:
        - bearer:
            - location:read
  /locations/us/cities/{cityId}:
    get:
      tags:
        - Locations - Cities
      summary: Get a US City by ID
      operationId: getCity
      parameters:
        - name: cityId
          in: path
          description: City ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/City'
      security:
        - bearer:
            - location:read
  /locations/us/cities/{cityId}/zipcodes:
    get:
      tags:
        - Locations - ZIP Codes
      summary: Get US ZipCodes by US City
      operationId: getZipcodesByCity
      parameters:
        - name: cityId
          in: path
          description: City ID. See Locations - Cities
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=id,asc)<br><br><strong>Supported fields</strong>
            (different for each endpoint)<br>id
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageZipCity'
      security:
        - bearer:
            - location:read
  /jobs/{id}:
    get:
      tags:
        - Jobs
      summary: Get a Job by ID
      operationId: getJobById
      parameters:
        - name: id
          in: path
          description: Platform ID of Job
          required: true
          schema:
            type: string
        - name: report
          in: query
          description: '[Optional] Additional info related to the job'
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EXPANSION
        - name: expand
          in: query
          description: '[Optional] Additional info related to the job'
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - expansion
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
      security:
        - bearer:
            - jobs:read
  /jobs/{id}/title-suggestions:
    get:
      tags:
        - Jobs
      summary: Get title suggestions for a Job
      operationId: getJobTitleSuggestions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: sortSetting
          in: query
          required: false
          schema:
            type: string
            enum:
              - BY_RELEVANCE
              - BY_CTR
        - name: blendWeight
          in: query
          required: false
          schema:
            type: number
            format: double
            default: 0.1
        - name: count
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TitleSuggestion'
      security:
        - bearer:
            - title-expansions:read
  /jobs/{id}/status:
    get:
      tags:
        - Jobs
      summary: Get a Job Status by ID
      operationId: getJobStatus
      parameters:
        - name: id
          in: path
          description: Platform ID of Job
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusResponse'
      security:
        - bearer:
            - job:status:read
  /jobs/{id}/shareable-links:
    get:
      tags:
        - Jobs
      summary: Get shareable links to the Job
      operationId: getJobShareableLinks
      parameters:
        - name: id
          in: path
          description: Platform ID of Job
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobShareableLinks'
      security:
        - bearer:
            - jobs:read
  /jobs/{id}/llm-title-suggestions:
    get:
      tags:
        - Jobs
      summary: Get LLM-based title suggestions for a job
      operationId: getLlmJobTitleSuggestions
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LlmTitleSuggestion'
      security:
        - bearer:
            - title-expansions:read
  /job-expansions:
    get:
      tags:
        - Job Expansions
      summary: Get all Job Expansions
      operationId: getJobExpansions
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=title,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, title,
            createdAt, modifiedAt, lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, title, createdAt, modifiedAt,
            lastImported, sourceId<br><strong>Nested
            fields</strong><br>source.id, source.status, source.name,
            source.createdAt, source.modifiedAt, source.pool.id,
            source.pool.createdAt, source.pool.name, source.pool.isCpa,
            source.pool.modifiedAt, source.pool.customer.id,
            source.pool.customer.createdAt, source.pool.customer.name,
            source.pool.customer.modifiedAt, source.pool.customerId,
            source.poolId
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobExpansion'
      security:
        - bearer:
            - title-expansions:read
  /dispositions/types:
    get:
      tags:
        - Dispositions
      summary: Get all Disposition Types
      operationId: getDispositionTypes
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            Sorting criteria in the format: property,(asc|desc). Default sort
            order is ascending. Multiple sort criteria are supported.
          required: false
          schema:
            items: {}
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)
          required: false
          schema: {}
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDispositionType'
      security:
        - bearer:
            - advertiser:read
  /customers/me:
    get:
      tags:
        - Job Customers
      summary: Get my Customer
      operationId: getMyCustomer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCustomer'
      security:
        - bearer:
            - customer:read
  /customers/me/segments:
    get:
      tags:
        - Job Segments
      summary: Get my JobSegments
      operationId: getMySegments
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name, status,
            applyOrder, mtdSpend, createdAt, modifiedAt,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name, status, applyOrder, mtdSpend,
            createdAt, modifiedAt, campaignId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
            uniqueItems: true
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobSegment'
      security:
        - bearer:
            - advertiser:read
  /customers/me/scheduling/pauses:
    get:
      tags:
        - Scheduling - Pauses
      summary: Get my Scheduled Pauses
      operationId: getMyScheduledPauses
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=pauseOn,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, pauseOn,
            completed, createdAt, modifiedAt, campaignId,
            segmentId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, pauseOn, completed, createdAt, modifiedAt,
            campaignId, segmentId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageScheduledPause'
      security:
        - bearer:
            - advertiser:read
  /customers/me/scheduling/one-time-budgets:
    get:
      tags:
        - Scheduling - One Time Budgets
      summary: Get my OneTimeBudgets
      operationId: getMyOneTimeBudgets
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=start,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, start, end,
            rollover, createdAt, modifiedAt, started, completed, launchOnStart,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, start, end, rollover, createdAt,
            modifiedAt, started, completed, launchOnStart,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageOneTimeBudget'
      security:
        - bearer:
            - advertiser:read
  /customers/me/scheduling/monthly-budget-changes:
    get:
      tags:
        - Scheduling - Monthly Budget Changes
      summary: Get my Monthly Budget Changes
      operationId: getMyMonthlyBudgetChanges
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=applyOn,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, applyOn,
            completed, failed, createdAt, modifiedAt,
            campaignId<br><strong>Nested fields</strong><br>campaign.id,
            campaign.modifiedAt, campaign.status, campaign.mtdSpend,
            campaign.createdAt, campaign.name, campaign.applyOrder,
            campaign.adType, campaign.pool.id, campaign.pool.createdAt,
            campaign.pool.name, campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, applyOn, completed, failed, createdAt,
            modifiedAt, campaignId<br><strong>Nested
            fields</strong><br>campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageMonthlyBudgetChange'
      security:
        - bearer:
            - advertiser:read
  /customers/me/pools:
    get:
      tags:
        - Job Pools
      summary: Get my JobPools
      operationId: getMyPools
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=createdAt,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, createdAt,
            name, isCpa, modifiedAt, customerId<br><strong>Nested
            fields</strong><br>customer.id, customer.createdAt, customer.name,
            customer.modifiedAt
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, createdAt, name, isCpa, modifiedAt,
            customerId<br><strong>Nested fields</strong><br>customer.id,
            customer.createdAt, customer.name, customer.modifiedAt
          required: false
          schema:
            type: string
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobPool'
      security:
        - bearer:
            - advertiser:read
  /customers/me/jobs:
    get:
      tags:
        - Jobs
      summary: Search my Jobs
      description: >-
        Available Sort Fields: campaignName, campaign, cities, location,
        company, jobReference, majorCategory, majorCategoryName, minorCategory,
        minorCategoryName, segmentName, segment, states, title, zipcodes
      operationId: getMyJobs
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=adType,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, adType,
            atsJobId, campaignId, campaignName, cities, states, company,
            companyId, customerId, jobReference, majorCategoryId,
            majorCategoryName, minorCategoryId, minorCategoryName, poolId,
            segmentId, segmentName, sourceId, status, title, zipcodes, derived,
            jobId, isCpa, description, url, eventStart, eventEnd,
            llmAllRequirements, llmAllRequirementsNormalized, llmAllPreferences,
            llmAllPreferencesNormalized, llmCompensation, llmBenefits,
            llmWorkSchedule, llmWorkLocationType, llmVisaStatus, subCustomerId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, adType, atsJobId, campaignId,
            campaignName, cities, states, company, companyId, customerId,
            jobReference, majorCategoryId, majorCategoryName, minorCategoryId,
            minorCategoryName, poolId, segmentId, segmentName, sourceId, status,
            title, zipcodes, derived, jobId, isCpa, description, url,
            eventStart, eventEnd, llmAllRequirements,
            llmAllRequirementsNormalized, llmAllPreferences,
            llmAllPreferencesNormalized, llmCompensation, llmBenefits,
            llmWorkSchedule, llmWorkLocationType, llmVisaStatus, subCustomerId
          required: false
          schema:
            type: string
        - name: report
          in: query
          description: '[Optional] Additional info related to the job'
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EXPANSION
        - name: expand
          in: query
          description: '[Optional] Additional info related to the job'
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - expansion
            uniqueItems: true
        - name: subCustomerId
          in: query
          description: Sub Customer ID
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJob'
      security:
        - bearer:
            - jobs:read
  /customers/me/job-titles:
    get:
      tags:
        - Jobs
      summary: Drill down on my unique Job Titles
      description: Search all unique Job Titles grouped by Source
      operationId: getMyTitles
      parameters:
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)
          required: false
          schema: {}
        - name: current
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: next
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: previous
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
            maximum: 1000
            minimum: 0
        - name: expand
          in: query
          description: '[Optional] Additional info related to the job'
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - expansion
            uniqueItems: true
        - name: subCustomerId
          in: query
          description: Sub Customer ID
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FacetCursorPageTapJobTitle'
      security:
        - bearer:
            - title-expansions:read
  /customers/me/companies:
    get:
      tags:
        - Companies
      summary: Get my Companies
      operationId: getMyCompanies
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=name,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, name
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCompany'
      security:
        - bearer:
            - advertiser:read
  /customers/me/campaigns:
    get:
      tags:
        - Job Campaigns
      summary: Get my JobCampaigns
      operationId: getMyCampaigns
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=modifiedAt,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, modifiedAt,
            status, mtdSpend, createdAt, name, applyOrder, adType,
            poolId<br><strong>Nested fields</strong><br>pool.id, pool.createdAt,
            pool.name, pool.isCpa, pool.modifiedAt, pool.customer.id,
            pool.customer.createdAt, pool.customer.name,
            pool.customer.modifiedAt, pool.customerId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, modifiedAt, status, mtdSpend, createdAt,
            name, applyOrder, adType, poolId<br><strong>Nested
            fields</strong><br>pool.id, pool.createdAt, pool.name, pool.isCpa,
            pool.modifiedAt, pool.customer.id, pool.customer.createdAt,
            pool.customer.name, pool.customer.modifiedAt, pool.customerId
          required: false
          schema:
            type: string
        - name: report
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - EVENTS
                - SPENDING
                - SCHEDULING
                - POOL
                - JOBS
                - SURVEY_STATUS
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - events
                - spending
                - scheduling
                - jobs
                - surveyStatus
            uniqueItems: true
        - name: subCustomerId
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobCampaign'
      security:
        - bearer:
            - campaigns:read
  /customers/me/applications:
    get:
      tags:
        - Job Applications
      summary: Get Applications
      operationId: getMyApplications
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=tlrApplicationId,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id,
            tlrApplicationId, applicationTime, completed, createdAt, tlrSid,
            qualified, redirectUrl, campaignId, segmentId<br><strong>Nested
            fields</strong><br>job.jobId, job.sourceId, job.jobReference,
            job.originalJobReference, job.company, job.title, job.zipcode,
            job.city, job.state, job.url, applicant.firstName,
            applicant.lastName, applicant.phone, applicant.emailAddress,
            applicant.address, applicant.city, applicant.state,
            applicant.zipcode, applicant.country, applicant.userAgent,
            campaign.id, campaign.modifiedAt, campaign.status,
            campaign.mtdSpend, campaign.createdAt, campaign.name,
            campaign.applyOrder, campaign.adType, campaign.pool.id,
            campaign.pool.createdAt, campaign.pool.name, campaign.pool.isCpa,
            campaign.pool.modifiedAt, campaign.pool.customer.id,
            campaign.pool.customer.createdAt, campaign.pool.customer.name,
            campaign.pool.customer.modifiedAt, campaign.pool.customerId,
            campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, tlrApplicationId, applicationTime,
            completed, createdAt, tlrSid, qualified, redirectUrl, campaignId,
            segmentId<br><strong>Nested fields</strong><br>job.jobId,
            job.sourceId, job.jobReference, job.originalJobReference,
            job.company, job.title, job.zipcode, job.city, job.state, job.url,
            applicant.firstName, applicant.lastName, applicant.phone,
            applicant.emailAddress, applicant.address, applicant.city,
            applicant.state, applicant.zipcode, applicant.country,
            applicant.userAgent, campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - resume
                - qualifyingQuestionAnswers
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobApplication'
      security:
        - bearer:
            - application:read
  /companies/{companyId}:
    get:
      tags:
        - Companies
      summary: Get a Company by ID
      operationId: getCompany
      parameters:
        - name: companyId
          in: path
          description: Talroo Company ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
      security:
        - bearer:
            - advertiser:read
  /categories:
    get:
      tags:
        - Enum - Categories
      summary: Get Categories
      operationId: getCategories
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=indication,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id, indication,
            description
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, indication, description
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCategory'
      security:
        - bearer:
            - category:read
  /categories/{categoryId}:
    get:
      tags:
        - Enum - Categories
      summary: Get a Category by ID
      operationId: getCategory
      parameters:
        - name: categoryId
          in: path
          description: Job Category ID. See Classification API
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
      security:
        - bearer:
            - category:read
  /campaigns/{campaignId}/applications:
    get:
      tags:
        - Job Applications
      summary: Get Applications by Campaign ID
      operationId: getApplicationsByCampaignId
      parameters:
        - name: campaignId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            <strong>Sorting criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#sort))<br>Format:
            field,(asc|desc)<br>Default sort order is ascending. Multiple sort
            criteria are supported (ex:
            &sort=id,desc&sort=tlrApplicationId,asc)<br><br><strong>Supported
            fields</strong> (different for each endpoint)<br>id,
            tlrApplicationId, applicationTime, completed, createdAt, tlrSid,
            qualified, redirectUrl, campaignId, segmentId<br><strong>Nested
            fields</strong><br>job.jobId, job.sourceId, job.jobReference,
            job.originalJobReference, job.company, job.title, job.zipcode,
            job.city, job.state, job.url, applicant.firstName,
            applicant.lastName, applicant.phone, applicant.emailAddress,
            applicant.address, applicant.city, applicant.state,
            applicant.zipcode, applicant.country, applicant.userAgent,
            campaign.id, campaign.modifiedAt, campaign.status,
            campaign.mtdSpend, campaign.createdAt, campaign.name,
            campaign.applyOrder, campaign.adType, campaign.pool.id,
            campaign.pool.createdAt, campaign.pool.name, campaign.pool.isCpa,
            campaign.pool.modifiedAt, campaign.pool.customer.id,
            campaign.pool.customer.createdAt, campaign.pool.customer.name,
            campaign.pool.customer.modifiedAt, campaign.pool.customerId,
            campaign.poolId
          required: false
          schema:
            type: array
            items:
              type: string
              example: id,asc
        - name: search
          in: query
          description: >-
            <strong>Filtering criteria</strong> ([more
            info](https://docs.talroo.com/docs/guides/platform-api/querying#search))<br>Format:
            field=value (complex grammar including expression predicates that
            can be combined)<br><br><strong>Supported fields</strong> (different
            for each endpoint)<br>id, tlrApplicationId, applicationTime,
            completed, createdAt, tlrSid, qualified, redirectUrl, campaignId,
            segmentId<br><strong>Nested fields</strong><br>job.jobId,
            job.sourceId, job.jobReference, job.originalJobReference,
            job.company, job.title, job.zipcode, job.city, job.state, job.url,
            applicant.firstName, applicant.lastName, applicant.phone,
            applicant.emailAddress, applicant.address, applicant.city,
            applicant.state, applicant.zipcode, applicant.country,
            applicant.userAgent, campaign.id, campaign.modifiedAt,
            campaign.status, campaign.mtdSpend, campaign.createdAt,
            campaign.name, campaign.applyOrder, campaign.adType,
            campaign.pool.id, campaign.pool.createdAt, campaign.pool.name,
            campaign.pool.isCpa, campaign.pool.modifiedAt,
            campaign.pool.customer.id, campaign.pool.customer.createdAt,
            campaign.pool.customer.name, campaign.pool.customer.modifiedAt,
            campaign.pool.customerId, campaign.poolId
          required: false
          schema:
            type: string
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - resume
                - qualifyingQuestionAnswers
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageJobApplication'
      security:
        - bearer:
            - advertiser:read
  /applications/{applicationId}:
    get:
      tags:
        - Job Applications
      summary: Get an Application by ID
      operationId: getApplication
      parameters:
        - name: applicationId
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: expand
          in: query
          required: false
          schema:
            type: array
            default: []
            items:
              type: string
              enum:
                - resume
                - qualifyingQuestionAnswers
            uniqueItems: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobApplication'
      security:
        - bearer:
            - application:read
  /applications/{applicationId}/resume/download:
    get:
      tags:
        - Job Applications
      operationId: downloadResume
      parameters:
        - name: applicationId
          in: path
          description: Job Application ID
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
                format: byte
      security:
        - bearer:
            - application:read
  /app-clients/{id}:
    get:
      tags:
        - App Clients
      summary: Get an AppClient by ID
      operationId: getAppClient
      parameters:
        - name: id
          in: path
          description: App Client ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppClient'
      security:
        - bearer:
            - integration
    delete:
      tags:
        - App Clients
      summary: Delete an AppClient by ID
      operationId: deleteAppClient
      parameters:
        - name: id
          in: path
          description: App Client ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
      security:
        - bearer:
            - integration
  /app-clients/scopes:
    get:
      tags:
        - App Clients
      summary: Get scopes available to an AppClient
      operationId: getScopes
      parameters:
        - name: page
          in: query
          description: Zero-based page index (0..N)
          required: false
          schema:
            default: 0
            minimum: 0
        - name: size
          in: query
          description: The size of the page to be returned
          required: false
          schema:
            default: 20
            minimum: 1
        - name: sort
          in: query
          description: >-
            Sorting criteria in the format: property,(asc|desc). Default sort
            order is ascending. Multiple sort criteria are supported.
          required: false
          schema:
            items: {}
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAppClientScope'
      security:
        - bearer:
            - integration
components:
  schemas:
    JobExpansionCreate:
      properties:
        title:
          type: string
          description: Job title for this Job Expansion
        jobFilters:
          $ref: '#/components/schemas/JobExpansionFilter'
          description: >-
            JobExpansionFilter object containing a list of job references and
            job titles upon which to match jobs for expansion
      required:
        - title
    JobExpansionFilter:
      properties:
        jobReference:
          type: array
          description: Job reference used to determine when a title expansion occurs
          items:
            type: string
        title:
          type: array
          description: Job title used to determine when a title expansion occurs
          items:
            type: string
    JobExpansion:
      properties:
        id:
          type: integer
          format: int32
          description: Job Expansion ID
        sourceId:
          type: integer
          format: int32
        title:
          type: string
          description: Job title for this Job Expansion
          maxLength: 255
          minLength: 0
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Expansion
          example: 1970-01-01T00:00Z
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Job Expansion
          example: 1970-01-01T00:00Z
        lastImported:
          type: string
          format: date-time
          description: Timestamp of when this Job Expansion was last imported
          example: 1970-01-01T00:00Z
        jobFilters:
          $ref: '#/components/schemas/JobExpansionFilter'
          description: >-
            JobExpansionFilter object containing a list of job references and
            job titles upon which to match jobs for expansion
      required:
        - title
    ScheduledPauseUpdate:
      properties:
        pauseOn:
          type: string
          format: date
          description: >-
            Date on which the corresponding Talroo Job Campaign, or Talroo Job
            Segment, should be paused
          example: '1970-01-01'
        pauseReasonId:
          type: integer
          format: int32
          description: '[Optional] Pause Reason ID. See Enum - Pause Reasons'
    PauseReason:
      properties:
        id:
          type: integer
          format: int32
          description: Pause Reason ID
        description:
          type: string
          description: Pause Reason description
          maxLength: 128
          minLength: 0
    ScheduledPause:
      properties:
        id:
          type: integer
          format: int32
          description: Scheduled Pause ID
        campaignId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Campaign ID
        segmentId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Segment ID
        completed:
          type: boolean
          description: Boolean indicating whether this scheduled pause has been applied
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Scheduled Pause
          example: 1970-01-01T00:00Z
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Scheduled Pause
          example: 1970-01-01T00:00Z
        pauseOn:
          type: string
          format: date
          description: >-
            Date on which the corresponding Talroo Job Campaign, or Talroo Job
            Segment, should be paused
          example: '1970-01-01'
        pauseReason:
          $ref: '#/components/schemas/PauseReason'
          description: Pause Reason for scheduling a pause on a Job Campaign
        pauseReasonId:
          type: integer
          format: int32
          description: Pause Reason ID
    ConfigQuery:
      properties:
        jobReference:
          type: array
          description: Filter jobs in by reference number
          items:
            type: string
        zipCode:
          type: array
          description: Filter jobs in based on zip code matching
          items:
            type: string
        city:
          type: array
          description: Filter jobs in based on city ('city, st') matching
          items:
            type: string
        title:
          type: array
          description: Filter jobs in using keywords contained in job titles
          items:
            type: string
        description:
          type: array
          description: Filter jobs in using keywords contained in job descriptions
          items:
            type: string
        companyId:
          type: array
          description: Filter jobs in based on Talroo Company ID matching. See Companies
          items:
            type: integer
            format: int32
        advertiserId:
          type: array
          description: >-
            Filter jobs in based on Advertiser ID provided by customers through
            job feed.
          items:
            type: string
        majorCategory:
          type: array
          description: >-
            Filter jobs in based on Talroo Major Category matching. See Enum -
            Categories
          items:
            type: string
        minorCategory:
          type: array
          description: >-
            Filter jobs in based on Talroo Minor Category matching. See Enum -
            Categories
          items:
            type: string
        srcCampId:
          type: array
          description: >-
            Job Campaigns Only: Filter jobs in based on campaign_id field values
            passed through the job feed
          items:
            type: string
        srcSegId:
          type: array
          description: >-
            Job Segments Only: Filter jobs in based on segment_id field values
            passed through the job feed
          items:
            type: string
        stateId:
          type: array
          description: Filter jobs in based on State ID matching. See Locations - States
          items:
            type: integer
            format: int32
        created:
          $ref: '#/components/schemas/CreatedDateRange'
          description: >-
            Filter jobs in based on job age in days. Job age is based on date
            field values passed through the job feed
        targetCpa:
          $ref: '#/components/schemas/IntRange'
          description: >-
            Filter jobs in based on target_cpa field values (in cents) passed
            through the job feed
        cpc:
          $ref: '#/components/schemas/IntRange'
          description: >-
            Filter jobs in based on cpc field values (in cents) passed through
            the job feed
        hasSmartScreeners:
          type: boolean
          description: Filter jobs in based on whether the job has smart screener questions
        requiredQualifications:
          $ref: '#/components/schemas/IncludeExcludeInteger'
          description: >-
            Filter jobs in based on whether the job has required smart screener
            qualification questions
        preferredQualifications:
          $ref: '#/components/schemas/IncludeExcludeInteger'
          description: >-
            Filter jobs in based on whether the job has preferred smart screener
            qualification questions
        requiredOrPreferredQualifications:
          $ref: '#/components/schemas/IncludeExcludeInteger'
          description: >-
            Filter jobs in based on whether the job has either required or
            preferred smart screener qualification questions
    CpaBitmap:
      properties: {}
    CreatedDateRange:
      properties:
        from:
          type: integer
          format: int32
          description: >-
            Number of days ago to start filtering jobs from created date
            (inclusive)
          maximum: 90
        to:
          type: integer
          format: int32
          description: >-
            Number of days ago to stop filtering jobs from created date
            (inclusive)
    IncludeExcludeInteger:
      properties:
        items:
          type: array
          description: List of items affected by the include/exclude filter
          items:
            type: integer
            format: int32
        type:
          type: string
          description: Whether to include or exclude the values in the list
          enum:
            - INCLUDE
            - EXCLUDE
    IntRange:
      properties:
        lower:
          type: integer
          format: int32
          description: Lower bound of the range (inclusive)
          minimum: 0
        upper:
          type: integer
          format: int32
          description: Upper bound of the range (inclusive)
          minimum: 0
    Integration:
      properties:
        name:
          type: string
        type:
          type: string
          enum:
            - BRAZEN_INTEGRATION
            - GARMON_INTEGRATION
            - GET_SALES_INTEGRATION
            - KELOH_INTEGRATION
            - TENSTREET_INTEGRATION
            - BULLHORN_INTEGRATION
            - AVIONTE_INTEGRATION
            - JOB_TARGET_INTEGRATION
            - RECRUITICS_INTEGRATION
            - ADECCO_INTEGRATION
            - UKG_INTEGRATION
            - APPCAST_INTEGRATION
            - ZENOPLE_INTEGRATION
            - DAYFORCE_INTEGRATION
            - TALENT_REEF_INTEGRATION
            - SAP_INTEGRATION
            - FOUNTAIN_INTEGRATION
            - VECTOR_MARKETING_INTEGRATION
            - ADECCO_INTEGRATION_V2
            - PHENOM_INTEGRATION
            - KOMBO_INTEGRATION
            - ICIMS_INTEGRATION
        acceptedResumeFileTypes:
          type: array
          items:
            type: string
        additionalFields:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationField'
        poolAdditionalFields:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationField'
        appliesToAdType:
          type: string
          enum:
            - JOB
            - EVENT
        isAts:
          type: boolean
        sendsResumeTo3PI:
          type: boolean
    IntegrationField:
      properties:
        dataType:
          type: string
          enum:
            - STRING
            - PASSWORD
            - DATETIME
            - URL
            - EMAIL
            - INTEGER
        clientPattern:
          type: string
        adminOnly:
          type: boolean
        required:
          type: boolean
        name:
          type: string
        displayName:
          type: string
    JobCampSegEventsExpand:
      properties:
        totalRSVPs:
          type: integer
          format: int32
        todayRSVPs:
          type: integer
          format: int32
    JobCampSegJobsExpand:
      properties:
        totalJobs:
          type: integer
          format: int32
    JobCampSegSpendingExpand:
      properties:
        yesterday:
          type: integer
          format: int32
    JobCustomerEmbed:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        jobApplicationQuestionsEnabled:
          type: boolean
    JobPoolEmbed:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        customer:
          $ref: '#/components/schemas/JobCustomerEmbed'
        revenueType:
          type: string
          enum:
            - OTHER
            - DIRECT
            - JOB_BOARD
            - STAFFING
            - TRUCKING
            - RPO
            - EDUCATION
            - ORGANIC
            - ALLIANCE
        isCpa:
          type: boolean
        thirdPartyIntegration:
          $ref: '#/components/schemas/Integration'
        cpaBitmap:
          $ref: '#/components/schemas/CpaBitmap'
        requiredQualifyingQuestionSetIds:
          type: array
          items:
            type: integer
            format: int32
          uniqueItems: true
    JobSegment:
      properties:
        id:
          type: integer
          format: int32
          description: Talroo Job Segment ID
        campaignId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Campaign ID
        name:
          type: string
          description: Job Segment name
          maxLength: 128
          minLength: 0
        status:
          type: string
          description: Job Segment status
          enum:
            - UNDER_DEVELOPMENT
            - LIVE
            - USER_PAUSED
            - SYSTEM_PAUSED
            - OUT_OF_BUDGET
            - ARCHIVED
        applyOrder:
          type: integer
          format: int32
          description: >-
            Order in which this Job Segment's job filters will be applied to
            remaining pool jobs
          minimum: 0
        autoArchiveAt:
          type: string
          format: date-time
          description: The timestamp at which the segment should be automatically archived
          example: 1970-01-01T00:00Z
        autopilotMaxCpc:
          type: integer
          format: int32
          description: >-
            Maximum CPC that can be set when using our Autopilot bidding
            strategy (overrides campaign-level value)
        basicCpc:
          type: integer
          format: int32
          description: CPC used for segments within non-Talroo Pro campaigns
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Segment
          example: 1970-01-01T00:00Z
        emailAddress:
          type: string
          description: >-
            Email address to which new Talroo Apply applicant emails will be
            sent
          maxLength: 128
          minLength: 0
        enableAutoArchive:
          type: boolean
          description: Whether this segment is eligible for auto archival
        events:
          $ref: '#/components/schemas/JobCampSegEventsExpand'
          description: The events rsvp information for a segment
        jobFilters:
          $ref: '#/components/schemas/ConfigQuery'
          description: Filter jobs into this Job Segment based on various job object fields
        jobs:
          $ref: '#/components/schemas/JobCampSegJobsExpand'
          description: The total jobs in a segment
        minCpc:
          type: integer
          format: int32
          description: Minimum cost per click
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Job Segment
          example: 1970-01-01T00:00Z
        monthlyBudget:
          type: number
          description: Job Segment monthly budget
        mtdSpend:
          type: number
          description: Month to date spending for this Job Segment
        pool:
          $ref: '#/components/schemas/JobPoolEmbed'
          description: The associated Job Pool embed for a segment
        report:
          $ref: '#/components/schemas/JobSegmentReport'
          description: '[Optional] Additional info related to the Job Segment'
        scheduling:
          $ref: '#/components/schemas/JobSegmentSchedulingExpand'
          description: The scheduling info for a segment
        spending:
          $ref: '#/components/schemas/JobCampSegSpendingExpand'
          description: The spending info for a segment
        talrooProCpc:
          type: integer
          format: int32
          description: CPC used for Job Segments within Talroo Pro campaigns
        targetCpa:
          type: integer
          format: int32
          description: Goal CPA used by segments utilizing the Target CPA bidding strategy
        useSmartCpc:
          type: boolean
          description: >-
            Flag indicating usage of recommended cpc api to set the bid on jobs
            filtered into this segment
      required:
        - basicCpc
    JobSegmentReport:
      properties:
        jobs:
          $ref: '#/components/schemas/SegmentJobsReport'
        events:
          $ref: '#/components/schemas/SegmentEventsReport'
        pool:
          $ref: '#/components/schemas/SegmentPoolReport'
        scheduling:
          $ref: '#/components/schemas/SegmentScheduledReport'
        spending:
          $ref: '#/components/schemas/SegmentSpendingReport'
    JobSegmentSchedulingExpand:
      properties:
        scheduledPauses:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledPause'
    MonthlyBudgetChange:
      properties:
        id:
          type: integer
          format: int32
          description: Scheduled Monthly Budget Change ID
        campaignId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Campaign ID
        absolute:
          type: boolean
          description: >-
            When absolute is TRUE, the Scheduled budget change will replace the
            current monthly budget with the set budgetCents value. When FALSE,
            it will adjust the current monthly budget with the set budgetCents
            value
        applyOn:
          type: string
          format: date
          description: Date on which this new monthly budget is set to take effect
          example: '1970-01-01'
        budgetCents:
          type: integer
          format: int32
          description: The new monthly budget in cents
        completed:
          type: boolean
          description: >-
            Boolean indicating whether a Scheduled Monthly Budget Change has
            been applied
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Scheduled Monthly Budget Change
          example: 1970-01-01T00:00Z
        errorMessage:
          type: string
          description: Applicable error message, if one exists
          maxLength: 4096
          minLength: 0
        failed:
          type: boolean
          description: >-
            Boolean indicating whether this Scheduled Monthly Budget Change
            failed to apply
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Scheduled Monthly Budget Change
          example: 1970-01-01T00:00Z
    OneTimeBudget:
      properties:
        id:
          type: integer
          format: int32
          description: One Time Budget ID
        campaignId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Campaign ID
        budgetCents:
          type: integer
          format: int32
          description: Amount of the One Time Budget in cents
        completed:
          type: boolean
          description: >-
            Boolean indicating whether this One Time Budget has been
            successfully added
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this One Time Budget
          example: 1970-01-01T00:00Z
        end:
          type: string
          format: date
          description: Date on which this One Time Budget should no longer be applicable
          example: '1970-01-01'
        launchOnStart:
          type: boolean
          description: >-
            Boolean indicating whether this One Time Budget should have the
            ability to push the campaign live on its start date
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this One Time Budget
          example: 1970-01-01T00:00Z
        rollover:
          type: boolean
          description: >-
            Boolean indicating whether this One Time Budget should rollover
            unspent budget to the next month
        start:
          type: string
          format: date
          description: Date on which this One Time Budget should be added to the campaign
          example: '1970-01-01'
        started:
          type: boolean
          description: Boolean indicating whether this One Time Budget has been added
    SegmentEventsReport:
      properties:
        totalRSVPs:
          type: integer
          format: int32
        todayRSVPs:
          type: integer
          format: int32
    SegmentJobsReport:
      properties:
        totalJobs:
          type: integer
          format: int32
    SegmentPoolReport:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        customerId:
          type: integer
          format: int32
        revenueType:
          type: string
          enum:
            - OTHER
            - DIRECT
            - JOB_BOARD
            - STAFFING
            - TRUCKING
            - RPO
            - EDUCATION
            - ORGANIC
            - ALLIANCE
        isCpa:
          type: boolean
        thirdPartyIntegration:
          $ref: '#/components/schemas/Integration'
        cpaBitmap:
          $ref: '#/components/schemas/CpaBitmap'
        requiredQualifyingQuestionSetIds:
          type: array
          items:
            type: integer
            format: int32
          uniqueItems: true
    SegmentScheduledReport:
      properties:
        scheduledPauses:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledPause'
        monthlyBudgetChanges:
          type: array
          items:
            $ref: '#/components/schemas/MonthlyBudgetChange'
        oneTimeBudgets:
          type: array
          items:
            $ref: '#/components/schemas/OneTimeBudget'
    SegmentSpendingReport:
      properties:
        yesterday:
          type: integer
          format: int32
    JobSegmentCopy:
      properties:
        name:
          type: string
          description: New name for the Job Segment copy
        campaignId:
          type: integer
          format: int32
          description: Job Campaign ID to put the new Job Segment copy under
      required:
        - campaignId
        - name
    CandidateTierSettings:
      description: >-
        Candidate tier settings with multiplier and source parameter for each
        tier
      properties:
        multiplier:
          type: number
          description: Price multiplier for this candidate tier
          example: 1.5
          maximum: 99.99
          minimum: 0.01
        sourceParam:
          type: string
          description: Source parameter for tracking
          example: utm_source=talroo_ft
          maxLength: 128
          minLength: 0
      required:
        - multiplier
    JobCampaignCreate:
      properties:
        name:
          type: string
          description: Job Campaign name
        basicCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Apply and Talroo Basic campaigns
        monthlyBudget:
          type: number
          description: The monthly recurring budget for the campaign
        jobBudgetType:
          type: string
          description: Enable and set job level budget type
          enum:
            - NONE
            - MONTHLY
        jobBudgetDefault:
          type: number
          description: Default job level budget
        applyOrder:
          type: integer
          format: int32
          description: >-
            Order (descending) in which campaigns have their job filters applied
            to remaining jobs within the pool
        jobFilters:
          $ref: '#/components/schemas/ConfigQuery'
          description: Filter jobs into this campaign based on various job object fields
        targetCpa:
          type: integer
          format: int32
          description: Goal CPA used by campaigns utilizing the Target CPA bidding strategy
        talrooApply:
          type: boolean
          description: Boolean indicating whether this is a Talroo Apply campaign
        emailAddress:
          type: string
          description: >-
            Email address to which Talroo Apply applicants and Talroo Event RSVP
            reports will be sent, when applicable
        otherEmailAddresses:
          type: array
          description: >-
            Additional email addresses to receive Talroo Apply New Applicant and
            Event RSVP emails, when applicable
          items:
            type: string
        talrooApplySkipResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether applicants
            will be prompted to submit a resume as part of the Talroo Apply
            application
        talrooApplyReqResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether a resume is
            required as part of the Talroo Apply application
        talrooApplySendUnqualified:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether we forward
            data for unqualified Talroo Apply applications
        talrooApplyRedir:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Feature to automatically redirect
            applicants to the job's URL after applying
        budgetPacing:
          type: boolean
          description: >-
            Whether this campaign is utilizing the automatic budget pacing
            mechanism
        extendBudgetPacing:
          type: boolean
          description: >-
            Whether this campaign continues to use budget pacing after the
            pacingDom
        pacingDom:
          type: integer
          format: int8
          description: >-
            When using budget pacing, apply pacing to the campaign's budget
            until this day of the month
          example: 0
        minCpc:
          type: integer
          format: int32
          description: Minimum cost per click for this Job Campaign
        talrooProCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Pro campaigns
        talrooPro:
          type: string
          description: Boolean indicating whether this is a Talroo Pro campaign
          enum:
            - 'OFF'
            - 'ON'
        adType:
          type: string
          description: >-
            Campaign Ad Type that denotes whether this is a Standard Job
            Campaign or a Hiring Event campaign
          enum:
            - JOB
            - EVENT
        eventStartDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event start date'
          example: '1970-01-01'
        eventEndDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event end date'
          example: '1970-01-01'
        eventLocation:
          type: string
          description: >-
            Hiring Events Only: [Required] Physical address, or URL if online,
            where event will take place
        eventType:
          type: string
          description: >-
            Hiring Events Only: [Required] Whether this is an in-person or
            online event
          enum:
            - IN_PERSON
            - ONLINE
        eventTimes:
          type: string
          description: 'Hiring Events Only: [Required] Formatted times of the event'
        eventTimeslot:
          type: integer
          format: int8
          description: >-
            Hiring Events Only: [Optional] Length of timeslots in minutes (30 or
            60 are supported). When set, this will require users to RSVP to
            specific timeslots
          example: 0
        eventTimeslotLimit:
          type: integer
          format: int32
          description: >-
            Hiring Events Only: [Optional] Limits the amount of RSVPs that can
            be made for a single timeslot
        eventCustomTy:
          type: string
          description: >-
            Hiring Events Only: [Optional] Custom thank you message to show
            users after they RSVP
        eventPrepare:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around how users should
            prepare for the event after they RSVP
        eventWear:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around what users should
            wear to the event
        fullTargetCpa:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is allowed to bid up on
            high converting traffic. HIGHLY RECOMMENDED TO BE SET TO TRUE
        targetCpaType:
          type: string
          description: >-
            Target CPA Only: Field to indicate what type of Target CPA campaign
            this is
          enum:
            - NONE
            - CAMPAIGN
            - JOB
            - CAMPAIGN_FIXED
            - JOB_FIXED
        autopilot:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is utilizing our Autopilot
            bidding strategy
        autopilotMaxCpc:
          type: integer
          format: int32
          description: >-
            Maximum CPC that can be set when using our Autopilot bidding
            strategy
        additionalFields:
          type: object
          additionalProperties:
            type: string
          description: >-
            Additional Field object to be used with integrations. Please reach
            out to your Talroo POC for options
        talrooFeaturedType:
          type: string
          description: Enum indicating if this campaign is a Talroo Featured campaign
          enum:
            - 'OFF'
            - CPC_BASED
            - ALWAYS_ON
            - J2C_CPC_BASED
            - J2C_ALWAYS_ON
            - AI_ALWAYS_ON
            - ALWAYS_ON_ABSOLUTE
        talrooApplyPro:
          type: boolean
          description: Boolean indicating if this campaign is a Talroo Apply Pro campaign
        sendReminders:
          type: string
          description: >-
            Boolean indicating whether this campaign sends reminders for
            unfinished applications
          enum:
            - 'OFF'
            - 'ON'
        reminderType:
          type: string
          description: >-
            Enum indicating how this campaign sends reminders for unfinished
            applications
          enum:
            - NONE
            - EMAIL
            - SMS
            - BOTH
        applicationLinkOverride:
          type: string
          description: The job application link override for a campaign
        addressQuestion:
          type: string
          description: >-
            Whether we add an address question to the Talroo Apply application
            form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
        workExperienceQuestions:
          type: string
          description: >-
            Whether we add work experience questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
        educationHistoryQuestions:
          type: string
          description: >-
            Whether we add education history questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
        enableAutoArchive:
          type: boolean
          description: Whether this campaign is eligible for auto archival
        autoArchiveAt:
          type: string
          format: date-time
          description: The timestamp at which the campaign should be automatically archived
          example: 1970-01-01T00:00Z
        useSmartCpc:
          type: boolean
          description: >-
            Flag indicating usage of recommended cpc api to set the bid on jobs
            filtered into this campaign
        candidateTier:
          type: string
          description: The minimum tier of candidate targeting for this campaign
          enum:
            - FT
            - ET
            - ST
        candidateTierSettings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CandidateTierSettings'
          description: >-
            Candidate tier settings with multiplier and source parameter for
            each tier
      required:
        - adType
        - additionalFields
        - addressQuestion
        - budgetPacing
        - educationHistoryQuestions
        - enableAutoArchive
        - eventTimeslot
        - extendBudgetPacing
        - fullTargetCpa
        - jobBudgetDefault
        - jobBudgetType
        - minCpc
        - monthlyBudget
        - name
        - otherEmailAddresses
        - pacingDom
        - reminderType
        - sendReminders
        - talrooApplyPro
        - talrooApplyRedir
        - talrooApplyReqResume
        - talrooApplySendUnqualified
        - talrooApplySkipResume
        - talrooFeaturedType
        - workExperienceQuestions
    CampaignEventsReport:
      properties:
        totalRSVPs:
          type: integer
          format: int32
        todayRSVPs:
          type: integer
          format: int32
    CampaignJobsReport:
      properties:
        totalJobs:
          type: integer
          format: int32
    CampaignPoolReport:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        customerId:
          type: integer
          format: int32
        revenueType:
          type: string
          enum:
            - OTHER
            - DIRECT
            - JOB_BOARD
            - STAFFING
            - TRUCKING
            - RPO
            - EDUCATION
            - ORGANIC
            - ALLIANCE
        isCpa:
          type: boolean
        thirdPartyIntegration:
          $ref: '#/components/schemas/Integration'
        cpaBitmap:
          $ref: '#/components/schemas/CpaBitmap'
        requiredQualifyingQuestionSetIds:
          type: array
          items:
            type: integer
            format: int32
          uniqueItems: true
    CampaignQuestionEmbed:
      properties:
        id:
          type: integer
          format: int32
          description: ID of Campaign Question
        templateId:
          type: integer
          format: int32
          description: >-
            ID of the Qualifying Question Template a Campaign Question is based
            on
        templateName:
          type: string
          description: >-
            Name of the Qualifying Question Template a Campaign Question is
            based on
        questionSetId:
          type: integer
          format: int32
          description: >-
            ID of the Qualifying Question Set a Campaign Question originates
            from, if one exists
        setName:
          type: string
          description: >-
            Name of the Qualifying Question Set a Campaign Question originates
            from, if one exists
    CampaignScheduledReport:
      properties:
        scheduledPauses:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledPause'
        monthlyBudgetChanges:
          type: array
          items:
            $ref: '#/components/schemas/MonthlyBudgetChange'
        oneTimeBudgets:
          type: array
          items:
            $ref: '#/components/schemas/OneTimeBudget'
    CampaignSpendingReport:
      properties:
        yesterday:
          type: integer
          format: int32
    JobCampaign:
      properties:
        id:
          type: integer
          format: int32
          description: Talroo Job Campaign ID
        poolId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Pool ID
        name:
          type: string
          description: Job Campaign name
          maxLength: 255
          minLength: 0
        status:
          type: string
          description: Campaign status
          enum:
            - UNDER_DEVELOPMENT
            - LIVE
            - PAUSED
            - SYSTEM_PAUSED
            - OUT_OF_BUDGET
            - ARCHIVED
        adType:
          type: string
          description: >-
            Campaign Ad Type that denotes whether this is a Standard Job
            Campaign or a Hiring Event campaign
          enum:
            - JOB
            - EVENT
        additionalFields:
          type: object
          additionalProperties:
            type: string
          description: >-
            Additional Field object to be used with integrations. Please reach
            out to your Talroo POC for options
        addressQuestion:
          type: string
          description: >-
            Whether we add an address question to the Talroo Apply application
            form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
        applicationLinkOverride:
          type: string
          description: The job application link override for a campaign
          maxLength: 255
          minLength: 0
        applyOrder:
          type: integer
          format: int32
          description: >-
            Order (descending) in which campaigns have their job filters applied
            to remaining jobs within the pool
          minimum: 0
        autoArchiveAt:
          type: string
          format: date-time
          description: The timestamp at which the campaign should be automatically archived
          example: 1970-01-01T00:00Z
        autopilot:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is utilizing our Autopilot
            bidding strategy
        autopilotMaxCpc:
          type: integer
          format: int32
          description: >-
            Maximum CPC that can be set when using our Autopilot bidding
            strategy
        basicCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Apply and Talroo Basic campaigns
        budgetPacing:
          type: boolean
          description: >-
            Whether this campaign is utilizing the automatic budget pacing
            mechanism
        campaignQuestions:
          type: array
          description: >-
            List of Qualifying Questions that jobs in this Campaign will display
            on [Jobs2Careers.com](https://jobs2careers.com/)
          items:
            $ref: '#/components/schemas/CampaignQuestionEmbed'
        candidateTier:
          type: string
          description: The minimum tier of candidate targeting for this campaign
          enum:
            - FT
            - ET
            - ST
        candidateTierSettings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CandidateTierSettings'
          description: >-
            Candidate tier settings with multiplier and source parameter for
            each tier
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Campaign
          example: 1970-01-01T00:00Z
        dailyCapResetTime:
          type: string
          format: time
          description: >-
            The time each day that this campaign will resume advertising its
            jobs after daily capping the previous day
          example: 00:00Z
        dailyCapped:
          type: boolean
          description: >-
            Boolean indicating whether this campaign's jobs are not being
            advertised due to daily capping
        dailyCappedTime:
          type: string
          format: date-time
          description: The time at which this campaign daily capped
          example: 1970-01-01T00:00Z
        educationHistoryQuestions:
          type: string
          description: >-
            Whether we add education history questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
        emailAddress:
          type: string
          description: >-
            Email address to which Talroo Apply applicants and Talroo Event RSVP
            reports will be sent, when applicable
          maxLength: 128
          minLength: 0
        enableAutoArchive:
          type: boolean
          description: Whether this campaign is eligible for auto archival
        eventCustomTy:
          type: string
          description: >-
            Hiring Events Only: [Optional] Custom thank you message to show
            users after they RSVP
          maxLength: 255
          minLength: 0
        eventEndDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event end date'
          example: '1970-01-01'
        eventLocation:
          type: string
          description: >-
            Hiring Events Only: [Required] Physical address, or URL if online,
            where event will take place
          maxLength: 1024
          minLength: 0
        eventPrepare:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around how users should
            prepare for the event after they RSVP
          maxLength: 32768
          minLength: 0
        eventStartDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event start date'
          example: '1970-01-01'
        eventTimes:
          type: string
          description: 'Hiring Events Only: [Required] Formatted times of the event'
          maxLength: 32768
          minLength: 0
        eventTimeslot:
          type: integer
          format: int8
          description: >-
            Hiring Events Only: [Optional] Length of timeslots in minutes (30 or
            60 are supported). When set, this will require users to RSVP to
            specific timeslots
          example: 0
          maximum: 127
          minimum: 0
        eventTimeslotLimit:
          type: integer
          format: int32
          description: >-
            Hiring Events Only: [Optional] Limits the amount of RSVPs that can
            be made for a single timeslot
          maximum: 999
          minimum: 1
        eventType:
          type: string
          description: >-
            Hiring Events Only: [Required] Whether this is an in-person or
            online event
          enum:
            - IN_PERSON
            - ONLINE
        eventWear:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around what users should
            wear to the event
          maxLength: 32768
          minLength: 0
        events:
          $ref: '#/components/schemas/JobCampSegEventsExpand'
          description: The events rsvp information for a campaign
        extendBudgetPacing:
          type: boolean
          description: >-
            Whether this campaign continues to use budget pacing after the
            pacingDom
        fullTargetCpa:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is allowed to bid up on
            high converting traffic. HIGHLY RECOMMENDED TO BE SET TO TRUE
        jobBudgetDefault:
          type: number
          description: Default job level budget
        jobBudgetType:
          type: string
          description: Enable and set job level budget type
          enum:
            - NONE
            - MONTHLY
        jobFilters:
          $ref: '#/components/schemas/ConfigQuery'
          description: Filter jobs into this campaign based on various job object fields
        jobs:
          $ref: '#/components/schemas/JobCampSegJobsExpand'
          description: The total jobs in a campaign
        minCpc:
          type: integer
          format: int32
          description: Minimum cost per click for this Job Campaign
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Job Campaign
          example: 1970-01-01T00:00Z
        monthlyBudget:
          type: number
          description: The monthly recurring budget for the campaign
        mtdSpend:
          type: number
          description: Campaign's current month-to-date spend
        oneTimeBudgetDollars:
          type: number
          description: Campaign budget that has come from One Time Budget additions
        otherEmailAddresses:
          type: array
          description: >-
            Additional email addresses to receive Talroo Apply New Applicant and
            Event RSVP emails, when applicable
          items:
            type: string
        pacingDom:
          type: integer
          format: int8
          description: >-
            When using budget pacing, apply pacing to the campaign's budget
            until this day of the month
          example: 0
          maximum: 31
          minimum: 0
        pauseReason:
          $ref: '#/components/schemas/PauseReason'
          description: (optional) Additional info on the reason a Campaign is Paused
        pauseReasonId:
          type: integer
          format: int32
          description: Pause Reason ID
        pool:
          $ref: '#/components/schemas/JobPoolEmbed'
          description: The associated Job Pool embed for a campaign
        reminderType:
          type: string
          description: >-
            Enum indicating how this campaign sends reminders for unfinished
            applications
          enum:
            - NONE
            - EMAIL
            - SMS
            - BOTH
        report:
          $ref: '#/components/schemas/JobCampaignReport'
          description: '[Optional] Additional info related to the campaign'
        scheduling:
          $ref: '#/components/schemas/JobCampaignSchedulingExpand'
          description: The scheduling info for a campaign
        sendReminders:
          type: string
          description: >-
            Boolean indicating whether this campaign sends reminders for
            unfinished applications
          enum:
            - 'OFF'
            - 'ON'
        spending:
          $ref: '#/components/schemas/JobCampSegSpendingExpand'
          description: The spending info for a campaign
        surveyStatus:
          $ref: '#/components/schemas/JobCampaignSurveyStatusExpand'
          description: The survey status of a campaign
        talrooApply:
          type: boolean
          description: Boolean indicating whether this is a Talroo Apply campaign
        talrooApplyPro:
          type: boolean
          description: Boolean indicating if this campaign is a Talroo Apply Pro campaign
        talrooApplyRedir:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Feature to automatically redirect
            applicants to the job's URL after applying
        talrooApplyReqResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether a resume is
            required as part of the Talroo Apply application
        talrooApplySendUnqualified:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether we forward
            data for unqualified Talroo Apply applications
        talrooApplySkipResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether applicants
            will be prompted to submit a resume as part of the Talroo Apply
            application
        talrooFeaturedType:
          type: string
          description: Enum indicating if this campaign is a Talroo Featured campaign
          enum:
            - 'OFF'
            - CPC_BASED
            - ALWAYS_ON
            - J2C_CPC_BASED
            - J2C_ALWAYS_ON
            - AI_ALWAYS_ON
            - ALWAYS_ON_ABSOLUTE
        talrooPro:
          type: string
          description: Boolean indicating whether this is a Talroo Pro campaign
          enum:
            - 'OFF'
            - 'ON'
        talrooProCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Pro campaigns
        targetCpa:
          type: integer
          format: int32
          description: Goal CPA used by campaigns utilizing the Target CPA bidding strategy
        targetCpaType:
          type: string
          description: >-
            Target CPA Only: Field to indicate what type of Target CPA campaign
            this is
          enum:
            - NONE
            - CAMPAIGN
            - JOB
            - CAMPAIGN_FIXED
            - JOB_FIXED
        totalBudgetDollars:
          type: number
          description: >-
            Total budget available for campaign for current month. Sum of
            monthlyBudget and oneTimeBudgetDollars fields
        useSmartCpc:
          type: boolean
          description: >-
            Flag indicating usage of recommended cpc api to set the bid on jobs
            filtered into this campaign
        workExperienceQuestions:
          type: string
          description: >-
            Whether we add work experience questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
      required:
        - additionalFields
        - addressQuestion
        - candidateTierSettings
        - educationHistoryQuestions
        - minCpc
        - talrooPro
        - workExperienceQuestions
    JobCampaignReport:
      properties:
        jobs:
          $ref: '#/components/schemas/CampaignJobsReport'
        events:
          $ref: '#/components/schemas/CampaignEventsReport'
        pool:
          $ref: '#/components/schemas/CampaignPoolReport'
        scheduling:
          $ref: '#/components/schemas/CampaignScheduledReport'
        spending:
          $ref: '#/components/schemas/CampaignSpendingReport'
        surveyStatus:
          $ref: '#/components/schemas/SurveyStatus'
    JobCampaignSchedulingExpand:
      properties:
        scheduledPauses:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledPause'
        monthlyBudgetChanges:
          type: array
          items:
            $ref: '#/components/schemas/MonthlyBudgetChange'
        oneTimeBudgets:
          type: array
          items:
            $ref: '#/components/schemas/OneTimeBudget'
    JobCampaignSurveyStatusExpand:
      properties:
        surveyStatus:
          $ref: '#/components/schemas/SurveyStatus'
    SurveyStatus:
      properties:
        dirty:
          type: boolean
        pushedAt:
          type: string
          format: date-time
          example: 1970-01-01T00:00Z
        externalSurvey:
          type: boolean
    AuthorizationCodeTokenRequest:
      allOf:
        - $ref: '#/components/schemas/PlatformTokenRequest'
        - type: object
          properties:
            code:
              type: string
      required:
        - code
    ClientCredentialsRequest:
      allOf:
        - $ref: '#/components/schemas/PlatformTokenRequest'
        - type: object
          properties:
            clientId:
              type: string
            scopes:
              type: array
              items:
                type: string
      required:
        - clientId
    PasswordTokenRequest:
      allOf:
        - $ref: '#/components/schemas/PlatformTokenRequest'
        - type: object
          properties:
            username:
              type: string
            password:
              type: string
      required:
        - password
        - username
    PlatformTokenRequest:
      discriminator:
        propertyName: grantType
      example:
        username: string
        password: string
      properties:
        grantType:
          type: string
          enum:
            - PASSWORD
            - CODE
            - CLIENT_CREDENTIALS
            - CHALLENGE
    AuthResponse:
      oneOf:
        - $ref: '#/components/schemas/SuccessfulAuthResponse'
        - $ref: '#/components/schemas/ChallengeAuthResponse'
      properties:
        challenge:
          type: string
          enum:
            - SMS_MFA
            - SOFTWARE_TOKEN_MFA
            - SELECT_MFA_TYPE
            - MFA_SETUP
            - PASSWORD_VERIFIER
            - CUSTOM_CHALLENGE
            - DEVICE_SRP_AUTH
            - DEVICE_PASSWORD_VERIFIER
            - ADMIN_NO_SRP_AUTH
            - NEW_PASSWORD_REQUIRED
            - EMAIL_OTP
    ChallengeAuthResponse:
      properties:
        userId:
          type: string
        session:
          type: string
        codeDeliveryDestination:
          type: string
        challenge:
          type: string
          enum:
            - SMS_MFA
            - SOFTWARE_TOKEN_MFA
            - SELECT_MFA_TYPE
            - MFA_SETUP
            - PASSWORD_VERIFIER
            - CUSTOM_CHALLENGE
            - DEVICE_SRP_AUTH
            - DEVICE_PASSWORD_VERIFIER
            - ADMIN_NO_SRP_AUTH
            - NEW_PASSWORD_REQUIRED
            - EMAIL_OTP
    SuccessfulAuthResponse:
      properties:
        accessToken:
          type: string
        tokenType:
          type: string
        expiresIn:
          type: integer
          format: int32
        idToken:
          type: string
        challenge:
          type: string
          enum:
            - SMS_MFA
            - SOFTWARE_TOKEN_MFA
            - SELECT_MFA_TYPE
            - MFA_SETUP
            - PASSWORD_VERIFIER
            - CUSTOM_CHALLENGE
            - DEVICE_SRP_AUTH
            - DEVICE_PASSWORD_VERIFIER
            - ADMIN_NO_SRP_AUTH
            - NEW_PASSWORD_REQUIRED
            - EMAIL_OTP
    TitleSuggestionCreate:
      properties:
        title:
          type: string
        description:
          type: string
      required:
        - description
        - title
    TitleSuggestion:
      properties:
        suggestions:
          type: array
          items:
            type: string
    JobStatusRequest:
      properties:
        ids:
          type: array
          description: Platform Job IDs
          items:
            type: string
      required:
        - ids
    JobStatusResponse:
      properties:
        id:
          type: string
          description: >-
            Talroo Job ID - As seen in the Reporting API, and corresponding to
            Job.jobId
        status:
          type: string
          description: Status of the job
          enum:
            - LIVE
            - PAUSED
            - OUT_OF_BUDGET
            - DELETED
            - EXPIRED
            - EXPUNGED
            - DAILY_CAPPED
            - UNPROCESSED
            - NOT_FOUND
    LlmSuggestedTitle:
      properties:
        title:
          type: string
        reasoning:
          type: string
    LlmTitleSuggestion:
      properties:
        suggestions:
          type: array
          items:
            $ref: '#/components/schemas/LlmSuggestedTitle'
    ItemBatchJobExpansionBulkCreate:
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/JobExpansionBulkCreate'
    JobExpansionBulkCreate:
      properties:
        sourceId:
          type: integer
          format: int32
          description: Job Source ID
        title:
          type: string
          description: Job title for this Job Expansion
      required:
        - sourceId
        - title
    ItemBatchJobExpansion:
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/JobExpansion'
    RecommendedCpcByVolumeResourceRequest:
      properties:
        title:
          type: string
          description: Job title
        company:
          type: string
          description: Company name
        zipcodes:
          type: array
          description: A list of zipcodes. Each zipcode is a string.
          items:
            type: string
        description:
          type: string
          description: Job description
      required:
        - company
        - title
        - zipcodes
    RecommendedCpcByVolumeResourceResponse:
      properties:
        cpc:
          type: number
          format: float
          description: CPC in cents
        cpa:
          type: number
          format: float
          description: CPA in cents
    RecommendedCpcByBudgetResourceRequest:
      properties:
        title:
          type: string
          description: Job title
        company:
          type: string
          description: Company name
        zipcodes:
          type: array
          description: A list of zipcodes. Each zipcode is a string.
          items:
            type: string
        budget:
          type: number
          format: float
          description: Monthly budget
        description:
          type: string
          description: Job description
      required:
        - budget
        - company
        - title
        - zipcodes
    RecommendedCpcByBudgetResourceResponse:
      properties:
        cpc:
          type: number
          format: float
          description: CPC in cents
    CampaignBoostResourceRequest:
      properties:
        title:
          type: string
          description: Job title
        company:
          type: string
          description: Company name
        price:
          type: number
          format: float
          description: Either a CPC or target CPA, in cents
        priceType:
          type: string
          description: The type for price attribute. The value is either cpc or target_cpa.
          enum:
            - cpc
            - target_cpa
        zipcodes:
          type: array
          description: A list of zipcodes. Each zipcode is a string.
          items:
            type: string
        description:
          type: string
          description: Job description
      required:
        - company
        - price
        - priceType
        - title
        - zipcodes
    CampaignBoostResourceResponse:
      properties:
        numApplications:
          type: number
          format: float
        numClicks:
          type: number
          format: float
    AppClientUpdate:
      properties:
        name:
          type: string
          description: App Client name
        accessTokenExpirySeconds:
          type: integer
          format: int32
          description: How long App Client generated tokens are valid before expiring
        scopes:
          type: array
          description: App Client scopes
          items:
            type: string
    AppClient:
      properties:
        id:
          type: string
          description: App Client ID
          maxLength: 255
          minLength: 0
        name:
          type: string
          description: App Client name
          maxLength: 255
          minLength: 0
        accessTokenExpirySeconds:
          type: integer
          format: int32
          description: How long App Client generated tokens are valid before expiring
          maximum: 86400
          minimum: 300
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this App Client
          example: 1970-01-01T00:00Z
        scopes:
          type: array
          description: App Client scopes
          items:
            type: string
        secret:
          type: string
          description: App Client secret used to generate OAuth Tokens
    JobSegmentUpdate:
      properties:
        name:
          type: string
          description: Job Segment name
        basicCpc:
          type: integer
          format: int32
          description: CPC used for segments within non-Talroo Pro campaigns
        monthlyBudget:
          type: number
          description: Job Segment monthly budget
        applyOrder:
          type: integer
          format: int32
          description: >-
            Order in which this Job Segment's job filters will be applied to
            remaining pool jobs
        jobFilters:
          $ref: '#/components/schemas/ConfigQuery'
          description: Filter jobs into this Job Segment based on various job object fields
        targetCpa:
          type: integer
          format: int32
          description: Goal CPA used by segments utilizing the Target CPA bidding strategy
        emailAddress:
          type: string
          description: >-
            Email address to which new Talroo Apply applicant emails will be
            sent
        minCpc:
          type: integer
          format: int32
          description: Minimum cost per click
        talrooProCpc:
          type: integer
          format: int32
          description: CPC used for Job Segments within Talroo Pro campaigns
        enableAutoArchive:
          type: boolean
          description: Whether this segment is eligible for auto archival
        autoArchiveAt:
          type: string
          format: date-time
          description: The timestamp at which the segment should be automatically archived
          example: 1970-01-01T00:00Z
        useSmartCpc:
          type: boolean
          description: >-
            Flag indicating usage of recommended cpc api to set the bid on jobs
            filtered into this segment
        autopilotMaxCpc:
          type: integer
          format: int32
          description: >-
            Maximum CPC that can be set when using our Autopilot bidding
            strategy (overrides campaign-level value)
    OneTimeBudgetUpdate:
      properties:
        start:
          type: string
          format: date
          description: Date on which this One Time Budget should be added to the campaign
          example: '1970-01-01'
        budgetCents:
          type: integer
          format: int32
          description: Amount of the One Time Budget in cents
        rollover:
          type: boolean
          description: >-
            Boolean indicating whether this One Time Budget should rollover
            unspent budget to the next month
        launchOnStart:
          type: boolean
          description: >-
            Boolean indicating whether this One Time Budget should have the
            ability to push the campaign live on its start date
    MonthlyBudgetChangeUpdate:
      properties:
        applyOn:
          type: string
          format: date
          description: Date on which this new monthly budget is set to take effect
          example: '1970-01-01'
        budgetCents:
          type: integer
          format: int32
          description: The new monthly budget in cents
        absolute:
          type: boolean
          description: >-
            When absolute is TRUE, the Scheduled budget change will replace the
            current monthly budget with the set budgetCents value. When FALSE,
            it will adjust the current monthly budget with the set budgetCents
            value
    JobCampaignCopy:
      properties:
        name:
          type: string
          description: New name for the Job Campaign copy
        poolId:
          type: integer
          format: int32
          description: Job Pool ID to put the new Job Campaign copy under
      required:
        - name
        - poolId
    PostApplicationQuestionsValidateResponse:
      properties:
        valid:
          type: boolean
    JobExpansionUpdate:
      properties:
        title:
          type: string
          description: Job title for this Job Expansion
    JobCampaignUpdate:
      properties:
        name:
          type: string
          description: Job Campaign name
        basicCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Apply and Talroo Basic campaigns
        monthlyBudget:
          type: number
          description: The monthly recurring budget for the campaign
        jobBudgetType:
          type: string
          description: Enable and set job level budget type
          enum:
            - NONE
            - MONTHLY
        jobBudgetDefault:
          type: number
          description: Default job level budget
        applyOrder:
          type: integer
          format: int32
          description: >-
            Order (descending) in which campaigns have their job filters applied
            to remaining jobs within the pool
        jobFilters:
          $ref: '#/components/schemas/ConfigQuery'
          description: Filter jobs into this campaign based on various job object fields
        targetCpa:
          type: integer
          format: int32
          description: Goal CPA used by campaigns utilizing the Target CPA bidding strategy
        talrooApply:
          type: boolean
          description: Boolean indicating whether this is a Talroo Apply campaign
        emailAddress:
          type: string
          description: >-
            Email address to which Talroo Apply applicants and Talroo Event RSVP
            reports will be sent, when applicable
        otherEmailAddresses:
          type: array
          description: >-
            Additional email addresses to receive Talroo Apply New Applicant and
            Event RSVP emails, when applicable
          items:
            type: string
        talrooApplySkipResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether applicants
            will be prompted to submit a resume as part of the Talroo Apply
            application
        talrooApplyReqResume:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether a resume is
            required as part of the Talroo Apply application
        talrooApplySendUnqualified:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Boolean indicating whether we forward
            data for unqualified Talroo Apply applications
        talrooApplyRedir:
          type: boolean
          description: >-
            Talroo Apply Only: [Optional] Feature to automatically redirect
            applicants to the job's URL after applying
        budgetPacing:
          type: boolean
          description: >-
            Whether this campaign is utilizing the automatic budget pacing
            mechanism
        extendBudgetPacing:
          type: boolean
          description: >-
            Whether this campaign continues to use budget pacing after the
            pacingDom
        pacingDom:
          type: integer
          format: int8
          description: >-
            When using budget pacing, apply pacing to the campaign's budget
            until this day of the month
          example: 0
        minCpc:
          type: integer
          format: int32
          description: Minimum cost per click for this Job Campaign
        talrooProCpc:
          type: integer
          format: int32
          description: CPC used by Talroo Pro campaigns
        talrooPro:
          type: string
          description: Boolean indicating whether this is a Talroo Pro campaign
          enum:
            - 'OFF'
            - 'ON'
        eventStartDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event start date'
          example: '1970-01-01'
        eventEndDt:
          type: string
          format: date
          description: 'Hiring Events Only: [Required] Event end date'
          example: '1970-01-01'
        eventLocation:
          type: string
          description: >-
            Hiring Events Only: [Required] Physical address, or URL if online,
            where event will take place
        eventType:
          type: string
          description: >-
            Hiring Events Only: [Required] Whether this is an in-person or
            online event
          enum:
            - IN_PERSON
            - ONLINE
        eventTimes:
          type: string
          description: 'Hiring Events Only: [Required] Formatted times of the event'
        eventTimeslot:
          type: integer
          format: int8
          description: >-
            Hiring Events Only: [Optional] Length of timeslots in minutes (30 or
            60 are supported). When set, this will require users to RSVP to
            specific timeslots
          example: 0
        eventTimeslotLimit:
          type: integer
          format: int32
          description: >-
            Hiring Events Only: [Optional] Limits the amount of RSVPs that can
            be made for a single timeslot
        eventCustomTy:
          type: string
          description: >-
            Hiring Events Only: [Optional] Custom thank you message to show
            users after they RSVP
        eventPrepare:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around how users should
            prepare for the event after they RSVP
        eventWear:
          type: string
          description: >-
            Hiring Events Only: [Optional] Verbiage around what users should
            wear to the event
        fullTargetCpa:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is allowed to bid up on
            high converting traffic. HIGHLY RECOMMENDED TO BE SET TO TRUE
        targetCpaType:
          type: string
          description: >-
            Target CPA Only: Field to indicate what type of Target CPA campaign
            this is
          enum:
            - NONE
            - CAMPAIGN
            - JOB
            - CAMPAIGN_FIXED
            - JOB_FIXED
        autopilot:
          type: boolean
          description: >-
            Boolean indicating whether this campaign is utilizing our Autopilot
            bidding strategy
        autopilotMaxCpc:
          type: integer
          format: int32
          description: >-
            Maximum CPC that can be set when using our Autopilot bidding
            strategy
        additionalFields:
          type: object
          additionalProperties:
            type: string
          description: >-
            Additional Field object to be used with integrations. Please reach
            out to your Talroo POC for options
        talrooFeaturedType:
          type: string
          description: Enum indicating if this campaign is a Talroo Featured campaign
          enum:
            - 'OFF'
            - CPC_BASED
            - ALWAYS_ON
            - J2C_CPC_BASED
            - J2C_ALWAYS_ON
            - AI_ALWAYS_ON
            - ALWAYS_ON_ABSOLUTE
        talrooApplyPro:
          type: boolean
          description: Boolean indicating if this campaign is a Talroo Apply Pro campaign
        sendReminders:
          type: string
          description: >-
            Boolean indicating whether this campaign sends reminders for
            unfinished applications
          enum:
            - 'OFF'
            - 'ON'
        reminderType:
          type: string
          description: >-
            Enum indicating how this campaign sends reminders for unfinished
            applications
          enum:
            - NONE
            - EMAIL
            - SMS
            - BOTH
        applicationLinkOverride:
          type: string
          description: The job application link override for a campaign
        addressQuestion:
          type: string
          description: >-
            Whether we add an address question to the Talroo Apply application
            form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
        workExperienceQuestions:
          type: string
          description: >-
            Whether we add work experience questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
        educationHistoryQuestions:
          type: string
          description: >-
            Whether we add education history questions to the Talroo Apply
            application form
          enum:
            - 'OFF'
            - OPTIONAL
            - REQUIRED
            - REQUIRE_IF_NO_RESUME
            - OPTIONAL_IF_NO_RESUME
        enableAutoArchive:
          type: boolean
          description: Whether this campaign is eligible for auto archival
        autoArchiveAt:
          type: string
          format: date-time
          description: The timestamp at which the campaign should be automatically archived
          example: 1970-01-01T00:00Z
        useSmartCpc:
          type: boolean
          description: >-
            Flag indicating usage of recommended cpc api to set the bid on jobs
            filtered into this campaign
        candidateTier:
          type: string
          description: The minimum tier of candidate targeting for this campaign
          enum:
            - FT
            - ET
            - ST
        candidateTierSettings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CandidateTierSettings'
          description: >-
            Candidate tier settings with multiplier and source parameter for
            each tier
    JsonNode:
      properties:
        valueAsText:
          type: string
          deprecated: true
        fieldNames: {}
        array:
          type: boolean
        fields: {}
        'null':
          type: boolean
        elements: {}
        number:
          type: boolean
        int:
          type: boolean
        long:
          type: boolean
        double:
          type: boolean
        bigDecimal:
          type: boolean
        bigInteger:
          type: boolean
        numberType:
          type: string
          enum:
            - INT
            - LONG
            - BIG_INTEGER
            - FLOAT
            - DOUBLE
            - BIG_DECIMAL
        decimalValue:
          type: number
        doubleValue:
          type: number
          format: double
        intValue:
          type: integer
          format: int32
        longValue:
          type: integer
          format: int64
        bigIntegerValue:
          type: integer
        valueNode:
          type: boolean
        containerNode:
          type: boolean
        missingNode:
          type: boolean
        object:
          type: boolean
        pojo:
          type: boolean
        integralNumber:
          type: boolean
        floatingPointNumber:
          type: boolean
        textual:
          type: boolean
        boolean:
          type: boolean
        binary:
          type: boolean
        numberValue:
          type: number
        booleanValue:
          type: boolean
        binaryValue:
          type: string
          format: byte
        valueAsInt:
          type: integer
          format: int32
          deprecated: true
        valueAsLong:
          type: integer
          format: int64
          deprecated: true
        valueAsDouble:
          type: number
          format: double
          deprecated: true
        valueAsBoolean:
          type: boolean
          deprecated: true
        textValue:
          type: string
    MaintenanceDescription:
      properties:
        status:
          type: string
          enum:
            - INACTIVE
            - PLANNED
            - UNDERWAY
        message:
          type: string
        startsAt:
          type: string
          format: date-time
          example: 1970-01-01T00:00Z
        endsAt:
          type: string
          format: date-time
          example: 1970-01-01T00:00Z
    StatusResponse:
      properties:
        status:
          type: string
          description: Enum describing the current status of the Talroo Platform API
          enum:
            - DOWN
            - DEGRADED
            - UP
        version:
          type: string
          description: Enum describing the current status of the Talroo Platform API
        details:
          $ref: '#/components/schemas/JsonNode'
          description: More Information about the current status of each component
        maintenance:
          $ref: '#/components/schemas/MaintenanceDescription'
          description: Fields describing any planned maintenance outage periods
    PageJobExpansion:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobExpansion'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageScheduledPause:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledPause'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    ApplicationQuestion:
      properties:
        id:
          type: string
          description: Unique ID for the question
        type:
          type: string
          description: Type of question
          enum:
            - textarea
            - text
            - select
            - hierarchical
            - multiselect
            - date
            - file
            - information
            - pagebreak
            - questionset
        question:
          type: string
          description: >-
            Question text that applicants see. Required except for type
            "information"
        text:
          type: string
          description: Text that applicants see. Required for type "information"
        options:
          type: array
          description: >-
            List of options available in the dropdown menu. Required for type
            "select" and "multiselect"
          items:
            $ref: '#/components/schemas/ApplicationQuestionOption'
        hierarchicalOptions:
          type: array
          description: List of hierarchical questions of type "select"
          items:
            $ref: '#/components/schemas/ApplicationQuestionHierarchicalOption'
        required:
          type: boolean
          description: >-
            Whether the question is required. Default is false. Required if type
            "select" has an option marked as "correct"
        format:
          type: string
          description: Accepted format of the input for type "text".
          enum:
            - integer
            - decimal
            - numeric_text
        correct:
          type: string
          description: >-
            For the type "text" with format "integer" or "decimal": this can
            denote a correct range of answers with the following format [min,
            max]
        limit:
          type: integer
          format: int32
          description: Character limit of the answer for type "text" and "textarea"
        min:
          type: string
          description: Minimum value of the answer
        max:
          type: string
          description: Maximum value of the answer
        condition:
          $ref: '#/components/schemas/ApplicationQuestionCondition'
          description: >-
            Activates this question if the previous question's answer is equal
            to the value
        questions:
          type: array
          description: >-
            ${com.talroo.schema.dto.campaign-application-question.questions.description}
          items:
            $ref: '#/components/schemas/ApplicationQuestion'
        repeated:
          type: boolean
          description: >-
            ${com.talroo.schema.dto.campaign-application-question.repeated.description}
    ApplicationQuestionCondition:
      properties:
        id:
          type: string
          description: Question ID of the previous question
        value:
          type: string
          description: Answer value of the previous question that activates this question
      required:
        - id
        - value
    ApplicationQuestionHierarchicalOption:
      properties:
        id:
          type: string
          description: Unique ID for the question
        question:
          type: string
          description: >-
            Question text that applicants see. Required except for type
            "information"
        options:
          type: array
          description: >-
            List of options available in the dropdown menu. Required for type
            "select" and "multiselect"
          items:
            $ref: '#/components/schemas/ApplicationQuestionOption'
        required:
          type: boolean
          description: >-
            Whether the question is required. Default is false. Required if type
            "select" has an option marked as "correct"
        type:
          type: string
          description: Type of question
          enum:
            - textarea
            - text
            - select
            - hierarchical
            - multiselect
            - date
            - file
            - information
            - pagebreak
            - questionset
        format:
          type: string
          description: Accepted format of the input for type "text".
          enum:
            - integer
            - decimal
            - numeric_text
        condition:
          $ref: '#/components/schemas/ApplicationQuestionCondition'
          description: >-
            Activates this question if the previous question's answer is equal
            to the value
      required:
        - condition
        - id
        - options
    ApplicationQuestionOption:
      properties:
        label:
          type: string
          description: >-
            Label for option in dropdown menu. Required for type "select" and
            "multi-select"
        value:
          type: string
          description: >-
            Value for option in dropdown menu. Required for type "select" and
            "multi-select"
        correct:
          type: boolean
          description: >-
            Whether the option is correct. Only one option can be marked
            correct. Required for type "select"
      required:
        - label
        - value
    ApplicationUserAnswer:
      properties:
        applicationId:
          type: integer
          format: int32
          description: Application ID
        id:
          type: integer
          format: int32
          description: Answer ID
        customerQuestionId:
          type: string
          description: Customer's question ID
          maxLength: 256
          minLength: 0
        answer:
          $ref: '#/components/schemas/JsonNode'
          description: User's answer
        question:
          $ref: '#/components/schemas/ApplicationQuestion'
          description: Question dictionary
        questionIndex:
          type: integer
          format: int32
          description: Question index
        fileStatus:
          type: string
          description: The file status after scanned
          enum:
            - PENDING
            - SUCCESS
            - FAILURE
      required:
        - answer
        - customerQuestionId
        - question
        - questionIndex
    EncodedFile:
      properties:
        fileName:
          type: string
          description: Name of the file
        contentType:
          type: string
          description: Type of the file
        contentSha256:
          type: string
          description: Hash of the file
        data:
          type: string
          description: Base64 encoded file
    JobApplication:
      properties:
        id:
          type: integer
          format: int32
          description: Job Application ID
        tlrApplicationId:
          type: string
          description: Job Application UUID
        job:
          $ref: '#/components/schemas/JobApplicationJob'
        applicant:
          $ref: '#/components/schemas/JobApplicationApplicant'
        resume:
          $ref: '#/components/schemas/EncodedFile'
          description: Encoded resume for the applicant
        applicationTime:
          type: string
          format: date-time
          description: Timestamp for when the applicant applied to the job
          example: 1970-01-01T00:00Z
        completed:
          type: boolean
          description: Boolean whether this application is complete
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Application
          example: 1970-01-01T00:00Z
        tlrSid:
          type: string
          description: UUID for the click of the application
          maxLength: 128
          minLength: 0
        questionsAndAnswers:
          type: array
          description: List of questions and answers for an application
          items:
            $ref: '#/components/schemas/ApplicationUserAnswer'
          uniqueItems: true
        qualified:
          type: boolean
          description: Boolean whether this applicant was qualified or not
        qualifyingQuestionAnswers:
          type: array
          description: Answers to any Qualifying Questions, if any
          items:
            $ref: '#/components/schemas/JobApplicationQualifyingQuestionAnswer'
        redirectUrl:
          type: string
          description: >-
            A URL to immediately redirect the applicant to on application
            completion
        campaignId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Campaign ID
        segmentId:
          type: integer
          format: int32
          description: Corresponding parent Talroo Segment ID
      required:
        - applicationTime
    JobApplicationApplicant:
      properties:
        firstName:
          type: string
          description: First name of the applicant
          maxLength: 32
          minLength: 0
        lastName:
          type: string
          description: Last name of the applicant
          maxLength: 32
          minLength: 0
        phone:
          type: string
          description: Phone number for the applicant - 10 digit string
          maxLength: 18
          minLength: 0
        emailAddress:
          type: string
          description: Email address for the applicant
          maxLength: 128
          minLength: 0
        address:
          type: string
          description: Address for the applicant
        city:
          type: string
          description: City of the applicant
        state:
          type: string
          description: State of the applicant
        zipcode:
          type: string
          description: Zipcode of the applicant
        country:
          type: string
          description: Country of the applicant
        userAgent:
          type: string
          description: information about the browser for the applicant
      required:
        - emailAddress
    JobApplicationJob:
      properties:
        jobId:
          type: integer
          format: int64
          description: ID for the job that was applied to for this Job Application
        sourceId:
          type: integer
          format: int32
          description: ID for the source that the job belongs to for this Job Application
        jobReference:
          type: string
          description: Reference for the job that was applied to for this Job Application
          maxLength: 128
          minLength: 0
        originalJobReference:
          type: string
          description: >-
            Reference for the original job that was applied to for this Job
            Application. This value indicates the starting job for title
            expansions.
          maxLength: 128
          minLength: 0
        company:
          type: string
          description: Company of the job
          maxLength: 64
          minLength: 0
        title:
          type: string
          description: Title of the job
          maxLength: 200
          minLength: 0
        zipcode:
          type: string
          description: Zipcode of the job
        city:
          type: string
          description: City for the Zipcode of where the job is located
          maxLength: 128
          minLength: 0
        state:
          type: string
          description: State for the Zipcode of where the job is located
          maxLength: 4
          minLength: 0
    JobApplicationQualifyingQuestionAnswer:
      properties:
        questionText:
          type: string
        answers:
          type: array
          items:
            type: string
    PageJobApplication:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobApplication'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    CursorPageJobCountBySegmentInteger:
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobCountBySegment'
        metadata:
          $ref: '#/components/schemas/CursorPageMetadataInteger'
    CursorPageMetadataInteger:
      properties:
        current:
          type: integer
          format: int32
        previous:
          type: integer
          format: int32
        next:
          type: integer
          format: int32
    JobCountBySegment:
      properties:
        customerId:
          type: integer
          format: int32
          description: Talroo Job Customer ID
        segmentId:
          type: integer
          format: int32
          description: Talroo Job Segment ID
        count:
          type: integer
          format: int32
          description: Count of Live Jobs
        liveCount:
          type: integer
          format: int32
          description: Count of Live Jobs
        pausedCount:
          type: integer
          format: int32
          description: Count of Paused Jobs
    CursorPageJobCountByCampaignInteger:
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobCountByCampaign'
        metadata:
          $ref: '#/components/schemas/CursorPageMetadataInteger'
    JobCountByCampaign:
      properties:
        customerId:
          type: integer
          format: int32
          description: Talroo Job Customer ID
        campaignId:
          type: integer
          format: int32
          description: Talroo Job Campaign ID
        count:
          type: integer
          format: int32
          description: Count of Live Jobs
        liveCount:
          type: integer
          format: int32
          description: Count of Live Jobs
        pausedCount:
          type: integer
          format: int32
          description: Count of Paused Jobs
    CallToAction:
      properties:
        id:
          type: integer
          format: int32
          description: Call To Action ID
        description:
          type: string
          description: >-
            Verbiage used on the continue button for Talroo hosted SERPs and job
            pages.
          maxLength: 255
          minLength: 0
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Call To Action
          example: 1970-01-01T00:00Z
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Call To Action
          example: 1970-01-01T00:00Z
      required:
        - description
    JobPool:
      properties:
        id:
          type: integer
          format: int32
          description: Job Pool ID
        subCustomerId:
          type: integer
          format: int32
          description: >-
            ID of the Job Customer sub customer to allow reporting access on
            this pool cross-customer
        name:
          type: string
          description: Job Pool name
          maxLength: 128
          minLength: 0
        additionalFields:
          type: object
          additionalProperties:
            type: string
          description: >-
            Additional Field object to be used with integrations. Please reach
            out to your Talroo POC for options
        callToAction:
          $ref: '#/components/schemas/CallToAction'
          description: >-
            Verbiage used on the continue button for Talroo hosted SERPs and job
            pages. Default is 'Apply'
        callToActionId:
          type: integer
          format: int32
          description: Call To Action ID
        cpaBitmap:
          $ref: '#/components/schemas/CpaBitmap'
          description: >-
            Object indicating which conversion events are being used by the
            Talroo system for traffic optimization
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Pool
          example: 1970-01-01T00:00Z
        enableTlrSid:
          type: boolean
          description: >-
            Boolean indicating whether Talroo click IDs are being appended to
            job URLs to allow for Server to Server conversion tracking
        isCpa:
          type: boolean
          description: Boolean whether this Job Pool is cost per application
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Job Pool
          example: 1970-01-01T00:00Z
        requiredQualifyingQuestionSetIds:
          type: array
          description: >-
            List of Qualifying Question Set IDs which Campaigns in this Job Pool
            are required to have
          items:
            type: integer
            format: int32
          uniqueItems: true
        requiredQualifyingQuestionSets:
          type: array
          description: >-
            List of Qualifying Question Sets which Campaigns in this Job Pool
            are required to have
          items:
            $ref: '#/components/schemas/QuestionSetEmbed'
          uniqueItems: true
        thirdPartyIntegration:
          $ref: '#/components/schemas/Integration'
          description: 3rd Party Integration
        thirdPartyIntegrationType:
          type: string
          description: Type of 3rd Party Integration
          enum:
            - BRAZEN_INTEGRATION
            - GARMON_INTEGRATION
            - GET_SALES_INTEGRATION
            - KELOH_INTEGRATION
            - TENSTREET_INTEGRATION
            - BULLHORN_INTEGRATION
            - AVIONTE_INTEGRATION
            - JOB_TARGET_INTEGRATION
            - RECRUITICS_INTEGRATION
            - ADECCO_INTEGRATION
            - UKG_INTEGRATION
            - APPCAST_INTEGRATION
            - ZENOPLE_INTEGRATION
            - DAYFORCE_INTEGRATION
            - TALENT_REEF_INTEGRATION
            - SAP_INTEGRATION
            - FOUNTAIN_INTEGRATION
            - VECTOR_MARKETING_INTEGRATION
            - ADECCO_INTEGRATION_V2
            - PHENOM_INTEGRATION
            - KOMBO_INTEGRATION
            - ICIMS_INTEGRATION
      required:
        - additionalFields
        - isCpa
    QuestionSetEmbed:
      properties:
        id:
          type: integer
          format: int32
          description: Qualifying Question Set ID
        displayName:
          type: string
          description: Display name for this Qualifying Question Set
        category:
          type: string
          description: Qualifying Question Category for this Qualifying Question Set
    PageJobCampaign:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobCampaign'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PagePauseReason:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/PauseReason'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    CityEmbed:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
    PageZipCity:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/ZipCity'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    StateEmbed:
      properties:
        id:
          type: integer
          format: int32
        abbreviation:
          type: string
        name:
          type: string
    ZipCity:
      properties:
        id:
          type: string
          description: ZIP Code padded with '0' out to 5 characters
          maxLength: 5
          minLength: 0
        longitude:
          type: number
          format: float
          description: Longitude at the center of the ZIP Code
        latitude:
          type: number
          format: float
          description: Latitude at the center of the ZIP Code
        state:
          $ref: '#/components/schemas/StateEmbed'
          description: Corresponding State of ZIP Code
        city:
          $ref: '#/components/schemas/CityEmbed'
          description: Corresponding City of ZIP Code
    PageState:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/State'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    State:
      properties:
        id:
          type: integer
          format: int32
          description: State ID
        abbreviation:
          type: string
          description: State abbreviation
          maxLength: 2
          minLength: 0
        timeZone:
          type: string
          description: State timezone
          maxLength: 30
          minLength: 0
        name:
          type: string
          description: State name
          maxLength: 15
          minLength: 0
    County:
      properties:
        id:
          type: integer
          format: int32
          description: County ID
        name:
          type: string
          description: County name
          maxLength: 128
          minLength: 0
        state:
          $ref: '#/components/schemas/StateEmbed'
          description: State Object for this County
    PageCounty:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/County'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    City:
      properties:
        id:
          type: integer
          format: int32
          description: City ID
        name:
          type: string
          description: City name
          maxLength: 128
          minLength: 0
        cityState:
          type: string
          description: City, State for display
          maxLength: 128
          minLength: 0
        aliasOf:
          $ref: '#/components/schemas/City'
          description: >-
            The standardized City object which this City object is duplicating,
            if one exists
        state:
          $ref: '#/components/schemas/StateEmbed'
          description: State Object for this City
        county:
          $ref: '#/components/schemas/CountyEmbed'
          description: City's County
    CountyEmbed:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
    PageCity:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/City'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    ExpansionReport:
      properties:
        titleCount:
          type: integer
          format: int32
        expansions:
          type: array
          items:
            $ref: '#/components/schemas/JobExpansionEmbed'
    Job:
      properties:
        id:
          type: string
          description: Platform ID of Job
        adType:
          type: string
          description: >-
            Indicates whether the Job is advertised as part of a Standard Talroo
            Campaign or a Talroo Hiring Event
          enum:
            - JOB
            - EVENT
        atsJobId:
          type: string
          description: ID used for the job in the 3rd party ATS
        campaignId:
          type: integer
          format: int32
          description: Corresponding Talroo Campaign ID of the Job
        campaignName:
          type: string
          description: Corresponding Talroo Campaign name of the Job
        cities:
          type: array
          description: Cities in which this job is being advertised
          items:
            type: string
        states:
          type: array
          description: States in which this job is being advertised
          items:
            type: string
        company:
          type: string
          description: Job company
        companyId:
          type: integer
          format: int32
          description: Talroo ID of job company
        customerId:
          type: integer
          format: int32
          description: Corresponding Talroo Customer ID of the Job
        jobReference:
          type: string
          description: Job reference number
        majorCategoryId:
          type: array
          description: Corresponding Talroo Major Category ID of the job
          items:
            type: string
        majorCategoryName:
          type: array
          description: Corresponding Talroo Major Category name of the job
          items:
            type: string
        minorCategoryId:
          type: array
          description: Corresponding Talroo Minor Category ID of the job
          items:
            type: string
        minorCategoryName:
          type: array
          description: Corresponding Talroo Minor Category name of the job
          items:
            type: string
        poolId:
          type: integer
          format: int32
          description: Corresponding Talroo Pool ID of the job
        segmentId:
          type: integer
          format: int32
          description: Corresponding Talroo Segment ID of the job
        segmentName:
          type: string
          description: Corresponding Talroo Segment name of the job
        sourceId:
          type: integer
          format: int32
          description: Corresponding Talroo Source ID of the job
        status:
          type: string
          description: Current job status
          enum:
            - LIVE
            - PAUSED
            - OUT_OF_BUDGET
            - DELETED
            - EXPIRED
            - EXPUNGED
            - DAILY_CAPPED
            - UNPROCESSED
            - NOT_FOUND
        title:
          type: string
          description: Job title
        zipcodes:
          type: array
          description: Zipcodes in which this job is being advertised
          items:
            type: string
        derived:
          type: boolean
          description: >-
            Boolean indicating whether this job is derived from an original job
            via Radius or Title Expansion
        jobId:
          type: integer
          format: int64
          description: >-
            Talroo Job ID - As seen in the Reporting API, and Job Status
            Endpoints
        isCpa:
          type: boolean
        jobExpansionId:
          type: integer
          format: int32
        originalJobReference:
          type: string
        description:
          type: string
          description: Job description
        url:
          type: string
          description: URL to job landing page
        eventStart:
          type: string
          format: date
          description: Events Only - Start date of the event this job belongs to
          example: '1970-01-01'
        eventEnd:
          type: string
          format: date
          description: Events Only - End date of the event this job belongs to
          example: '1970-01-01'
        llmAllRequirements:
          type: array
          description: AI extracted requirements from the job description
          items:
            type: string
        llmAllRequirementsNormalized:
          type: object
          additionalProperties:
            type: string
          description: >-
            AI extracted requirements from the job description including the
            normalized qualifying question ids
        llmAllPreferences:
          type: array
          description: AI extracted preferences from the job description
          items:
            type: string
        llmAllPreferencesNormalized:
          type: object
          additionalProperties:
            type: string
          description: >-
            AI extracted preferences from the job description including the
            normalized qualifying question ids
        llmCompensation:
          type: array
          description: AI extracted compensation information from the job description
          items:
            type: string
        llmBenefits:
          type: array
          description: AI extracted benefit information from the job description
          items:
            type: string
        llmWorkSchedule:
          type: array
          description: AI extracted work schedule from the job description
          items:
            type: string
        llmWorkLocationType:
          type: array
          description: AI extracted work location type from the job description
          items:
            type: string
        llmVisaStatus:
          type: array
          description: AI extracted visa status from the job description
          items:
            type: string
        copiedLink:
          type: string
        facebookLink:
          type: string
          description: Facebook link for the job
        linkedinLink:
          type: string
          description: LinkedIn link for the job
        twitterLink:
          type: string
          description: Twitter link for the job
        emailLink:
          type: string
          description: Email link for the job
        report:
          $ref: '#/components/schemas/TapJobReport'
          description: '[Optional] Additional info related to the campaign'
        expansion:
          $ref: '#/components/schemas/JobsExpansionExpand'
          description: '[Optional] Expansion information for the job.'
        subCustomerId:
          type: integer
          format: int32
          description: Corresponding Talroo Sub-Customer ID of the job
    JobExpansionEmbed:
      properties:
        id:
          type: integer
          format: int32
        title:
          type: string
        jobFilters:
          $ref: '#/components/schemas/JobExpansionFilter'
    JobsExpansionExpand:
      properties:
        titleCount:
          type: integer
          format: int32
        expansions:
          type: array
          items:
            $ref: '#/components/schemas/JobExpansionEmbed'
    TapJobReport:
      properties:
        jobExpansion:
          $ref: '#/components/schemas/ExpansionReport'
    JobShareableLinks:
      properties:
        copied:
          type: string
          description: Shareable URL link for the job
        facebook:
          type: string
          description: Facebook link for the job
        linkedin:
          type: string
          description: LinkedIn link for the job
        twitter:
          type: string
          description: Twitter link for the job
        email:
          type: string
          description: Email link for the job
    DispositionType:
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
          maxLength: 128
          minLength: 0
        displayName:
          type: string
          maxLength: 128
          minLength: 0
        description:
          type: string
          maxLength: 128
          minLength: 0
        eventCategory:
          type: string
          maxLength: 128
          minLength: 0
      required:
        - description
        - id
        - name
    PageDispositionType:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/DispositionType'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    JobCustomer:
      properties:
        id:
          type: integer
          format: int32
          description: Talroo Job Customer ID
        name:
          type: string
          description: Talroo Job Customer name
          maxLength: 64
          minLength: 0
        ccEmailAddress:
          type: string
          description: Additional email address for this Customer
          maxLength: 512
          minLength: 0
        createdAt:
          type: string
          format: date-time
          description: Timestamp of the creation for this Job Customer
          example: 1970-01-01T00:00Z
        emailAddress:
          type: string
          description: Point of Contact email address for this Customer
          maxLength: 128
          minLength: 0
        features:
          type: object
          additionalProperties:
            type: boolean
        jobApplicationQuestionsEnabled:
          type: boolean
          description: >-
            Flag indicating if job level application questions can be added by
            the customer
        modifiedAt:
          type: string
          format: date-time
          description: Timestamp of last update to this Job Customer
          example: 1970-01-01T00:00Z
        sigmaEmbedUrl:
          type: string
          description: >-
            Sigma Embed URL used to create a pre-signed URL that can be secure
            embedded
        sigmaPreSignedEmbedUrl:
          type: string
          description: >-
            Sigma Pre-Signed Embed URL used as the actual URL that can be secure
            embedded
        test:
          type: boolean
          description: Boolean whether this is a test Job Customer
      required:
        - jobApplicationQuestionsEnabled
        - test
    PageJobSegment:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobSegment'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageOneTimeBudget:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/OneTimeBudget'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageMonthlyBudgetChange:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/MonthlyBudgetChange'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageJobPool:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/JobPool'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageJob:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/Job'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    FacetCursorPageMetadata:
      properties:
        current:
          type: integer
          format: int32
        previous:
          type: integer
          format: int32
        next:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
    FacetCursorPageTapJobTitle:
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/TapJobTitle'
        metadata:
          $ref: '#/components/schemas/FacetCursorPageMetadata'
    JobSourceEmbed:
      properties:
        id:
          type: integer
          format: int32
          description: Source ID
        name:
          type: string
          description: Source Name
        status:
          type: string
          description: Source Status
          enum:
            - UNDER_DEVELOPMENT
            - LIVE
            - USER_PAUSED
            - ARCHIVED
        pool:
          $ref: '#/components/schemas/JobPoolEmbed'
          description: Parent Talroo Pool ID of this source
    TapJobTitle:
      properties:
        title:
          type: string
          description: Unique Job Title
        source:
          $ref: '#/components/schemas/JobSourceEmbed'
          description: Job Source
        count:
          type: integer
          format: int32
          description: Job Source
        expansion:
          $ref: '#/components/schemas/JobsExpansionExpand'
          description: Title-based Expansion
      required:
        - title
    Company:
      properties:
        id:
          type: integer
          format: int32
          description: Talroo Company ID
        name:
          type: string
          description: Company name
          maxLength: 128
          minLength: 0
        customLogoUrl:
          type: string
          description: URL to Company logo, if available
          maxLength: 256
          minLength: 0
        logoExpire:
          type: string
          format: date-time
          description: Time at which the logo URL may expire
      required:
        - name
    PageCompany:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/Company'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    PageAppClient:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/AppClient'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    Category:
      properties:
        id:
          type: string
          description: Job Category ID. See Classification API
        description:
          type: string
          description: Job Job Category description
          maxLength: 100
          minLength: 0
        indication:
          type: string
          description: Whether this is a major or minor Job Category
          enum:
            - MAJOR_INDUSTRY
            - MINOR_INDUSTRY
    PageCategory:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/Category'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
    AppClientScope:
      properties:
        id:
          type: integer
          format: int32
          description: ID of the Scope
        name:
          type: string
          description: ID of the Scope
        title:
          type: string
          description: Title of the Scope
        description:
          type: string
          description: Description of the Scope's Permissions
        enabled:
          type: boolean
          description: Whether or not the scope is enabled
    PageAppClientScope:
      properties:
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/AppClientScope'
        number:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
    basic:
      type: http
      scheme: basic
    icims-bearer:
      type: http
      description: iCIMS webhook JWT token
      scheme: bearer
      bearerFormat: iCIMS-JWT
