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

# Create DefaultValueDefinition



## OpenAPI

````yaml https://api.ravion.com/openapi.yaml post /default-value-definitions
openapi: 3.0.0
info:
  title: Ravion
  version: 0.0.0
servers:
  - url: https://api.ravion.com
security:
  - BearerAuth: []
tags:
  - name: Projects
  - name: Environments
  - name: Pipelines
  - name: PipelineRuns
  - name: TerraformResources
  - name: TerraformExecutionSummaries
  - name: PipelineStepExecutions
  - name: AwsCloudWatch
  - name: PipelineVersions
  - name: Organizations
  - name: Stacks
  - name: StackWorkspaces
  - name: Auth
  - name: OAuth
  - name: User
  - name: Health
  - name: Memberships
  - name: ServiceAccounts
  - name: AwsDefaultNetworks
  - name: AwsAccounts
  - name: ApiKeys
  - name: ExecutionEnvironments
  - name: ModuleDefinitions
  - name: ModuleVersions
  - name: ModuleInstances
  - name: DefaultValueDefinitions
  - name: DefaultValues
  - name: CodeSources
  - name: Github
  - name: Gitlab
  - name: Git
  - name: Values
  - name: Deployments
  - name: DeploymentResources
  - name: InfrastructureEvents
  - name: WebSocket
  - name: Describe
paths:
  /default-value-definitions:
    post:
      tags:
        - DefaultValueDefinitions
      summary: Create DefaultValueDefinition
      operationId: CreateDefaultValueDefinition
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              description: >-
                Request body for creating resources, excluding read-only
                properties
              properties:
                data:
                  additionalProperties: false
                  description: >-
                    Filters a model to only include properties visible during
                    Create lifecycle.
                  properties:
                    description:
                      type: string
                    givenId:
                      allOf:
                        - $ref: '#/components/schemas/GivenId'
                      description: >-
                        User-provided identifier. Must be unique within
                        organization.
                      maxLength: 60
                      minLength: 1
                    name:
                      minLength: 1
                      type: string
                    schema:
                      allOf:
                        - $ref: '#/components/schemas/Module.InputProperty'
                      description: Schema describing the value this default accepts.
                  required:
                    - givenId
                    - name
                    - schema
                  type: object
              required:
                - data
              type: object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    $ref: '#/components/schemas/DefaultValueDefinition'
                required:
                  - data
                type: object
          description: >-
            The request has succeeded and a new resource has been created as a
            result.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The request is invalid or malformed.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You are not authenticated
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You do not have permission to access this resource.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Client error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Server error
components:
  schemas:
    GivenId:
      description: User-provided identifier pattern used by all givenId fields
      maxLength: 60
      pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$
      type: string
    Module.InputProperty:
      description: |-
        Union of all input property types.
        Discriminated by the `type` field on each property model.
        Each variant has a literal `type` property for TypeScript narrowing.
      oneOf:
        - $ref: '#/components/schemas/Module.StringInputProperty'
        - $ref: '#/components/schemas/Module.TextInputProperty'
        - $ref: '#/components/schemas/Module.ObjectInputProperty'
        - $ref: '#/components/schemas/Module.ObjectMapInputProperty'
        - $ref: '#/components/schemas/Module.ObjectArrayInputProperty'
        - $ref: '#/components/schemas/Module.ArrayInputProperty'
        - $ref: '#/components/schemas/Module.ArrayStringInputProperty'
        - $ref: '#/components/schemas/Module.NumberInputProperty'
        - $ref: '#/components/schemas/Module.BooleanInputProperty'
        - $ref: '#/components/schemas/Module.SectionInputProperty'
        - $ref: '#/components/schemas/Module.CompoundInputProperty'
        - $ref: '#/components/schemas/Module.RefInputProperty'
        - $ref: '#/components/schemas/Module.GitRepoInputProperty'
        - $ref: '#/components/schemas/Module.KeyValueInputProperty'
    DefaultValueDefinition:
      additionalProperties: false
      properties:
        createdAt:
          allOf:
            - $ref: '#/components/schemas/UtcDateTime'
          readOnly: true
        createdByType:
          allOf:
            - $ref: '#/components/schemas/DefaultValueDefinition.CreatedByType'
          default: USER
          description: Whether this definition was created by the system or a user.
          readOnly: true
        description:
          type: string
        givenId:
          allOf:
            - $ref: '#/components/schemas/GivenId'
          description: User-provided identifier. Must be unique within organization.
          maxLength: 60
          minLength: 1
        id:
          readOnly: true
          type: string
        name:
          minLength: 1
          type: string
        organizationId:
          readOnly: true
          type: string
        schema:
          allOf:
            - $ref: '#/components/schemas/Module.InputProperty'
          description: Schema describing the value this default accepts.
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/UtcDateTime'
          readOnly: true
      required:
        - id
        - createdAt
        - updatedAt
        - organizationId
        - givenId
        - name
        - schema
        - createdByType
      type: object
    Errors.UserFacingErrorData:
      additionalProperties: false
      description: |-
        User-facing error presentation data.
        This is what the API returns to the frontend after formatting ErrorData
        using CEL templates from the error registry.

        Used for both:
        - Error fields on domain models (e.g., PipelineRun.error)
        - API error response bodies (HTTP 4xx/5xx responses)
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Errors.Action'
          description: Optional action to help resolve the error
        code:
          description: Full error code, e.g., "Ravion:Pipeline:NOT_FOUND"
          type: string
        description:
          description: Additional description with more details
          type: string
        details:
          description: Structured details rendered as user-facing sections.
          items:
            $ref: '#/components/schemas/Errors.UserFacingErrorDetailSection'
          type: array
        isInternal:
          description: >-
            Indicates whether this error is internal (only set when
            ShowInternal=true).

            This allows SUPERADMINs to identify internal errors while viewing
            full details.
          type: boolean
        message:
          description: Main error message (required)
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Error params/metadata. Stripped for internal errors unless
            superadmin.
          type: object
        requestId:
          description: Request ID for correlating errors with server logs.
          type: string
      required:
        - code
        - message
      type: object
    Module.StringInputProperty:
      additionalProperties: false
      description: >-
        Single-line text input property.

        Can be a free-form text field or a dropdown/select when values are
        provided.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/Module.DefaultValueRef'
          description: |-
            Default value for the field
            Example:
            default: us-east-1
            default: $values:first
            Optional
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        min_current_value:
          description: |-
            Use the current deployed value as the minimum allowed value
            Example:
            min_current_value: true
            Optional — defaults to false
          type: boolean
        no_options_message:
          description: |-
            Message shown when the dropdown has no available options
            Example:
            no_options_message: No regions available for this account
            Optional
          type: string
        patterns:
          description: |-
            Regex patterns to validate against
            Example:
            patterns:
            - pattern: ^[a-z0-9-]+$
            message: Must be lowercase alphanumeric
            Optional
          items:
            $ref: '#/components/schemas/Module.ValidationPattern'
          type: array
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder: Enter a value
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for single-line text fields
            Example:
            type: string
            Required
          enum:
            - string
          type: string
        values:
          allOf:
            - $ref: '#/components/schemas/Module.StringValues'
          description: >-
            Allowed values — static array of options or dynamic reference for a
            dropdown

            Example:

            values:

            - value: us-east-1

            label: US East

            - value: eu-west-1

            label: EU West

            Optional
      required:
        - id
        - label
        - type
      type: object
    Module.TextInputProperty:
      additionalProperties: false
      description: >-
        Multi-line text area input property.

        Used for longer text content like descriptions, commands, or
        configuration.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default value for the field
            Example:
            default: "# Default config"
            Optional
          type: string
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        patterns:
          description: |-
            Regex patterns to validate against
            Example:
            patterns:
            - pattern: ^[^\x00]+$
            message: Must not contain null bytes
            Optional
          items:
            $ref: '#/components/schemas/Module.ValidationPattern'
          type: array
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder: Enter your configuration
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for multi-line text areas
            Example:
            type: text
            Required
          enum:
            - text
          type: string
      required:
        - id
        - label
        - type
      type: object
    Module.ObjectInputProperty:
      additionalProperties: false
      description: >-
        Object editor input property.

        Allows users to enter arbitrary object data with syntax highlighting and
        validation.

        Supports both YAML and JSON formats in the UI.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default object value for the field
            Example:
            default:
            key: value
            Optional
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder:
            key: value
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for object editor fields
            Example:
            type: object
            Required
          enum:
            - object
          type: string
      required:
        - id
        - label
        - type
      type: object
    Module.ObjectMapInputProperty:
      additionalProperties: false
      description: >-
        Structured map input property.

        Allows users to edit a map(object(...)) value as keyed cards where each
        value

        is rendered from item_inputs.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          additionalProperties: {}
          description: |-
            Default map value for the field
            Example:
            default:
            prod-to-shared:
            peer_vpc_id: vpc-123
            Optional
          type: object
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        item_inputs:
          description: |-
            Input definitions for each object value in the map.
            Nested module references are not allowed.
          items:
            $ref: '#/components/schemas/Module.RefFallbackInputProperty'
          minItems: 1
          type: array
        item_label:
          description: |-
            Label for each map item, used in add buttons and editor headers
            Example:
            item_label: Connection
            Optional
          type: string
        item_title:
          allOf:
            - $ref: '#/components/schemas/Module.ObjectCollectionItemTitleConfig'
          description: User-facing title template for each map item.
        key:
          allOf:
            - $ref: '#/components/schemas/Module.MapKeyConfig'
          description: Metadata for the map entry key field.
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        required:
          description: |-
            Whether the field must contain at least one entry
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for structured object maps
            Example:
            type: object_map
            Required
          enum:
            - object_map
          type: string
      required:
        - id
        - label
        - type
        - item_inputs
      type: object
    Module.ObjectArrayInputProperty:
      additionalProperties: false
      description: |-
        Structured array input property.
        Allows users to edit a list(object(...)) value as cards where each value
        is rendered from item_inputs.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default array value for the field
            Example:
            default:
            - name: web
            port: 80
            Optional
          items:
            $ref: '#/components/schemas/Module.ObjectArrayDefaultItem'
          type: array
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        item_description:
          description: >-
            User-facing description template shown as a secondary line for each
            array item.

            Supports placeholders like {field_id}.

            Example:

            item_description: "Timeout after {timeout_in_minutes} minutes"

            Optional
          type: string
          x-templateable: true
        item_inputs:
          description: |-
            Input definitions for each object value in the array.
            Nested module references are not allowed.
          items:
            $ref: '#/components/schemas/Module.RefFallbackInputProperty'
          minItems: 1
          type: array
        item_label:
          description: |-
            Label for each array item, used in add buttons and editor headers
            Example:
            item_label: Service
            Optional
          type: string
        item_title:
          allOf:
            - $ref: '#/components/schemas/Module.ObjectCollectionItemTitleConfig'
          description: User-facing title template for each array item.
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        required:
          description: |-
            Whether the field must contain at least one item
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for structured object arrays
            Example:
            type: object_array
            Required
          enum:
            - object_array
          type: string
      required:
        - id
        - label
        - type
        - item_inputs
      type: object
    Module.ArrayInputProperty:
      additionalProperties: false
      description: >-
        Array editor input property.

        Allows users to enter an arbitrary JSON array with syntax highlighting
        and validation.

        Supports both YAML and JSON formats in the UI.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default array value for the field
            Example:
            default:
            - item1
            - item2
            Optional
          items: {}
          type: array
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder: |
            - item1
            - item2
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for array editor fields
            Example:
            type: array
            Required
          enum:
            - array
          type: string
      required:
        - id
        - label
        - type
      type: object
    Module.ArrayStringInputProperty:
      additionalProperties: false
      description: |-
        Array of strings input property.
        Allows users to add/remove multiple string values.
      properties:
        add_button_label:
          description: |-
            Label for the "Add" button below the list
            Example:
            add_button_label: Add Region
            Optional
          type: string
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default array of values
            Example:
            default: [us-east-1, eu-west-1]
            Optional
          items:
            type: string
          type: array
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        patterns:
          description: |-
            Regex patterns to validate each array item against
            Example:
            patterns:
            - pattern: ^[a-z]{2}-[a-z]+-\d$
            message: Must be a valid AWS region
            Optional
          items:
            $ref: '#/components/schemas/Module.ValidationPattern'
          type: array
        placeholder:
          description: |-
            Placeholder text for each input field in the array
            Example:
            placeholder: Enter a value
            Optional
          type: string
        required:
          description: |-
            Whether at least one item is required
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for dynamic string arrays
            Example:
            type: string_array
            Required
          enum:
            - string_array
          type: string
        values:
          allOf:
            - $ref: '#/components/schemas/Module.StringValues'
          description: >-
            Allowed values — static array of options or dynamic reference for a
            multi-select dropdown

            Example:

            values:

            - value: us-east-1

            label: US East

            - value: eu-west-1

            label: EU West

            Optional
      required:
        - id
        - label
        - type
      type: object
    Module.NumberInputProperty:
      additionalProperties: false
      description: >-
        Numeric input property.

        Can be a free-form number field or a dropdown/select when values are
        provided.


        Note: CEL validation ensures min <= max when both are specified.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          anyOf:
            - format: int32
              type: integer
            - $ref: '#/components/schemas/Module.DefaultValueRef'
          description: |-
            Default numeric value
            Example:
            default: 1
            default: $values:first
            Optional
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        max:
          description: |-
            Maximum allowed value
            Example:
            max: 100
            Optional
          format: int32
          type: integer
        min:
          description: |-
            Minimum allowed value
            Example:
            min: 1
            Optional
          format: int32
          type: integer
        min_current_value:
          description: |-
            Use the current deployed value as the minimum allowed value
            Example:
            min_current_value: true
            Optional — defaults to false
          type: boolean
        no_options_message:
          description: |-
            Message shown when the dropdown has no available options
            Example:
            no_options_message: No sizes available for this region
            Optional
          type: string
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder: Enter a number
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for numeric fields
            Example:
            type: number
            Required
          enum:
            - number
          type: string
        values:
          allOf:
            - $ref: '#/components/schemas/Module.NumberValues'
          description: >-
            Allowed values — static array of options or dynamic reference for a
            dropdown

            Example:

            values:

            - value: 1

            label: Small

            - value: 2

            label: Medium

            - value: 4

            label: Large

            Optional
      required:
        - id
        - label
        - type
      type: object
    Module.BooleanInputProperty:
      additionalProperties: false
      description: |-
        Boolean toggle/checkbox input property.
        Renders as a toggle switch or checkbox in the UI.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          description: |-
            Default boolean value
            Example:
            default: false
            Required
          type: boolean
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for boolean toggle fields
            Example:
            type: boolean
            Required
          enum:
            - boolean
          type: string
      required:
        - id
        - label
        - type
        - default
      type: object
    Module.SectionInputProperty:
      additionalProperties: false
      description: |-
        Visual section separator property.
        Used to separate sections in the module form.
        Does not produce any input value - purely for visual organization.
      properties:
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for visual section separators — produces no value
            Example:
            type: section
            Required
          enum:
            - section
          type: string
      required:
        - id
        - label
        - type
      type: object
      x-value-schema: none
    Module.CompoundInputProperty:
      additionalProperties: false
      description: >-
        Compound select input property.

        Allows selecting from options where each option contains multiple
        fields.

        The `fields` array specifies which fields from the selected value to
        expose.


        Note: CEL validation ensures values is always provided for compound
        inputs.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/Module.CompoundFieldValue'
              type: object
            - $ref: '#/components/schemas/Module.DefaultValueRef'
          description: |-
            Default value — a record with the field values
            Example:
            default:
            instance_type: t3.medium
            vcpu: 2
            memory_gb: 4
            default: $values:first
            Optional
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        fields:
          description: |-
            List of field names to expose from the selected compound value
            Example:
            fields: [instance_type, vcpu, memory_gb]
            Required — at least one field
          items:
            type: string
          minItems: 1
          type: array
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        min_current_value:
          description: |-
            Use the current deployed value as the minimum allowed value
            Example:
            min_current_value: true
            Optional — defaults to false
          type: boolean
        no_options_message:
          description: |-
            Message shown when the dropdown has no available options
            Example:
            no_options_message: No instance types available for this region
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for compound select dropdowns
            Example:
            type: compound
            Required
          enum:
            - compound
          type: string
        values:
          allOf:
            - $ref: '#/components/schemas/Module.CompoundValues'
          description: >-
            Allowed values — static array of options or dynamic reference
            (required for compound)

            Example:

            values:

            - instance_type: t3.small

            vcpu: 2

            memory_gb: 2

            label: Small

            Optional
      required:
        - id
        - label
        - type
        - fields
      type: object
    Module.RefInputProperty:
      additionalProperties: false
      description: >-
        Module reference input property.

        Allows selecting another module instance or manually entering fallback
        inputs.


        Example:

        ```json

        {
          "type": "$ref:ravion-aws-vpc",
          "label": "VPC Configuration",
          "mapped_inputs": [
            {
              "id": "vpc_id",
              "type": "string",
              "label": "VPC ID",
              "default": "<< ref.stack.output.vpc_id >>"
            }
          ]
        }

        ```


        Nested input defaults may use normal creation-time template namespaces
        plus

        ref-scoped selected instance references such as "<< ref.input.region >>"

        and "<< ref.stack.output.vpc_id >>".
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        mapped_inputs:
          description: >-
            Input definitions that copy values from the selected referenced
            module into

            this module's input values. Each mapped input is saved as a normal
            input on

            the current module. When users do not select a module instance,
            these same

            fields are shown for manual entry.

            Nested module references are not allowed in mapped inputs.

            Example:

            mapped_inputs:

            - id: vpc_id

            type: string

            label: VPC ID

            default: << ref.stack.output.vpc_id >>

            Optional
          items:
            $ref: '#/components/schemas/Module.RefFallbackInputProperty'
          type: array
        required:
          description: |-
            Whether the module reference is required
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          allOf:
            - $ref: '#/components/schemas/Module.RefTypeDiscriminator'
          description: |-
            Reference to another module type — format is "$ref:<module-type>"
            Example:
            type: $ref:ravion-aws-vpc
            Required
      required:
        - id
        - label
        - type
      type: object
      x-value-schema:
        type: string
    Module.GitRepoInputProperty:
      additionalProperties: false
      description: |-
        Git repository input property.
        Renders a repository selector that stores the full repo URL.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          allOf:
            - $ref: '#/components/schemas/Pipeline.GitRepoUrl'
          description: |-
            Default repository URL
            Example:
            default: https://github.com/myorg/myrepo
            Optional
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        placeholder:
          description: |-
            Placeholder text when the field is empty
            Example:
            placeholder: Select a repository
            Optional
          type: string
        required:
          description: |-
            Whether the field must be filled in
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for git repository selector
            Example:
            type: gitrepo
            Required
          enum:
            - gitrepo
          type: string
      required:
        - id
        - label
        - type
      type: object
    Module.KeyValueInputProperty:
      additionalProperties: false
      description: |-
        Key-value pairs input property.
        Allows users to enter a flat map of string keys to string values.
        Renders a dynamic key-value editor with add/remove buttons.
      properties:
        collapsible:
          description: >-
            Render this field as collapsible (tag when collapsed, full field
            when expanded)


            Supported for all value-producing input types.

            Consecutive collapsible fields are automatically grouped together.

            Divider inputs break collapsible groups.


            Example:

            collapsible: true

            Optional — defaults to false
          type: boolean
        default:
          additionalProperties:
            type: string
          description: |-
            Default key-value pairs for the field
            Example:
            default:
            FOO: bar
            Optional
          type: object
          x-templateable: true
        description:
          description: |-
            Help text shown below the label
            Example:
            description: Select the AWS region for your resources
            Optional
          type: string
        id:
          description: |-
            Unique identifier for this input.
            Example:
            id: region
            Required
          minLength: 1
          type: string
        immutable:
          description: >-
            Lock this field after first deploy — prevents changes to destructive
            settings

            Example:

            immutable: true

            Optional — defaults to false
          type: boolean
        label:
          description: |-
            Text shown above the form field
            Example:
            label: Region
            Required
          minLength: 1
          type: string
        required:
          description: |-
            Whether the field must have at least one key-value pair
            Example:
            required: true
            Optional — defaults to false
          type: boolean
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this field when another field has a specific value
            Example:
            show_when:
            advanced_mode: true
            Optional
        type:
          description: |-
            Input type for key-value editor fields
            Example:
            type: keyvalue
            Required
          enum:
            - keyvalue
          type: string
      required:
        - id
        - label
        - type
      type: object
    UtcDateTime:
      description: UTC RFC3339 timestamp with a required Z suffix
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,9})?Z$
      type: string
      x-go-type: apitypes.UTCDateTime
      x-go-type-import:
        name: apitypes
        path: ravion/api-go/pkg/apitypes
    DefaultValueDefinition.CreatedByType:
      enum:
        - SYSTEM
        - USER
      type: string
    Errors.Action:
      additionalProperties: false
      description: Action to help user resolve the error
      properties:
        label:
          description: Button/link label text
          type: string
        url:
          description: URL to navigate to for resolution
          type: string
      required:
        - label
        - url
      type: object
    Errors.UserFacingErrorDetailSection:
      additionalProperties: false
      description: Structured user-facing error detail section.
      properties:
        items:
          description: List of detail values for this section.
          items:
            type: string
          type: array
        object:
          additionalProperties: {}
          description: Structured detail payload for object rendering.
          type: object
        render:
          description: Rendering hint for clients. Valid values are list or object.
          type: string
        title:
          description: Detail section title shown in the UI.
          type: string
      required:
        - title
        - render
      type: object
    Module.DefaultValueRef:
      description: Special default references derived from the field's values list.
      enum:
        - $values:first
      type: string
    Module.ValidationPattern:
      additionalProperties: false
      description: A regex pattern with an error message for validation
      properties:
        message:
          description: |-
            Error shown to the user when validation fails
            Example:
            message: Must contain only lowercase letters, numbers, and hyphens
            Required
          type: string
        pattern:
          description: |-
            JavaScript regex the input must match
            Example:
            pattern: ^[a-z0-9-]+$
            Required
          type: string
      required:
        - pattern
        - message
      type: object
    Module.ShowWhen:
      additionalProperties:
        $ref: '#/components/schemas/Module.ShowWhenCondition'
      description: >-
        Conditional visibility mapping; array source values support contains and
        contains-all matching.

        Keys are property names, values are the expected values or conditions.

        The property is shown only when all conditions are met.


        Example:

        region: us-east-1

        advanced: true

        build_type:

        not: disabled
      type: object
    Module.StringValues:
      anyOf:
        - items:
            $ref: '#/components/schemas/Module.StringValueItem'
          type: array
        - $ref: '#/components/schemas/Module.DynamicValuesRef'
      description: String values - either a static array of options or a dynamic reference.
    Module.RefFallbackInputProperty:
      description: >-
        Input properties allowed inside module reference fallback inputs.

        Nested module references are intentionally excluded to avoid recursive
        form schemas.

        Keep this union in sync with InputProperty except for the ref member.
      oneOf:
        - $ref: '#/components/schemas/Module.StringInputProperty'
        - $ref: '#/components/schemas/Module.TextInputProperty'
        - $ref: '#/components/schemas/Module.ObjectInputProperty'
        - $ref: '#/components/schemas/Module.ObjectMapInputProperty'
        - $ref: '#/components/schemas/Module.ObjectArrayInputProperty'
        - $ref: '#/components/schemas/Module.ArrayInputProperty'
        - $ref: '#/components/schemas/Module.ArrayStringInputProperty'
        - $ref: '#/components/schemas/Module.NumberInputProperty'
        - $ref: '#/components/schemas/Module.BooleanInputProperty'
        - $ref: '#/components/schemas/Module.SectionInputProperty'
        - $ref: '#/components/schemas/Module.CompoundInputProperty'
        - $ref: '#/components/schemas/Module.GitRepoInputProperty'
        - $ref: '#/components/schemas/Module.KeyValueInputProperty'
    Module.ObjectCollectionItemTitleConfig:
      additionalProperties: false
      description: >-
        Configuration for the title shown for each structured collection item in
        the form.
      properties:
        fallback:
          description: >-
            Fallback title template used when the primary template cannot be
            resolved.
          type: string
        template:
          description: >-
            Template for the item title. Supports placeholders like {key} for
            maps and {field_id}.
          type: string
      required:
        - template
      type: object
    Module.MapKeyConfig:
      additionalProperties: false
      description: Configuration for the string key of an object_map entry.
      properties:
        description:
          description: Help text shown below the map key field.
          type: string
        from_fields:
          description: >-
            Item input fields used to compute the map key instead of asking for
            one. Empty/null entries are ignored.
          items:
            nullable: true
            type: string
          type: array
        label:
          description: Text shown for the map key field.
          type: string
        patterns:
          description: Regex patterns to validate map keys against.
          items:
            $ref: '#/components/schemas/Module.ValidationPattern'
          type: array
        placeholder:
          description: Placeholder text for a new map key.
          type: string
        separator:
          description: String used to join computed key field values. Defaults to "-".
          type: string
      type: object
    Module.ObjectArrayDefaultItem:
      additionalProperties: {}
      description: |-
        Default value item for structured object arrays.
        Each array element must be an object keyed by the nested item input ids.
      type: object
    Module.NumberValues:
      anyOf:
        - items:
            $ref: '#/components/schemas/Module.NumberValueItem'
          type: array
        - $ref: '#/components/schemas/Module.DynamicValuesRef'
      description: Number values - either a static array of options or a dynamic reference.
    Module.CompoundFieldValue:
      anyOf:
        - type: string
        - format: double
          type: number
        - format: int32
          type: integer
        - type: boolean
        - items:
            type: string
          type: array
      description: |-
        Allowed value types within a compound value item.
        Supports primitive types plus string arrays.
    Module.CompoundValues:
      anyOf:
        - items:
            $ref: '#/components/schemas/Module.CompoundValueItem'
          type: array
        - $ref: '#/components/schemas/Module.DynamicValuesRef'
      description: >-
        Compound values - either a static array of options or a dynamic
        reference.


        Note: CEL validation ensures values is provided (compound requires
        values).
    Module.RefTypeDiscriminator:
      description: |-
        Type discriminator for module references.
        Format: "$ref:<module-type>" (e.g., "$ref:ravion-aws-vpc")
        The module type is extracted by removing the "$ref:" prefix.
      minLength: 6
      pattern: ^\$ref:.+$
      type: string
    Pipeline.GitRepoUrl:
      description: |-
        Full git repository URL including host.
        Examples:
        - https://github.com/my-org/my-repo
        - github.com/my-org/my-repo
        - https://github.com/my-org/my-repo.git
        - git
      minLength: 1
      pattern: >-
        ^((https?://)?[a-zA-Z0-9][a-zA-Z0-9.-]*\.[a-zA-Z]{2,}/[a-zA-Z0-9._-]+(/[a-zA-Z0-9._-]+)+|git@[a-zA-Z0-9][a-zA-Z0-9.-]*\.[a-zA-Z]{2,}:[a-zA-Z0-9._-]+(/[a-zA-Z0-9._-]+)+)(\.git)?$
      type: string
    Module.ShowWhenCondition:
      anyOf:
        - $ref: '#/components/schemas/Module.ShowWhenComparableValue'
        - $ref: '#/components/schemas/Module.ShowWhenNotCondition'
      description: A show_when condition.
    Module.StringValueItem:
      additionalProperties: false
      description: |-
        A selectable option with a string value.
        Used in string input validation.values arrays.
      properties:
        description:
          description: |-
            Extra detail shown alongside the option
            Example:
            description: Recommended for US-based users
            Optional
          type: string
        group_label:
          description: |-
            Groups options under a shared heading in the dropdown
            Example:
            group_label: North America
            Optional
          type: string
        label:
          description: |-
            Text shown in the dropdown — defaults to value if omitted
            Example:
            label: US East (N. Virginia)
            Optional
          type: string
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this option when another field has a specific value
            Example:
            show_when:
            package_type: Image
            Optional
        value:
          description: |-
            Actual value sent to Terraform when this option is selected
            Example:
            value: us-east-1
            Required
          type: string
      required:
        - value
      type: object
    Module.DynamicValuesRef:
      description: >-
        Dynamic values reference.

        References an external value source resolved at runtime. Query
        parameters may

        use module input templates, e.g.

        `$values:aws/ec2/instances?awsAccountId=<<module.input.aws_account_id>>&region=<<module.input.region>>`.
      minLength: 9
      pattern: >-
        ^\$values:[A-Za-z0-9_./-]+(\?[A-Za-z0-9_.~-]+=[^&=]+(&[A-Za-z0-9_.~-]+=[^&=]+)*)?$
      type: string
    Module.NumberValueItem:
      additionalProperties: false
      description: |-
        A selectable option with a numeric value.
        Used in number input validation.values arrays.
      properties:
        description:
          description: |-
            Extra detail shown alongside the option
            Example:
            description: Recommended for US-based users
            Optional
          type: string
        group_label:
          description: |-
            Groups options under a shared heading in the dropdown
            Example:
            group_label: North America
            Optional
          type: string
        label:
          description: |-
            Text shown in the dropdown — defaults to value if omitted
            Example:
            label: US East (N. Virginia)
            Optional
          type: string
        show_when:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhen'
          description: |-
            Only show this option when another field has a specific value
            Example:
            show_when:
            size_class: large
            Optional
        value:
          description: |-
            Actual number sent to Terraform when this option is selected
            Example:
            value: 4
            Required
          format: int32
          type: integer
      required:
        - value
      type: object
    Module.CompoundValueItem:
      additionalProperties:
        $ref: '#/components/schemas/Module.CompoundFieldValue'
      description: >-
        A compound value item - a record with arbitrary fields plus select
        metadata.

        Each key maps to a field value, and includes optional display fields.


        Note: The actual structure is a Record with dynamic keys for the data
        fields,

        plus the optional BaseSelectFields (label, description, group_label).
      properties:
        description:
          description: |-
            Extra detail shown alongside the option
            Example:
            description: Recommended for US-based users
            Optional
          type: string
        group_label:
          description: |-
            Groups options under a shared heading in the dropdown
            Example:
            group_label: North America
            Optional
          type: string
        label:
          description: |-
            Text shown in the dropdown — defaults to value if omitted
            Example:
            label: US East (N. Virginia)
            Optional
          type: string
      type: object
    Module.ShowWhenComparableValue:
      anyOf:
        - $ref: '#/components/schemas/Module.ShowWhenValue'
        - items:
            $ref: '#/components/schemas/Module.ShowWhenValue'
          type: array
      description: >-
        Value or values to compare against in a show_when condition; arrays mean
        membership for scalar sources and contains-all for array sources.

        When the source value is scalar, an array condition matches any listed
        value.

        When the source value is an array, a scalar condition matches if the
        array contains that value.

        When the source value is an array, an array condition matches if the
        array contains all listed values.
    Module.ShowWhenNotCondition:
      additionalProperties: false
      description: Negated show_when condition.
      properties:
        not:
          allOf:
            - $ref: '#/components/schemas/Module.ShowWhenComparableValue'
          description: >-
            Show the property only when the source value does not match this
            condition.

            Example:

            not: disabled

            Required
      required:
        - not
      type: object
    Module.ShowWhenValue:
      anyOf:
        - type: string
        - format: int32
          type: integer
        - type: boolean
      description: |-
        Value that can be used in a show_when condition.
        Supports string, number, or boolean values for comparison.
  securitySchemes:
    BearerAuth:
      scheme: Bearer
      type: http

````