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

# Publish coordinated release

> Deploy the named ready draft targets; omit targets to select every configured target.



## OpenAPI

````yaml scripts/reference/sources/openapi/management.json POST /v1/management/games/{gameId}/environments/{envId}/release-drafts/{draftId}:publish
openapi: 3.1.0
info:
  title: Summer Creator Management API
  version: summer.management.creator/v1
  description: >-
    Create and manage your Summer Games store games: store page drafts,
    revisions, preview links, media, builds and releases, and the owner approval
    that publishes them.
servers:
  - url: https://api.summer.games
security:
  - developerBearer: []
tags:
  - name: Games
  - name: Items
  - name: Media
paths:
  /v1/management/games/{gameId}/environments/{envId}/release-drafts/{draftId}:publish:
    post:
      tags:
        - Games
      description: >-
        Deploy the named ready draft targets; omit targets to select every
        configured target. Incomplete unselected targets stay in the editable
        draft. By default, unselected live targets are retained. Set
        replaceTargets to freeze the complete selected configuration, removing
        omitted live targets. Activation waits for all runtime cohorts and the
        existing Game scope review. Initial approval resumes this original
        request. Routine updates inherit Game approval. Stale environment bases
        and revoked qualifications fail closed.
      operationId: publishCoordinatedRelease
      parameters:
        - name: gameId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - name: envId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - name: draftId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 128
        - name: If-Match
          in: header
          required: true
          schema:
            type: string
            pattern: ^"[1-9][0-9]*"$
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                replaceTargets:
                  type: boolean
                  default: false
                  description: >-
                    Freeze only the selected targets as the complete release
                    configuration. Omitted platforms are removed from the next
                    release. Hosted clients require selecting Server. Existing
                    target updates preserve unselected platforms when false.
                targets:
                  type: array
                  minItems: 1
                  maxItems: 7
                  uniqueItems: true
                  items:
                    type: string
                    enum:
                      - server
                      - android
                      - ios
                      - linux
                      - macos
                      - web
                      - windows
              additionalProperties: false
      responses:
        '202':
          description: Accepted immutable intent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoordinatedPublication'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          description: Invalid input.
        '428':
          description: Current draft/policy revision is required.
        '503':
          $ref: '#/components/responses/Unavailable'
components:
  schemas:
    CoordinatedPublication:
      type: object
      properties:
        releaseId:
          type: string
          minLength: 1
          maxLength: 128
        operationId:
          type: string
          minLength: 1
          maxLength: 128
        state:
          type: string
          const: pending
        targets:
          description: >-
            Independent target selections. The server key takes buildId only;
            other keys name client platforms.
          type: object
          properties: {}
          additionalProperties:
            $ref: '#/components/schemas/ReleaseBuildSelection'
      required:
        - releaseId
        - operationId
        - state
    ReleaseBuildSelection:
      type: object
      description: >-
        The server target selects only a server buildId. Client targets may
        retain an upload before a server exists; deploying a client requires its
        exact trusted qualification. Upload inspection alone is insufficient.
      properties:
        buildId:
          type: string
          maxLength: 128
        uploadId:
          type: string
          minLength: 1
          maxLength: 128
        qualificationId:
          type: string
          maxLength: 128
      anyOf:
        - required:
            - buildId
          properties:
            buildId:
              type: string
              minLength: 1
        - required:
            - uploadId
      additionalProperties: false
    Error:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
            - retryable
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string
            retryable:
              type: boolean
  responses:
    NotFound:
      description: Missing or inaccessible resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: Lifecycle or idempotency conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unavailable:
      description: Required dependency unavailable; the error is retryable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    developerBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Your Summer account token. An agent gets it by signing in with OAuth:
        `summer login --store` in the Summer CLI, or the Summer connector in an
        AI app. Agent tokens can call only the operations on these pages.
        Publishing needs an approval from the game's owner first.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.