> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# config/edit

> Apply typed app, ad unit, ad unit group, network mapping, list, tag, test-device, line-item, and A/B test config edits. Requires the `configuration:write` permission. Ordinary edit actions and A/B test create return draft configs. A/B test update, start, end, promote, and delete publish the resulting configuration as live.



## OpenAPI

````yaml https://provisioning.cloudx.io/api/v1/openapi.yaml post /config/edit
openapi: 3.0.3
info:
  title: CloudX API
  description: >-
    Use the CloudX API to retrieve reporting metrics, inspect auctions, and read
    account configuration.
  version: 1.0.0
servers:
  - url: https://provisioning.cloudx.io/api/v1
security: []
tags:
  - name: Authentication
    description: Validate CloudX API keys and inspect authenticated account details.
  - name: Reporting
    description: >-
      Retrieve CloudX reporting metrics for apps, ad units, bidders, and
      exports.
  - name: Configuration
    description: Read live, draft, and published CloudX account configuration.
  - name: Auction Inspection
    description: Inspect auctions, rounds, bids, and related delivery details.
paths:
  /config/edit:
    post:
      tags:
        - Configuration
      summary: config/edit
      description: >-
        Apply typed app, ad unit, ad unit group, network mapping, list, tag,
        test-device, line-item, and A/B test config edits. Requires the
        `configuration:write` permission. Ordinary config edit actions apply to
        a draft: if config_id points to a draft, that draft is edited in place;
        otherwise a new draft is created. A/B test create also creates a draft.
        A/B test update, start, end, promote, and delete actions publish the
        resulting configuration as live and must be submitted as the only
        operation in the request. Ad-unit and line-item `bidfloor` values are
        decimal USD CPM; for example, `1.5` means $1.50 CPM.
      operationId: postConfigEdit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigEditRequest'
      responses:
        '200':
          description: >-
            Result of the applied config edit. Ordinary edits and A/B test
            create return a draft result; A/B test update, start, end, promote,
            and delete return a published config result.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ConfigEditResponse'
                  - $ref: '#/components/schemas/ConfigABTestCreateResponse'
                  - $ref: '#/components/schemas/ConfigABTestPublishResponse'
        '400':
          description: Invalid request or config edit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Config not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ConfigEditRequest:
      type: object
      required:
        - operations
      properties:
        config_id:
          type: string
          description: >-
            Config row ID to edit. Defaults to the current live config. Draft
            configs are edited in place; published configs are copied into a new
            draft.
        summary:
          type: string
          description: >-
            Draft name or edit summary. Required for ordinary draft edits.
            Optional for A/B test operations; when provided, it is used as the
            draft or published version label.
        operations:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigEditOperation'
    ConfigEditResponse:
      type: object
      required:
        - id
        - account_id
        - kind
        - created
        - base_config_id
        - applied_paths
        - validation
      properties:
        id:
          type: string
          description: Draft config ID containing the edited config.
        account_id:
          type: string
        kind:
          type: string
          enum:
            - draft
        created:
          type: boolean
          description: True when a new draft was created from a published or live config.
        base_config_id:
          type: string
          description: Source config row ID that was edited or copied.
        applied_paths:
          type: array
          items:
            type: string
        validation:
          $ref: '#/components/schemas/ConfigValidationResponse'
    ConfigABTestCreateResponse:
      type: object
      required:
        - draft_id
      properties:
        draft_id:
          type: string
          description: Draft config ID containing the created A/B test.
    ConfigABTestPublishResponse:
      type: object
      required:
        - config_id
        - version_number
      properties:
        config_id:
          type: string
          description: Published config row ID that is now live.
        version_number:
          type: integer
          format: int32
          description: Account-local published config version number.
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    ConfigEditOperation:
      description: >-
        One typed config edit operation. Each operation object must contain
        exactly one supported action key.
      oneOf:
        - $ref: '#/components/schemas/ConfigCreateAppOperation'
        - $ref: '#/components/schemas/ConfigUpdateAppOperation'
        - $ref: '#/components/schemas/ConfigDeleteAppOperation'
        - $ref: '#/components/schemas/ConfigCreateAdUnitOperation'
        - $ref: '#/components/schemas/ConfigUpdateAdUnitOperation'
        - $ref: '#/components/schemas/ConfigDeleteAdUnitOperation'
        - $ref: '#/components/schemas/ConfigUpsertNetworkMappingOperation'
        - $ref: '#/components/schemas/ConfigDeleteNetworkMappingOperation'
        - $ref: '#/components/schemas/ConfigCreateAdUnitGroupOperation'
        - $ref: '#/components/schemas/ConfigUpdateAdUnitGroupOperation'
        - $ref: '#/components/schemas/ConfigDeleteAdUnitGroupOperation'
        - $ref: '#/components/schemas/ConfigRemoveAdUnitFromGroupOperation'
        - $ref: '#/components/schemas/ConfigCreateListOperation'
        - $ref: '#/components/schemas/ConfigUpdateListOperation'
        - $ref: '#/components/schemas/ConfigDeleteListOperation'
        - $ref: '#/components/schemas/ConfigCreateTagOperation'
        - $ref: '#/components/schemas/ConfigUpdateTagOperation'
        - $ref: '#/components/schemas/ConfigDeleteTagOperation'
        - $ref: '#/components/schemas/ConfigUpsertTestDeviceOperation'
        - $ref: '#/components/schemas/ConfigDeleteTestDeviceOperation'
        - $ref: '#/components/schemas/ConfigCreateABTestOperation'
        - $ref: '#/components/schemas/ConfigUpdateABTestOperation'
        - $ref: '#/components/schemas/ConfigStartABTestOperation'
        - $ref: '#/components/schemas/ConfigEndABTestOperation'
        - $ref: '#/components/schemas/ConfigPromoteABTestOperation'
        - $ref: '#/components/schemas/ConfigDeleteABTestOperation'
        - $ref: '#/components/schemas/ConfigCreateLineItemOperation'
        - $ref: '#/components/schemas/ConfigUpdateLineItemOperation'
        - $ref: '#/components/schemas/ConfigDeleteLineItemOperation'
    ConfigValidationResponse:
      type: object
      required:
        - valid
        - error_count
        - warning_count
        - issues
        - yaml
      properties:
        valid:
          type: boolean
        error_count:
          type: integer
          format: int32
        warning_count:
          type: integer
          format: int32
        issues:
          type: array
          items:
            $ref: '#/components/schemas/ConfigValidationIssue'
        yaml:
          type: string
        source:
          $ref: '#/components/schemas/ConfigValidationSource'
    ConfigCreateAppOperation:
      type: object
      additionalProperties: false
      required:
        - create_app
      properties:
        create_app:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateAppOperationItem'
    ConfigUpdateAppOperation:
      type: object
      additionalProperties: false
      required:
        - update_app
      properties:
        update_app:
          description: >-
            Patch one or more apps. Each item requires id; omitted fields keep
            their current values. Send an empty string to clear optional string
            fields. JSON null does not clear fields; it is equivalent to
            omission.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateAppOperationItem'
    ConfigDeleteAppOperation:
      type: object
      additionalProperties: false
      required:
        - delete_app
      properties:
        delete_app:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteAppOperationItem'
    ConfigCreateAdUnitOperation:
      type: object
      additionalProperties: false
      required:
        - create_ad_unit
      properties:
        create_ad_unit:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateAdUnitOperationItem'
    ConfigUpdateAdUnitOperation:
      type: object
      additionalProperties: false
      required:
        - update_ad_unit
      properties:
        update_ad_unit:
          description: >-
            Patch one or more ad units. Each item requires id; omitted fields
            keep their current values, except omitted type-specific fields may
            be cleared when `type` changes to a format that does not support
            them. JSON null clears bannerRefreshRateMs, rewardAmount,
            frequencyCap, and rewardCurrency; null for nativeTemplate,
            rewardCallbackUrl, networkMappings, and arbiterEnabled acts like
            omission. Send [] for networkMappings or an empty string for
            optional string fields to clear them.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateAdUnitOperationItem'
    ConfigDeleteAdUnitOperation:
      type: object
      additionalProperties: false
      required:
        - delete_ad_unit
      properties:
        delete_ad_unit:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteAdUnitOperationItem'
    ConfigUpsertNetworkMappingOperation:
      type: object
      additionalProperties: false
      required:
        - upsert_network_mapping
      properties:
        upsert_network_mapping:
          description: >-
            Upsert one or more app-level or ad-unit-level network mappings. Each
            item requires adapter, fields, and exactly one of appId or adUnitId.
            Draft validation preserves adapter-specific required fields and
            value formats.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpsertNetworkMappingOperationItem'
    ConfigDeleteNetworkMappingOperation:
      type: object
      additionalProperties: false
      required:
        - delete_network_mapping
      properties:
        delete_network_mapping:
          description: >-
            Delete one or more app-level or ad-unit-level network mappings. Each
            item requires adapter and exactly one of appId or adUnitId.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteNetworkMappingOperationItem'
    ConfigCreateAdUnitGroupOperation:
      type: object
      additionalProperties: false
      required:
        - create_ad_unit_group
      properties:
        create_ad_unit_group:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateAdUnitGroupOperationItem'
    ConfigUpdateAdUnitGroupOperation:
      type: object
      additionalProperties: false
      required:
        - update_ad_unit_group
      properties:
        update_ad_unit_group:
          description: >-
            Update one or more ad unit groups. Each item requires id and the
            desired `adUnitIds` membership; name is optional.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateAdUnitGroupOperationItem'
    ConfigDeleteAdUnitGroupOperation:
      type: object
      additionalProperties: false
      required:
        - delete_ad_unit_group
      properties:
        delete_ad_unit_group:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteAdUnitGroupOperationItem'
    ConfigRemoveAdUnitFromGroupOperation:
      type: object
      additionalProperties: false
      required:
        - remove_ad_unit_from_group
      properties:
        remove_ad_unit_from_group:
          description: >-
            Remove one or more ad units from ad unit groups. Each item requires
            adUnitGroupId and adUnitId; both may be IDs or resolvable
            references.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigRemoveAdUnitFromGroupOperationItem'
    ConfigCreateListOperation:
      type: object
      additionalProperties: false
      required:
        - create_list
      properties:
        create_list:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateListOperationItem'
    ConfigUpdateListOperation:
      type: object
      additionalProperties: false
      required:
        - update_list
      properties:
        update_list:
          description: >-
            Patch one or more lists. Each item requires id; omitted name, type,
            and values keep their current values. JSON null for values acts like
            omission. Send [] for values to clear the list intentionally. id may
            be a list ID or resolvable list reference.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateListOperationItem'
    ConfigDeleteListOperation:
      type: object
      additionalProperties: false
      required:
        - delete_list
      properties:
        delete_list:
          description: >-
            Delete one or more lists. Deletes fail while the list is referenced
            by line-item targeting or account blocked-list settings.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteListOperationItem'
    ConfigCreateTagOperation:
      type: object
      additionalProperties: false
      required:
        - create_tag
      properties:
        create_tag:
          description: >-
            Create one or more tags. Each item requires id and name; id must be
            a lowercase slug.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateTagOperationItem'
    ConfigUpdateTagOperation:
      type: object
      additionalProperties: false
      required:
        - update_tag
      properties:
        update_tag:
          description: >-
            Patch one or more tags. Each item requires id; omitted name and
            frequencyCap keep their current values. Send null for frequencyCap
            to clear it. id may be a tag ID or resolvable tag reference.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateTagOperationItem'
    ConfigDeleteTagOperation:
      type: object
      additionalProperties: false
      required:
        - delete_tag
      properties:
        delete_tag:
          description: >-
            Delete one or more tags. Deletes fail while the tag is referenced by
            a line item.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteTagOperationItem'
    ConfigUpsertTestDeviceOperation:
      type: object
      additionalProperties: false
      required:
        - upsert_test_device
      properties:
        upsert_test_device:
          description: >-
            Create or patch one or more app test devices. Each item requires
            appId and deviceIfa; appId may be an app ID or resolvable app
            reference. Omitted deviceName, test, and debug fields keep their
            current values on existing devices. New devices default omitted test
            to 0 and omitted debug to false.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpsertTestDeviceOperationItem'
    ConfigDeleteTestDeviceOperation:
      type: object
      additionalProperties: false
      required:
        - delete_test_device
      properties:
        delete_test_device:
          description: >-
            Delete one or more app test devices. Each item requires appId and
            deviceIfa; appId may be an app ID or resolvable app reference.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteTestDeviceOperationItem'
    ConfigCreateABTestOperation:
      type: object
      additionalProperties: false
      required:
        - create_ab_test
      properties:
        create_ab_test:
          description: >-
            Create one A/B test draft for an ad unit. This action clones direct
            line items into test variants and creates a draft config for review;
            it never publishes a config. This action must be submitted as the
            only operation in the request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestCreateRequest'
    ConfigUpdateABTestOperation:
      type: object
      additionalProperties: false
      required:
        - update_ab_test
      properties:
        update_ab_test:
          description: >-
            Update one draft A/B test and publish the updated configuration as
            live. This action must be submitted as the only operation in the
            request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestUpdateRequest'
    ConfigStartABTestOperation:
      type: object
      additionalProperties: false
      required:
        - start_ab_test
      properties:
        start_ab_test:
          description: >-
            Start one draft A/B test and publish the configuration as live. This
            action must be submitted as the only operation in the request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestAdUnitRequest'
    ConfigEndABTestOperation:
      type: object
      additionalProperties: false
      required:
        - end_ab_test
      properties:
        end_ab_test:
          description: >-
            End one active A/B test and publish the configuration as live. This
            action must be submitted as the only operation in the request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestEndRequest'
    ConfigPromoteABTestOperation:
      type: object
      additionalProperties: false
      required:
        - promote_ab_test
      properties:
        promote_ab_test:
          description: >-
            Promote one completed A/B test's test variants to control line items
            and publish the configuration as live. This action must be submitted
            as the only operation in the request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestAdUnitRequest'
    ConfigDeleteABTestOperation:
      type: object
      additionalProperties: false
      required:
        - delete_ab_test
      properties:
        delete_ab_test:
          description: >-
            Delete one draft or completed A/B test and publish the configuration
            as live. This action must be submitted as the only operation in the
            request.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/ConfigABTestAdUnitRequest'
    ConfigCreateLineItemOperation:
      type: object
      additionalProperties: false
      required:
        - create_line_item
      properties:
        create_line_item:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigCreateLineItemOperationItem'
    ConfigUpdateLineItemOperation:
      type: object
      additionalProperties: false
      required:
        - update_line_item
      properties:
        update_line_item:
          description: >-
            Patch one or more line items. Each item requires id; omitted fields
            keep their current values. Send null for nullable object/reference
            fields, or [] for array fields, to clear them. JSON null for array
            fields is accepted for compatibility and also clears them.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigUpdateLineItemOperationItem'
    ConfigDeleteLineItemOperation:
      type: object
      additionalProperties: false
      required:
        - delete_line_item
      properties:
        delete_line_item:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ConfigDeleteLineItemOperationItem'
    ConfigValidationIssue:
      type: object
      required:
        - code
        - message
        - severity
      properties:
        code:
          type: string
        path:
          type: string
        message:
          type: string
        severity:
          type: string
          enum:
            - error
            - warning
        line:
          type: integer
          format: int32
        column:
          type: integer
          format: int32
        length:
          type: integer
          format: int32
    ConfigValidationSource:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
    ConfigCreateAppOperationItem:
      type: object
      description: >-
        Create-app request body. IDs and app/event keys are generated by the
        backend.
      additionalProperties: true
      required:
        - name
        - bundle_id
        - platform
        - os_category
      properties:
        name:
          type: string
        bundle_id:
          type: string
        platform:
          type: string
        os_category:
          type: string
        description:
          type: string
          nullable: true
        store_url:
          type: string
          nullable: true
        icon_url:
          type: string
          nullable: true
        app_store_id:
          type: string
          nullable: true
    ConfigUpdateAppOperationItem:
      type: object
      description: >-
        Update-app patch body. Omitted fields keep their current values. JSON
        null acts like omission; send an empty string to clear optional string
        fields.
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
        bundle_id:
          type: string
          nullable: true
        platform:
          type: string
          nullable: true
        os_category:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        store_url:
          type: string
          nullable: true
        icon_url:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
        app_store_id:
          type: string
          nullable: true
    ConfigDeleteAppOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigCreateAdUnitOperationItem:
      type: object
      description: >-
        Create-ad-unit request body. IDs are generated by the backend. `appId`
        may be an app ID or resolvable app reference. `bidfloor` is decimal USD
        CPM; for example, `1.5` means $1.50 CPM.
      additionalProperties: true
      required:
        - name
        - type
        - appId
        - bidfloor
      properties:
        name:
          type: string
        type:
          type: string
        appId:
          type: string
          minLength: 1
        bidfloor:
          type: number
          format: double
        bannerRefreshRateMs:
          type: integer
          nullable: true
        nativeTemplate:
          type: string
          nullable: true
        rewardAmount:
          type: number
          format: double
          nullable: true
        rewardCurrency:
          type: string
          nullable: true
        rewardCallbackUrl:
          type: string
          nullable: true
        frequencyCap:
          allOf:
            - $ref: '#/components/schemas/ConfigEditFrequencyCap'
          nullable: true
        arbiterEnabled:
          type: boolean
          nullable: true
    ConfigUpdateAdUnitOperationItem:
      type: object
      description: >-
        Update-ad-unit patch body. `bidfloor` is decimal USD CPM; for example,
        `1.5` means $1.50 CPM. Omitted fields keep their current values, except
        omitted type-specific fields may be cleared when `type` changes to a
        format that does not support them. JSON null clears bannerRefreshRateMs,
        rewardAmount, frequencyCap, and rewardCurrency; null for nativeTemplate,
        rewardCallbackUrl, networkMappings, and arbiterEnabled is accepted for
        compatibility and acts like omission. Send [] for networkMappings or an
        empty string for optional string fields to clear them.
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
        type:
          type: string
        bidfloor:
          type: number
          format: double
        bannerRefreshRateMs:
          type: integer
          nullable: true
        nativeTemplate:
          type: string
          nullable: true
        rewardAmount:
          type: number
          format: double
          nullable: true
        rewardCurrency:
          type: string
          nullable: true
        rewardCallbackUrl:
          type: string
          nullable: true
        frequencyCap:
          allOf:
            - $ref: '#/components/schemas/ConfigEditFrequencyCap'
          nullable: true
        networkMappings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ConfigEditNetworkMapping'
        arbiterEnabled:
          type: boolean
          nullable: true
    ConfigDeleteAdUnitOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigUpsertNetworkMappingOperationItem:
      type: object
      description: >-
        Upsert one app-level or ad-unit-level network mapping. Exactly one of
        appId or adUnitId is required; both may be IDs or resolvable references.
        Adapter-specific field formats are validated in the returned draft
        validation result.
      additionalProperties: true
      required:
        - adapter
        - fields
      properties:
        appId:
          type: string
          nullable: true
        adUnitId:
          type: string
          nullable: true
        adapter:
          type: string
          minLength: 1
        fields:
          type: object
          additionalProperties:
            type: string
    ConfigDeleteNetworkMappingOperationItem:
      type: object
      description: >-
        Delete one app-level or ad-unit-level network mapping. Exactly one of
        appId or adUnitId is required; both may be IDs or resolvable references.
      additionalProperties: true
      required:
        - adapter
      properties:
        appId:
          type: string
          nullable: true
        adUnitId:
          type: string
          nullable: true
        adapter:
          type: string
          minLength: 1
    ConfigCreateAdUnitGroupOperationItem:
      type: object
      description: >-
        Create-ad-unit-group request body. IDs are generated by the backend.
        `adUnitIds` may contain ad unit IDs or resolvable ad unit references.
      additionalProperties: true
      required:
        - name
        - adUnitIds
      properties:
        name:
          type: string
        adUnitIds:
          type: array
          items:
            type: string
            minLength: 1
    ConfigUpdateAdUnitGroupOperationItem:
      type: object
      description: >-
        Update-ad-unit-group request body. `adUnitIds` may contain ad unit IDs
        or resolvable ad unit references and replaces the group membership.
      additionalProperties: true
      required:
        - id
        - adUnitIds
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
        adUnitIds:
          type: array
          items:
            type: string
            minLength: 1
    ConfigDeleteAdUnitGroupOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigRemoveAdUnitFromGroupOperationItem:
      type: object
      additionalProperties: true
      required:
        - adUnitGroupId
        - adUnitId
      properties:
        adUnitGroupId:
          type: string
          minLength: 1
        adUnitId:
          type: string
          minLength: 1
    ConfigCreateListOperationItem:
      type: object
      description: >-
        Create-list request body. IDs are generated by the backend. `type` must
        be `DOMAIN` or `IAB_CONTENT_CATEGORY`.
      additionalProperties: true
      required:
        - name
        - type
        - values
      properties:
        name:
          type: string
        type:
          type: string
        values:
          type: array
          items:
            type: string
    ConfigUpdateListOperationItem:
      type: object
      description: >-
        Update-list patch body. Omitted fields keep their current values. JSON
        null for values is accepted for compatibility and acts like omission.
        Send [] for values to clear the list intentionally.
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        values:
          type: array
          nullable: true
          items:
            type: string
    ConfigDeleteListOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigCreateTagOperationItem:
      type: object
      description: Create-tag request body. `frequencyCap` is optional.
      additionalProperties: true
      required:
        - id
        - name
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
        frequencyCap:
          allOf:
            - $ref: '#/components/schemas/ConfigEditFrequencyCap'
          nullable: true
    ConfigUpdateTagOperationItem:
      type: object
      description: >-
        Update-tag patch body. Omitted fields keep their current values. JSON
        null for frequencyCap clears it.
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
          nullable: true
        frequencyCap:
          allOf:
            - $ref: '#/components/schemas/ConfigEditFrequencyCap'
          nullable: true
    ConfigDeleteTagOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigUpsertTestDeviceOperationItem:
      type: object
      description: >-
        Upsert-test-device patch body. Omitted deviceName, test, and debug
        fields keep their current values on existing devices. Send deviceName as
        an empty string to clear it, test as 0 to use the default test bucket,
        and debug as false to disable debug mode.
      additionalProperties: true
      required:
        - appId
        - deviceIfa
      properties:
        appId:
          type: string
          minLength: 1
        deviceIfa:
          type: string
          minLength: 1
        deviceName:
          type: string
          nullable: true
        test:
          type: integer
          nullable: true
        debug:
          type: boolean
          nullable: true
    ConfigDeleteTestDeviceOperationItem:
      type: object
      additionalProperties: true
      required:
        - appId
        - deviceIfa
      properties:
        appId:
          type: string
          minLength: 1
        deviceIfa:
          type: string
          minLength: 1
    ConfigABTestCreateRequest:
      type: object
      additionalProperties: true
      required:
        - ad_unit_id
        - name
      properties:
        ad_unit_id:
          type: string
          minLength: 1
          description: Ad unit ID or resolvable ad unit reference.
        name:
          type: string
          description: A/B test name.
        traffic_ratio:
          type: number
          format: double
          description: >-
            Fraction of traffic assigned to the test variant. Defaults to 0.5.
            Must be greater than 0 and at most 0.5.
        countries:
          type: array
          items:
            type: string
          description: >-
            Countries targeted by the test variant. Accepts ISO 3166-1 alpha-2
            or alpha-3 codes; values are stored as alpha-3.
    ConfigABTestUpdateRequest:
      type: object
      additionalProperties: true
      required:
        - ad_unit_id
        - name
        - traffic_ratio
      properties:
        ad_unit_id:
          type: string
          minLength: 1
          description: Ad unit ID or resolvable ad unit reference.
        name:
          type: string
          description: A/B test name.
        traffic_ratio:
          type: number
          format: double
          description: >-
            Fraction of traffic assigned to the test variant. Must be greater
            than 0 and at most 0.5.
        countries:
          type: array
          items:
            type: string
          description: >-
            Countries targeted by the test variant. Accepts ISO 3166-1 alpha-2
            or alpha-3 codes; values are stored as alpha-3.
    ConfigABTestAdUnitRequest:
      type: object
      additionalProperties: true
      required:
        - ad_unit_id
      properties:
        ad_unit_id:
          type: string
          minLength: 1
          description: Ad unit ID or resolvable ad unit reference.
    ConfigABTestEndRequest:
      type: object
      additionalProperties: true
      required:
        - ad_unit_id
      properties:
        ad_unit_id:
          type: string
          minLength: 1
          description: Ad unit ID or resolvable ad unit reference.
        winner:
          type: string
          description: >-
            Winning variant, either control or test. Omit when no winner is
            selected.
          enum:
            - control
            - test
    ConfigCreateLineItemOperationItem:
      type: object
      description: >-
        Create-line-item request body. `bidfloor` is decimal USD CPM; for
        example, `1.5` means $1.50 CPM.
      additionalProperties: true
      required:
        - name
        - priority
        - bidfloor
      properties:
        name:
          type: string
        priority:
          type: integer
          minimum: 1
          maximum: 12
        bidfloor:
          type: number
          format: double
        status:
          type: string
        tagRefs:
          type: array
          nullable: true
          items:
            type: string
        flight:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
        schedule:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
        newTags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ConfigEditOpenObject'
        bidders:
          type: array
          nullable: true
          items:
            type: string
        adUnitId:
          type: string
          nullable: true
        adUnitGroupId:
          type: string
          nullable: true
        blockedCategoriesListId:
          type: string
          nullable: true
        blockedDomainsListId:
          type: string
          nullable: true
        target:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
    ConfigUpdateLineItemOperationItem:
      type: object
      description: >-
        Update-line-item patch body. `bidfloor` is decimal USD CPM; for example,
        `1.5` means $1.50 CPM. Omitted fields keep their current values. Send
        null for nullable object/reference fields, or [] for array fields, to
        clear them. JSON null for array fields is accepted for compatibility and
        also clears them.
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
        priority:
          type: integer
          minimum: 1
          maximum: 12
        bidfloor:
          type: number
          format: double
        status:
          type: string
        tagRefs:
          type: array
          nullable: true
          items:
            type: string
        flight:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
        schedule:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
        newTags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ConfigEditOpenObject'
        bidders:
          type: array
          nullable: true
          items:
            type: string
        adUnitId:
          type: string
          nullable: true
        adUnitGroupId:
          type: string
          nullable: true
        blockedCategoriesListId:
          type: string
          nullable: true
        blockedDomainsListId:
          type: string
          nullable: true
        target:
          allOf:
            - $ref: '#/components/schemas/ConfigEditOpenObject'
          nullable: true
    ConfigDeleteLineItemOperationItem:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
    ConfigEditFrequencyCap:
      type: object
      additionalProperties: true
      required:
        - maxImpressions
        - timeWindow
      properties:
        maxImpressions:
          type: integer
        timeWindow:
          type: string
    ConfigEditNetworkMapping:
      type: object
      additionalProperties: true
      required:
        - adapter
      properties:
        adapter:
          type: string
        fields:
          type: object
          additionalProperties:
            type: string
    ConfigEditOpenObject:
      type: object
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Create or manage API keys in [CloudX
        Settings](https://app.cloudx.io/settings/api-keys).
      x-default: YOUR_CLOUDX_API_KEY

````