Porter ParameterSets API

Operations for managing parameter sets that supply configuration values to bundle executions.

OpenAPI Specification

porter-parametersets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Porter Bundle Bundles ParameterSets API
  description: The Porter Bundle API provides programmatic access to managing Cloud Native Application Bundles (CNAB) using Porter. It supports listing and inspecting bundles, managing installations, handling credential sets and parameter sets, and querying installation runs and outputs. Porter implements the CNAB spec for packaging applications with their dependencies into distributable installers.
  version: 1.0.0
  contact:
    name: Porter Community
    url: https://porter.sh/community/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:3000
  description: Porter local server (porter server)
security:
- bearerAuth: []
tags:
- name: ParameterSets
  description: Operations for managing parameter sets that supply configuration values to bundle executions.
paths:
  /v1/parametersets:
    get:
      operationId: listParameterSets
      summary: Porter List parameter sets
      description: Returns all parameter sets managed by Porter. A parameter set maps bundle parameter names to their sources, enabling reuse of parameter configurations across multiple bundle installations.
      tags:
      - ParameterSets
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of parameter sets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParameterSetListResponse'
        '401':
          description: Unauthorized
    post:
      operationId: createParameterSet
      summary: Porter Create a parameter set
      description: Creates a new parameter set defining how bundle parameter names are resolved at execution time.
      tags:
      - ParameterSets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParameterSet'
      responses:
        '201':
          description: Parameter set created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParameterSet'
        '400':
          description: Invalid parameter set specification
        '401':
          description: Unauthorized
  /v1/parametersets/{namespace}/{name}:
    get:
      operationId: getParameterSet
      summary: Porter Get a parameter set
      description: Returns the specified parameter set including its parameter mappings. Sensitive parameter values sourced from secret stores are not included in responses.
      tags:
      - ParameterSets
      parameters:
      - $ref: '#/components/parameters/namespace_path'
      - $ref: '#/components/parameters/name_path'
      responses:
        '200':
          description: Parameter set details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParameterSet'
        '401':
          description: Unauthorized
        '404':
          description: Parameter set not found
    delete:
      operationId: deleteParameterSet
      summary: Porter Delete a parameter set
      description: Deletes the specified parameter set. Installations referencing this parameter set will need to be updated before re-running.
      tags:
      - ParameterSets
      parameters:
      - $ref: '#/components/parameters/namespace_path'
      - $ref: '#/components/parameters/name_path'
      responses:
        '204':
          description: Parameter set deleted
        '401':
          description: Unauthorized
        '404':
          description: Parameter set not found
components:
  parameters:
    name_path:
      name: name
      in: path
      required: true
      description: Name of the resource.
      schema:
        type: string
    namespace_path:
      name: namespace
      in: path
      required: true
      description: Porter namespace of the resource.
      schema:
        type: string
    skip:
      name: skip
      in: query
      required: false
      description: Number of records to skip for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
    name:
      name: name
      in: query
      required: false
      description: Filter results by resource name.
      schema:
        type: string
    limit:
      name: limit
      in: query
      required: false
      description: Maximum number of records to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 100
    namespace:
      name: namespace
      in: query
      required: false
      description: Porter namespace to scope the query to. Defaults to the current namespace configured in Porter's context.
      schema:
        type: string
  schemas:
    ParameterMapping:
      type: object
      description: Maps a bundle parameter name to its runtime source.
      required:
      - name
      - source
      properties:
        name:
          type: string
          description: Name of the bundle parameter this mapping applies to.
        source:
          $ref: '#/components/schemas/ValueSource'
    ValueSource:
      type: object
      description: Defines where a credential or parameter value is sourced from at execution time. Exactly one of the source fields should be set.
      properties:
        env:
          type: string
          description: Name of an environment variable providing the value.
        path:
          type: string
          description: Absolute path to a file providing the value.
        value:
          type: string
          description: A literal string value.
        secret:
          type: string
          description: Reference to a secret in the configured secret store plugin, such as a secret name in HashiCorp Vault or Azure Key Vault.
        command:
          type: string
          description: Shell command whose stdout provides the value.
    ParameterSetListResponse:
      type: object
      description: Paginated list of parameter sets.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ParameterSet'
        total:
          type: integer
    ParameterSet:
      type: object
      description: A named collection of parameter mappings that resolve bundle parameter names to their runtime sources, enabling reuse across installations.
      required:
      - name
      - parameters
      properties:
        name:
          type: string
          description: Name of the parameter set.
        namespace:
          type: string
          description: Porter namespace this parameter set belongs to.
        parameters:
          type: array
          description: List of parameter mappings.
          items:
            $ref: '#/components/schemas/ParameterMapping'
        labels:
          type: object
          additionalProperties:
            type: string
          description: Labels for categorizing the parameter set.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the parameter set was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the parameter set was last updated.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token for authenticating to the Porter server API.
externalDocs:
  description: Porter Documentation
  url: https://porter.sh/docs/