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

# Create a modular source with an avails-feed module

> Create a real seller modular inventory source backed by the uploaded/static avails-feed module, the built-in booking ledger, and, by default, the provider-neutral manual execution workflow. Explicit upstream or no-execution modes return a non-bookable warning until a matching execution module is attached.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml post /inventory-sources/modular/feed
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: >-
    REST API for partners to manage Seller Accounts, inventory sources, and
    billing.


    ## Authentication


    All endpoints require a Bearer token in the Authorization header:

    ```

    Authorization: Bearer your-api-key

    ```


    ## Base URL


    `https://api.interchange.io/api/v2/storefront`


    ## For AI Agents


    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:

    - `initialize`: Start an MCP session

    - `api_call`: Make REST API calls

    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Asks
    description: >-
      What you are waiting on Scope3 for — support, product, and supply asks in
      one list
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for Seller Accounts
  - name: AI Usage
    description: Seller Account AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /inventory-sources/modular/feed:
    post:
      tags:
        - Storefront
      summary: Create a modular source with an avails-feed module
      description: >-
        Create a real seller modular inventory source backed by the
        uploaded/static avails-feed module, the built-in booking ledger, and, by
        default, the provider-neutral manual execution workflow. Explicit
        upstream or no-execution modes return a non-bookable warning until a
        matching execution module is attached.
      operationId: createFeedModularInventorySource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFeedModularSourceBody'
      responses:
        '201':
          description: Create a modular source with an avails-feed module
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedModularSourceResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          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:
    CreateFeedModularSourceBody:
      type: object
      properties:
        sourceId:
          description: Stable source identifier; generated from name when omitted.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[a-z0-9][a-z0-9_-]*$
        name:
          type: string
          minLength: 1
          maxLength: 255
          description: Seller-facing inventory source name.
        includeBookingLedger:
          default: true
          description: Whether to include the built-in reservation ledger.
          type: boolean
        availsSource:
          description: Availability-feed setup metadata.
          type: object
          properties:
            type:
              description: How inventory availability reaches Interchange.
              type: string
              enum:
                - upload
                - spreadsheet
                - api
                - manual
                - unknown
            cadence:
              description: Expected availability refresh cadence.
              type: string
              minLength: 1
              maxLength: 2000
            description:
              description: Additional availability-source details.
              type: string
              minLength: 1
              maxLength: 2000
          additionalProperties: false
        booking:
          description: Booking and reservation setup metadata.
          type: object
          properties:
            mode:
              description: System that owns inventory reservations.
              type: string
              enum:
                - booking_ledger
                - manual
                - upstream_oms
            systemName:
              description: Seller name for the booking system.
              type: string
              minLength: 1
              maxLength: 255
            notes:
              description: Additional booking setup details.
              type: string
              minLength: 1
              maxLength: 2000
          additionalProperties: false
        execution:
          default:
            mode: manual
          description: >-
            Booking execution setup. Omission defaults to the provider-neutral
            manual execution workflow.
          type: object
          properties:
            mode:
              default: manual
              description: >-
                How confirmed bookings are trafficked. Defaults to the
                provider-neutral manual workflow.
              type: string
              enum:
                - manual
                - upstream_system
                - none
            systemName:
              description: Seller name for the execution system.
              type: string
              minLength: 1
              maxLength: 255
            notes:
              description: Additional execution setup details.
              type: string
              minLength: 1
              maxLength: 2000
          additionalProperties: false
        reporting:
          description: Delivery reporting setup metadata.
          type: object
          properties:
            mode:
              description: How delivery reporting reaches Interchange.
              type: string
              enum:
                - upload
                - manual
                - upstream_export
                - api
                - none
            systemName:
              description: Seller name for the reporting system.
              type: string
              minLength: 1
              maxLength: 255
            sampleAvailable:
              description: Whether the seller has a sample report available.
              type: boolean
            notes:
              description: Additional reporting setup details.
              type: string
              minLength: 1
              maxLength: 2000
          additionalProperties: false
        creative:
          description: Creative synchronization setup metadata.
          type: object
          properties:
            mode:
              description: How creative assets are synchronized.
              type: string
              enum:
                - manual
                - upstream_system
                - none
            systemName:
              description: Seller name for the creative system.
              type: string
              minLength: 1
              maxLength: 255
            notes:
              description: Additional creative setup details.
              type: string
              minLength: 1
              maxLength: 2000
          additionalProperties: false
        notes:
          description: Additional modular-source setup notes.
          type: string
          minLength: 1
          maxLength: 2000
      required:
        - name
      additionalProperties: false
      description: >-
        Creates a real seller modular inventory source backed by an
        uploaded/static avails feed module, the built-in booking ledger, and, by
        default, the provider-neutral manual execution workflow. Explicit
        upstream or no-execution modes remain non-secret setup metadata and
        return a non-bookable warning until a matching module exists.
    FeedModularSourceResponse:
      type: object
      properties:
        inventorySourceId:
          type: string
        sourceId:
          type: string
        projection:
          $ref: '#/components/schemas/InventorySourceRuntimeProjection'
        warnings:
          description: >-
            Warnings that explain why the created source cannot yet finalize
            buyer bookings.
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - NO_EXECUTION_MODULE
              message:
                type: string
            required:
              - code
              - message
            additionalProperties: false
      required:
        - inventorySourceId
        - sourceId
        - projection
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
      description: Standard error response
    InventorySourceRuntimeProjection:
      type: object
      properties:
        inventorySource:
          type: object
          properties:
            id:
              type: string
            storefrontId:
              type: string
            sourceId:
              type: string
            name:
              type: string
            executionType:
              type: string
              enum:
                - MODULAR_SOURCE
            status:
              type: string
            healthStatus:
              type: string
            lastError:
              nullable: true
              type: string
            lastCheckedAt:
              nullable: true
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            verificationMode:
              type: string
              enum:
                - LIVE_SOURCE
                - LOCAL_SYNTHETIC
          required:
            - id
            - storefrontId
            - sourceId
            - name
            - executionType
            - status
            - healthStatus
            - lastError
            - lastCheckedAt
          additionalProperties: false
        modules:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceModuleRuntimeProjection'
        lifecycleSummary:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceLifecycleStageSummary'
        openWorkItemCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        activeAvailCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        catalogMappingReadiness:
          allOf:
            - $ref: '#/components/schemas/CatalogMappingReadiness'
      required:
        - inventorySource
        - modules
        - lifecycleSummary
        - openWorkItemCount
        - activeAvailCount
      additionalProperties: false
      description: Operator-facing setup-state projection for a modular inventory source.
    ApiError:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
        message:
          type: string
          description: Human-readable error message
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
      description: Structured error object
    InventorySourceModuleRuntimeProjection:
      type: object
      properties:
        moduleRowId:
          type: string
        inventorySourceId:
          type: string
        moduleInstanceId:
          type: string
        kind:
          type: string
          enum:
            - INVENTORY_FEED
            - BOOKING_LEDGER
            - TRAFFICKING
            - STATUS_SYNC
            - REPORTING_IMPORT
          description: Role a module plays inside a modular inventory source.
        name:
          type: string
        provider:
          nullable: true
          type: string
        status:
          type: string
          enum:
            - CONFIGURING
            - ACTIVE
            - DISABLED
            - ERROR
          description: Operator-facing module lifecycle status.
        contractId:
          nullable: true
          type: string
        contractVersion:
          nullable: true
          type: string
        contract:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InventorySourceModuleContractSummary'
        configuredFieldKeys:
          type: array
          items:
            type: string
        missingSetupFieldsBySource:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceContractFieldGroup'
        lifecycle:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceLifecycleProjection'
        openWorkItemCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        openWorkItemCountsByKind:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 9007199254740991
        lastError:
          nullable: true
          type: string
        lastCheckedAt:
          nullable: true
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        issues:
          type: array
          items:
            type: string
      required:
        - moduleRowId
        - inventorySourceId
        - moduleInstanceId
        - kind
        - name
        - provider
        - status
        - contractId
        - contractVersion
        - contract
        - configuredFieldKeys
        - missingSetupFieldsBySource
        - lifecycle
        - openWorkItemCount
        - openWorkItemCountsByKind
        - lastError
        - lastCheckedAt
        - issues
      additionalProperties: false
      description: Runtime setup state for one module on a modular inventory source.
    InventorySourceLifecycleStageSummary:
      type: object
      properties:
        stage:
          type: string
          enum:
            - LIST_ACCOUNTS
            - INGEST_AVAILS
            - SYNC_INVENTORY
            - GET_PRODUCTS
            - GET_MEDIA_BUYS
            - GET_ACCOUNT_RESOURCES
            - RESERVE_AVAILS
            - FINALIZE_BOOKING
            - RELEASE_BOOKING
            - RECONCILE_DELIVERY
            - SYNC_CREATIVES
            - TRAFFIC_CAMPAIGN
            - UPDATE_CAMPAIGN
            - SYNC_STATUS
            - IMPORT_REPORTING
          description: Lifecycle stage a modular source module may implement.
        supported:
          type: boolean
        status:
          type: string
          enum:
            - UNSUPPORTED
            - NOT_DECLARED
            - MISSING_SETUP
            - RUNTIME_INPUTS_REQUIRED
            - HITL_PENDING
            - READY
            - BLOCKED
          description: >-
            Operator-facing readiness status for a source-level lifecycle stage.
            UNSUPPORTED means every attached module declared what it runs and
            none of them runs this stage. NOT_DECLARED means a module that could
            run it is attached but the platform could not read what that module
            does, so whether it runs the stage is unknown rather than absent —
            and no seller configuration produces or clears that state.
        modes:
          type: array
          items:
            type: string
            enum:
              - AUTOMATED
              - HITL
              - UNSUPPORTED
            description: >-
              How a modular source stage is fulfilled: automated,
              human-in-the-loop, or unsupported.
        moduleInstanceIds:
          type: array
          items:
            type: string
        moduleNames:
          type: array
          items:
            type: string
        setupConfigured:
          type: boolean
        runtimeInputsRequired:
          type: boolean
        hitlRequired:
          type: boolean
        openWorkItemCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        requiredRuntimeFieldSources:
          type: array
          items:
            type: string
            enum:
              - MODULE_CONFIG
              - INVENTORY_FEED
              - PRODUCT_METADATA
              - MEDIA_BUY_INPUT
              - CREATIVE_INPUT
              - REPORTING_UPLOAD
              - SYSTEM
              - MODULE_RESULT
            description: Where a module contract field is expected to come from.
        missingSetupFieldsBySource:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceContractFieldGroup'
        issues:
          type: array
          items:
            type: string
      required:
        - stage
        - supported
        - status
        - modes
        - moduleInstanceIds
        - moduleNames
        - setupConfigured
        - runtimeInputsRequired
        - hitlRequired
        - openWorkItemCount
        - requiredRuntimeFieldSources
        - missingSetupFieldsBySource
        - issues
      additionalProperties: false
      description: >-
        Source-level lifecycle summary for a modular inventory source,
        aggregating setup gaps, runtime input requirements, HITL state, and
        module issues by stage.
    CatalogMappingReadiness:
      type: object
      properties:
        verificationMode:
          type: string
          enum:
            - LIVE_SOURCE
            - LOCAL_SYNTHETIC
        sections:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                enum:
                  - SET_UP_INVENTORY
                  - MAKE_IT_MERCHANDISABLE
                  - PROVE_IT
              title:
                type: string
                enum:
                  - Set up inventory
                  - Make it merchandisable
                  - Prove it
              rows:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    title:
                      type: string
                    requirement:
                      type: string
                      enum:
                        - REQUIRED
                        - RECOMMENDED
                        - NOT_APPLICABLE
                    status:
                      nullable: true
                      description: Null means Unknown because no-value is not a state.
                      type: string
                      enum:
                        - NOT_STARTED
                        - IN_PROGRESS
                        - READY
                        - NEEDS_ATTENTION
                        - BLOCKED
                    evidence:
                      type: array
                      items:
                        type: object
                        properties:
                          code:
                            type: string
                          summary:
                            type: string
                          value:
                            anyOf:
                              - type: string
                              - type: number
                              - type: boolean
                          observedAt:
                            nullable: true
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - code
                          - summary
                          - observedAt
                        additionalProperties: false
                    freshness:
                      type: object
                      properties:
                        state:
                          type: string
                          enum:
                            - FRESH
                            - STALE
                            - UNAVAILABLE
                        observedAt:
                          nullable: true
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      required:
                        - state
                        - observedAt
                      additionalProperties: false
                    sourceOfTruth:
                      type: string
                      enum:
                        - INVENTORY_SOURCE
                        - INVENTORY_FEED
                        - PROPERTY_ROSTER
                        - INVENTORY_COMPONENTS
                        - PRODUCT_CATALOG
                        - PRICING
                        - PLAYBOOK
                        - BUSINESS_RULES
                        - DECISIONING_INPUTS
                        - SOURCE_PROOF
                    action:
                      nullable: true
                      allOf:
                        - $ref: '#/components/schemas/CatalogMappingAction'
                    externalOwner:
                      nullable: true
                      type: string
                      enum:
                        - PUBLISHER
                        - SCOPE3
                        - VENDOR
                    diagnostics:
                      type: array
                      items:
                        type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                  required:
                    - id
                    - title
                    - requirement
                    - status
                    - evidence
                    - freshness
                    - sourceOfTruth
                    - action
                    - externalOwner
                    - diagnostics
                  additionalProperties: false
            required:
              - id
              - title
              - rows
            additionalProperties: false
        progress:
          type: object
          properties:
            ready:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            applicable:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            percent:
              type: integer
              minimum: 0
              maximum: 100
          required:
            - ready
            - applicable
            - percent
          additionalProperties: false
        requiredProgress:
          type: object
          properties:
            ready:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            applicable:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            percent:
              type: integer
              minimum: 0
              maximum: 100
          required:
            - ready
            - applicable
            - percent
          additionalProperties: false
        nextAction:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CatalogMappingAction'
      required:
        - sections
        - progress
        - requiredProgress
        - nextAction
      additionalProperties: false
      description: >-
        Tenant-scoped, read-only per-source catalog-mapping readiness derived
        from existing owners.
    InventorySourceModuleContractSummary:
      type: object
      properties:
        contractId:
          type: string
        version:
          type: string
        moduleType:
          type: string
        primaryKind:
          type: string
          enum:
            - INVENTORY_FEED
            - BOOKING_LEDGER
            - TRAFFICKING
            - STATUS_SYNC
            - REPORTING_IMPORT
          description: Role a module plays inside a modular inventory source.
        provider:
          type: string
        displayName:
          type: string
        description:
          type: string
        maturity:
          description: >-
            Present and `sandbox` when this contract is reachable only from a
            demo or sandbox source. A sandbox contract does NOT state what the
            platform can do with that vendor — the vendor may be implemented
            elsewhere with different automation. Absent means production.
          type: string
          enum:
            - sandbox
        constraints:
          type: array
          items:
            type: string
      required:
        - contractId
        - version
        - moduleType
        - primaryKind
        - displayName
        - description
        - constraints
      additionalProperties: false
      description: Versioned contract summary used to interpret a modular source module.
    InventorySourceContractFieldGroup:
      type: object
      properties:
        source:
          type: string
          enum:
            - MODULE_CONFIG
            - INVENTORY_FEED
            - PRODUCT_METADATA
            - MEDIA_BUY_INPUT
            - CREATIVE_INPUT
            - REPORTING_UPLOAD
            - SYSTEM
            - MODULE_RESULT
          description: Where a module contract field is expected to come from.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceContractField'
      required:
        - source
        - fields
      additionalProperties: false
      description: Contract fields grouped by source.
    InventorySourceLifecycleProjection:
      type: object
      properties:
        stage:
          type: string
          enum:
            - LIST_ACCOUNTS
            - INGEST_AVAILS
            - SYNC_INVENTORY
            - GET_PRODUCTS
            - GET_MEDIA_BUYS
            - GET_ACCOUNT_RESOURCES
            - RESERVE_AVAILS
            - FINALIZE_BOOKING
            - RELEASE_BOOKING
            - RECONCILE_DELIVERY
            - SYNC_CREATIVES
            - TRAFFIC_CAMPAIGN
            - UPDATE_CAMPAIGN
            - SYNC_STATUS
            - IMPORT_REPORTING
          description: Lifecycle stage a modular source module may implement.
        mode:
          type: string
          enum:
            - AUTOMATED
            - HITL
            - UNSUPPORTED
          description: >-
            How a modular source stage is fulfilled: automated,
            human-in-the-loop, or unsupported.
        description:
          type: string
        workItemKind:
          type: string
        outputKeys:
          type: array
          items:
            type: string
        taskContract:
          allOf:
            - $ref: '#/components/schemas/InventorySourceModuleTaskContract'
        requiredFieldsBySource:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceContractFieldGroup'
        missingSetupFieldsBySource:
          type: array
          items:
            $ref: '#/components/schemas/InventorySourceContractFieldGroup'
        moduleConfigReady:
          type: boolean
      required:
        - stage
        - mode
        - description
        - outputKeys
        - requiredFieldsBySource
        - missingSetupFieldsBySource
        - moduleConfigReady
      additionalProperties: false
      description: >-
        Setup-state projection for one lifecycle stage of a modular source
        module. This is configuration completeness, not a guarantee that runtime
        inputs, HITL work, or upstream booking/trafficking have completed.
    CatalogMappingAction:
      oneOf:
        - type: object
          properties:
            operation:
              type: string
              enum:
                - open_modular_avails_commit
            arguments:
              type: object
              properties:
                sourceId:
                  type: string
              required:
                - sourceId
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
        - type: object
          properties:
            operation:
              type: string
              enum:
                - open_property_roster
            arguments:
              type: object
              properties: {}
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
        - type: object
          properties:
            operation:
              type: string
              enum:
                - get_modular_inventory_source_readiness
            arguments:
              type: object
              properties:
                sourceId:
                  type: string
              required:
                - sourceId
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
        - type: object
          properties:
            operation:
              type: string
              enum:
                - get_playbook
            arguments:
              type: object
              properties: {}
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
        - type: object
          properties:
            operation:
              type: string
              enum:
                - get_business_rules
            arguments:
              type: object
              properties: {}
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
        - type: object
          properties:
            operation:
              type: string
              enum:
                - test_storefront_brief
            arguments:
              type: object
              properties:
                sourceId:
                  type: string
              required:
                - sourceId
              additionalProperties: false
          required:
            - operation
            - arguments
          additionalProperties: false
      description: >-
        One portable, validated V2 operation. The same action is projected to
        Modular Source and Seller Setup.
      type: object
    InventorySourceContractField:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
        description:
          type: string
        source:
          type: string
          enum:
            - MODULE_CONFIG
            - INVENTORY_FEED
            - PRODUCT_METADATA
            - MEDIA_BUY_INPUT
            - CREATIVE_INPUT
            - REPORTING_UPLOAD
            - SYSTEM
            - MODULE_RESULT
          description: Where a module contract field is expected to come from.
        valueType:
          type: string
          enum:
            - STRING
            - NUMBER
            - BOOLEAN
            - DATE
            - DATETIME
            - DURATION
            - ENUM
            - OBJECT
            - ARRAY
        required:
          type: boolean
        requiredFor:
          type: array
          items:
            type: string
            enum:
              - LIST_ACCOUNTS
              - INGEST_AVAILS
              - SYNC_INVENTORY
              - GET_PRODUCTS
              - GET_MEDIA_BUYS
              - GET_ACCOUNT_RESOURCES
              - RESERVE_AVAILS
              - FINALIZE_BOOKING
              - RELEASE_BOOKING
              - RECONCILE_DELIVERY
              - SYNC_CREATIVES
              - TRAFFIC_CAMPAIGN
              - UPDATE_CAMPAIGN
              - SYNC_STATUS
              - IMPORT_REPORTING
            description: Lifecycle stage a modular source module may implement.
        mapsTo:
          type: string
        enumValues:
          type: array
          items:
            type: string
      required:
        - key
        - label
        - description
        - source
        - valueType
        - required
        - requiredFor
      additionalProperties: false
      description: Field declared by a modular inventory source contract.
    InventorySourceModuleTaskContract:
      type: object
      properties:
        taskId:
          type: string
        stage:
          type: string
          enum:
            - LIST_ACCOUNTS
            - INGEST_AVAILS
            - SYNC_INVENTORY
            - GET_PRODUCTS
            - GET_MEDIA_BUYS
            - GET_ACCOUNT_RESOURCES
            - RESERVE_AVAILS
            - FINALIZE_BOOKING
            - RELEASE_BOOKING
            - RECONCILE_DELIVERY
            - SYNC_CREATIVES
            - TRAFFIC_CAMPAIGN
            - UPDATE_CAMPAIGN
            - SYNC_STATUS
            - IMPORT_REPORTING
          description: Lifecycle stage a modular source module may implement.
        automationMode:
          type: string
          enum:
            - AUTOMATED
            - HITL
            - AUTOMATED_WITH_HITL_FALLBACK
            - UNSUPPORTED
          description: >-
            How a module runtime task is expected to complete, including whether
            a human fallback can complete it.
        completionPolicy:
          type: string
          enum:
            - NO_TASK
            - MODULE_COMPLETES
            - HUMAN_COMPLETES
            - MODULE_OR_HUMAN_COMPLETES
          description: >-
            Who is allowed to complete the runtime task represented by this
            lifecycle stage.
        defaultActor:
          type: string
          enum:
            - system
            - module
            - operator
            - murph
          description: Default actor expected to perform this runtime task.
        workItemKind:
          type: string
        fallbackWorkItemKind:
          type: string
        operatorAction:
          type: string
        requiredInputKeys:
          type: array
          items:
            type: string
        requiredResultKeys:
          type: array
          items:
            type: string
        outputKeys:
          type: array
          items:
            type: string
        idempotencyKeyFields:
          type: array
          items:
            type: string
        retryable:
          type: boolean
        blocksStage:
          type: boolean
      required:
        - taskId
        - stage
        - automationMode
        - completionPolicy
        - defaultActor
        - requiredInputKeys
        - requiredResultKeys
        - outputKeys
        - retryable
        - blocksStage
      additionalProperties: false
      description: >-
        Runtime task contract emitted by a modular inventory source module for
        operator and Murph work queues.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````