Application Research Gateways API

Gateway resource operations

Documentation

Specifications

Code Examples

Schemas & Data

OpenAPI Specification

application-research-gateways-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Application Research CNAB Bundle API Resources Gateways API
  version: 1.0.0
  description: 'API for managing Cloud Native Application Bundles (CNAB).


    This API provides endpoints for managing CNAB bundles, claims, claim results,

    dependencies, parameter sources, relocation mappings, and installation status.

    '
  contact:
    name: CNAB Specification
    url: https://cnab.io
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.example.com/v1
  description: Production server
- url: https://staging-api.example.com/v1
  description: Staging server
security:
- bearerAuth: []
- apiKey: []
tags:
- name: Gateways
  description: Gateway resource operations
paths:
  /planes/radius/{planeName}/resourceGroups/{resourceGroupName}/providers/Applications.Core/gateways/{gatewayName}:
    get:
      tags:
      - Gateways
      summary: Application Research Get gateway
      operationId: Gateways_Get
      parameters:
      - $ref: '#/components/parameters/PlaneNameParameter'
      - $ref: '#/components/parameters/ResourceGroupNameParameter'
      - $ref: '#/components/parameters/GatewayNameParameter'
      - $ref: '#/components/parameters/ApiVersionParameter'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayResource'
              examples:
                ecommerceGateway:
                  $ref: '#/components/examples/EcommerceGatewayExample'
        default:
          $ref: '#/components/responses/ErrorResponse'
    put:
      tags:
      - Gateways
      summary: Application Research Create or update gateway
      operationId: Gateways_CreateOrUpdate
      parameters:
      - $ref: '#/components/parameters/PlaneNameParameter'
      - $ref: '#/components/parameters/ResourceGroupNameParameter'
      - $ref: '#/components/parameters/GatewayNameParameter'
      - $ref: '#/components/parameters/ApiVersionParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayResource'
            examples:
              ecommerceGateway:
                $ref: '#/components/examples/EcommerceGatewayExample'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayResource'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayResource'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  parameters:
    ApiVersionParameter:
      name: api-version
      in: query
      required: true
      description: The API version to use for this operation
      schema:
        type: string
        default: 2023-10-01-preview
    PlaneNameParameter:
      name: planeName
      in: path
      required: true
      description: The name of the plane
      schema:
        type: string
        pattern: ^[A-Za-z]([-A-Za-z0-9]*[A-Za-z0-9])?$
        maxLength: 63
    GatewayNameParameter:
      name: gatewayName
      in: path
      required: true
      description: The name of the gateway
      schema:
        type: string
    ResourceGroupNameParameter:
      name: resourceGroupName
      in: path
      required: true
      description: The name of the resource group
      schema:
        type: string
        pattern: ^[A-Za-z]([-A-Za-z0-9]*[A-Za-z0-9])?$
        maxLength: 63
  schemas:
    GatewayRoute:
      type: object
      properties:
        path:
          type: string
        destination:
          type: string
        replacePrefix:
          type: string
        enableWebsockets:
          type: boolean
        timeoutPolicy:
          $ref: '#/components/schemas/GatewayRouteTimeoutPolicy'
    GatewayRouteTimeoutPolicy:
      type: object
      properties:
        request:
          type: string
          pattern: ^(\d+(\.\d+)?(ns|us|µs|ms|s|m|h))+$
        backendRequest:
          type: string
          pattern: ^(\d+(\.\d+)?(ns|us|µs|ms|s|m|h))+$
    EnvironmentCompute:
      type: object
      description: Represents backing compute resource
      properties:
        kind:
          type: string
        resourceId:
          type: string
        identity:
          $ref: '#/components/schemas/IdentitySettings'
      required:
      - kind
      discriminator:
        propertyName: kind
        mapping:
          kubernetes: '#/components/schemas/KubernetesCompute'
          aci: '#/components/schemas/AzureContainerInstanceCompute'
    ProvisioningState:
      type: string
      description: Provisioning state of the resource at the time the operation was called
      enum:
      - Creating
      - Updating
      - Deleting
      - Accepted
      - Provisioning
      - Succeeded
      - Failed
      - Canceled
      readOnly: true
    OutputResource:
      type: object
      description: Properties of an output resource
      properties:
        localId:
          type: string
        id:
          type: string
        radiusManaged:
          type: boolean
    ResourceStatus:
      type: object
      description: Status of a resource
      properties:
        compute:
          $ref: '#/components/schemas/EnvironmentCompute'
        recipe:
          $ref: '#/components/schemas/RecipeStatus'
          readOnly: true
        outputResources:
          type: array
          items:
            $ref: '#/components/schemas/OutputResource'
    IdentitySettingKind:
      type: string
      description: IdentitySettingKind is the kind of supported external identity setting
      enum:
      - undefined
      - azure.com.workload
      - aws.com.irsa
      - userAssigned
      - systemAssigned
      - systemAssignedUserAssigned
    IdentitySettings:
      type: object
      description: IdentitySettings is the external identity setting
      properties:
        kind:
          $ref: '#/components/schemas/IdentitySettingKind'
        oidcIssuer:
          type: string
          description: The URI for your compute platform's OIDC issuer
        resource:
          type: string
          description: The resource ID of the provisioned identity
        managedIdentity:
          type: array
          items:
            type: string
      required:
      - kind
    GatewayHostname:
      type: object
      properties:
        prefix:
          type: string
        fullyQualifiedHostname:
          type: string
    GatewayTls:
      type: object
      properties:
        sslPassthrough:
          type: boolean
        minimumProtocolVersion:
          type: string
          default: '1.2'
          enum:
          - '1.2'
          - '1.3'
        certificateFrom:
          type: string
    GatewayProperties:
      type: object
      properties:
        environment:
          type: string
        application:
          type: string
        provisioningState:
          $ref: '#/components/schemas/ProvisioningState'
          readOnly: true
        status:
          $ref: '#/components/schemas/ResourceStatus'
          readOnly: true
        internal:
          type: boolean
        hostname:
          $ref: '#/components/schemas/GatewayHostname'
        routes:
          type: array
          items:
            $ref: '#/components/schemas/GatewayRoute'
        tls:
          $ref: '#/components/schemas/GatewayTls'
        url:
          type: string
          readOnly: true
      required:
      - application
      - routes
    RecipeStatus:
      type: object
      description: Recipe status at deployment time
      properties:
        templateKind:
          type: string
        templatePath:
          type: string
        templateVersion:
          type: string
      required:
      - templateKind
      - templatePath
    GatewayResource:
      type: object
      properties:
        properties:
          $ref: '#/components/schemas/GatewayProperties'
        id:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        systemData:
          type: object
          readOnly: true
        tags:
          type: object
          additionalProperties:
            type: string
        location:
          type: string
      required:
      - properties
      - location
  examples:
    EcommerceGatewayExample:
      summary: E-commerce gateway with TLS and routing
      value:
        properties:
          application: /planes/radius/local/resourceGroups/ecommerce-rg/providers/Applications.Core/applications/ecommerce-platform
          internal: false
          hostname:
            fullyQualifiedHostname: api.ecommerce.example.com
          routes:
          - path: /api/orders
            destination: /planes/radius/local/resourceGroups/ecommerce-rg/providers/Applications.Core/containers/orderService
            replacePrefix: /orders
            enableWebsockets: false
            timeoutPolicy:
              request: 30s
              backendRequest: 25s
          - path: /api/products
            destination: http://product-service:8080
            enableWebsockets: false
            timeoutPolicy:
              request: 15s
          - path: /ws
            destination: http://notification-service:8080
            enableWebsockets: true
          tls:
            sslPassthrough: false
            minimumProtocolVersion: '1.2'
            certificateFrom: /planes/radius/local/resourceGroups/ecommerce-rg/providers/Applications.Core/secretStores/tls-cert
        location: eastus
        tags:
          component: ingress
          tier: edge
  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: Error code
                  message:
                    type: string
                    description: Error message
                  target:
                    type: string
                    description: Error target
                required:
                - code
                - message
            required:
            - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT-based authentication
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key authentication