openapi: 3.1.0
info:
  title: Zrok Connector
  description: Zrok Connector API
  version: '1.0'
servers:
  - url: https://gateway.production.netfoundry.io
security:
  - bearerAuth: []
tags:
  - name: Frontdoor
    description: Management of Frontdoor resources.
  - name: Share
    description: >-
      Management of Environment resources. Environments are created by running a
      Frontdoor Agent on a remote host.
  - name: Client Certificate
    description: Management of Client Certificate resources.
  - name: Sparklines
    description: Sparkline data for the Frontdoor.
  - name: Certificate Request Tokens
    description: Management of Certificate Request Tokens.
  - name: TCP Share
    description: Management of TCP Share resources.
  - name: HTTP Share
    description: Management of HTTP Share resources.
  - name: Health Checks
    description: >-
      Management of Health Check resources. Health Checks are used to check if a
      Share is able to respond to external requests.
  - name: Auth Provider
    description: >-
      Management of Auth Provider resources. Auth Providers are configured on
      the account Frontend, they are then optionally assigned to Shares.
  - name: Agent
    description: >-
      Management of Agent resources. An Agent is installed on a client host to
      host Shares. Agents can't be updated.
  - name: Namespace
    description: >-
      Management of Namespace resources. Namespaces are configured to group
      shares in an account. Each namespace represents a domain. An account have
      1 or more namespaces.
  - name: Executions
    description: >-
      Operations related to Frontdoor executions. Executions are created any
      time a resource is created or updated.
  - name: Location
    description: >-
      Management of Location resources. Locations are associated with a
      Frontdoor.
  - name: Auth Provider Type
    description: >-
      Auth Providers are used when creating an Auth Provider. They are an
      informational resource only.
paths:
  /frontdoor/v2/{frontdoorId}/executions/{id}/cancel:
    put:
      tags:
        - Executions
      summary: Cancel a running execution
      description: >
        Cancels a RUNNING execution.

        If an execution is in any other status than RUNNING it will silently do
        nothing.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: cancel-execution_1
      parameters:
        - name: frontdoorId
          in: path
          description: ID of the frontdoor
          required: true
          schema:
            type: string
            format: uuid
          example: a8b8c8d8-e8f8-g8h8-i8j8-k8l8m8n8o8p8
        - name: id
          in: path
          description: ID of the execution to cancel
          required: true
          schema:
            type: string
          example: b9cls2bka9p9q9
      responses:
        '200':
          description: Execution cancelled
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Execution'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "ulu69xyc9gvlypf7s9vti",
                      "frontdoorId" : "3c6968d8-0f7f-4d31-af2a-1044355f7a9b",
                      "processId" : "c0b33bda-6e30-44dc-a017-81a0947d6564",
                      "name" : "CreateCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "component",
                      "resourceId" : "ceQa_iI0c89-N4CU6ioPF",
                      "startedAt" : "2026-03-25T16:04:55.635132Z",
                      "finishedAt" : "2026-03-25T16:04:55.669068Z",
                      "traceId" : "trace1",
                      "status" : "CANCELED",
                      "initiatingIdentityId" : "98bee8c1-d9bb-4c0a-a0b6-ce8d51bee2bf",
                      "createdAt" : "2026-03-25T16:04:55.635355Z",
                      "updatedAt" : "2026-03-25T16:04:55.669018Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3c6968d8-0f7f-4d31-af2a-1044355f7a9b/executions/ulu69xyc9gvlypf7s9vti"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3c6968d8-0f7f-4d31-af2a-1044355f7a9b"
                        }
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Executions
      summary: Cancel a running execution
      description: >
        Cancels a RUNNING execution.

        If an execution is in any other status than RUNNING it will silently do
        nothing.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: cancel-execution
      parameters:
        - name: frontdoorId
          in: path
          description: ID of the frontdoor
          required: true
          schema:
            type: string
            format: uuid
          example: a8b8c8d8-e8f8-g8h8-i8j8-k8l8m8n8o8p8
        - name: id
          in: path
          description: ID of the execution to cancel
          required: true
          schema:
            type: string
          example: b9cls2bka9p9q9
      responses:
        '200':
          description: Execution cancelled
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Execution'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "ulu69xyc9gvlypf7s9vti",
                      "frontdoorId" : "3c6968d8-0f7f-4d31-af2a-1044355f7a9b",
                      "processId" : "c0b33bda-6e30-44dc-a017-81a0947d6564",
                      "name" : "CreateCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "component",
                      "resourceId" : "ceQa_iI0c89-N4CU6ioPF",
                      "startedAt" : "2026-03-25T16:04:55.635132Z",
                      "finishedAt" : "2026-03-25T16:04:55.669068Z",
                      "traceId" : "trace1",
                      "status" : "CANCELED",
                      "initiatingIdentityId" : "98bee8c1-d9bb-4c0a-a0b6-ce8d51bee2bf",
                      "createdAt" : "2026-03-25T16:04:55.635355Z",
                      "updatedAt" : "2026-03-25T16:04:55.669018Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3c6968d8-0f7f-4d31-af2a-1044355f7a9b/executions/ulu69xyc9gvlypf7s9vti"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3c6968d8-0f7f-4d31-af2a-1044355f7a9b"
                        }
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/tcp-shares/{id}:
    get:
      tags:
        - TCP Share
      summary: Get details of a single TCP Share resource by ID.
      description: |
        Retrieves a single TCP Share by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-tcp-share
      parameters:
        - name: id
          in: path
          description: The unique id of the Share.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "f2sm0kdsjy986y3558lj2",
                      "locationId" : "oAweAh9005UMVf3k8AV6j",
                      "name" : "share-61",
                      "frontdoorId" : "d85c19da-052e-4a11-82b3-f66379627033",
                      "status" : "DEPLOYED",
                      "ingressPort" : null,
                      "clientCertificateId" : null,
                      "hostingId" : null,
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "localhost:3000",
                      "frontendEndpoint" : "private",
                      "createdBy" : "240aa39d-ac18-42ed-968e-759cf29052c4",
                      "createdAt" : "2026-03-25T16:04:41.147400Z",
                      "updatedAt" : "2026-03-25T16:04:41Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : "KF4GwDIwiL",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033/tcp-shares/f2sm0kdsjy986y3558lj2"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033/locations/oAweAh9005UMVf3k8AV6j"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033/tcp-shares/share-61/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d85c19da-052e-4a11-82b3-f66379627033"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - TCP Share
      summary: Full Update TCP Share
      description: >
        Fully updates a TCP Share. All required fields must be provided.

        Since Zrok doesn't support in-place updates, the share is deleted and
        recreated with the new configuration.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: update-tcp-share-full
      parameters:
        - name: id
          in: path
          description: The unique id of the Share.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTcpShare'
            examples:
              default:
                description: default
                value: >-
                  {"name":"new-137","envZId":"wHuE4_CIb9hZLtQ6vdIHe","target":"localhost:4000","ingressPort":2150,"clientCertificateId":"81bnmnee9ziiopcg87q96","useIntermediateCertificate":false,"allowedSubjects":null,"allowedCommonNamePrefixes":null,"requiredOrganizationalUnit":null}
        required: true
      responses:
        '202':
          description: Share updated accepted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "2aykydydx0091wtq5l4o5",
                      "locationId" : "ipggr1bz1opko5u2xtxmm",
                      "name" : "existing-136",
                      "frontdoorId" : "77d8ac23-4398-4d99-a81c-334855769b10",
                      "status" : "DEPLOYED",
                      "ingressPort" : 2150,
                      "clientCertificateId" : "81bnmnee9ziiopcg87q96",
                      "hostingId" : "jf9sovzylh65mtw288twk",
                      "envZId" : "wHuE4_CIb9hZLtQ6vdIHe",
                      "target" : "localhost:3000",
                      "frontendEndpoint" : null,
                      "createdBy" : "ab5d7e10-affd-4b98-afb0-48109687f0b8",
                      "createdAt" : "2026-03-25T16:05:09.177252Z",
                      "updatedAt" : "2026-03-25T16:05:09Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : "oldTcpZId",
                      "access" : "mtls.fake.io:2150",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/tcp-shares/2aykydydx0091wtq5l4o5"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/locations/ipggr1bz1opko5u2xtxmm"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/environments/wHuE4_CIb9hZLtQ6vdIHe"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/tcp-shares/existing-136/metrics{?duration}",
                          "templated" : true
                        },
                        "client-certificate" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10/client-certificates/81bnmnee9ziiopcg87q96"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/77d8ac23-4398-4d99-a81c-334855769b10"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - TCP Share
      summary: Delete TCP Share
      description: >
        Deletes a TCP Share by its ID.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-tcp-share
      parameters:
        - name: id
          in: path
          description: The unique id of the Share.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Share deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "9wvj274bzt3l4wdk0igke",
                      "locationId" : "qfzgfi3nk7jwrhb5bb81e",
                      "name" : "share-54",
                      "frontdoorId" : "3244bb63-30a0-47f9-858e-233a18ec68be",
                      "status" : "DELETING",
                      "ingressPort" : 1500,
                      "clientCertificateId" : null,
                      "hostingId" : "kvx7ilfdngoyzu4ddj4n0",
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "localhost:3000",
                      "frontendEndpoint" : null,
                      "createdBy" : "83466144-a8c2-49c6-b918-21e7ce6721c2",
                      "createdAt" : "2026-03-25T16:04:38.126147Z",
                      "updatedAt" : "2026-03-25T16:04:38Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : "2fCJXaRFb9",
                      "access" : "mtls.fake.io:1500",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be/tcp-shares/9wvj274bzt3l4wdk0igke"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be/locations/qfzgfi3nk7jwrhb5bb81e"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be/tcp-shares/share-54/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3244bb63-30a0-47f9-858e-233a18ec68be"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - TCP Share
      summary: Partial Update TCP Share
      description: >
        Partially updates a TCP Share. Only provided fields are updated; null
        fields retain their existing values.

        Since Zrok doesn't support in-place updates, the share is deleted and
        recreated with the merged configuration.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: update-tcp-share-partial
      parameters:
        - name: id
          in: path
          description: The unique id of the Share.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTcpShare'
            examples:
              default:
                description: default
                value: '{"target": "localhost:5000"}'
        required: true
      responses:
        '202':
          description: Share updated accepted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "vy8u9f25346jnxacbbhe8",
                      "locationId" : "vcx2uvtrctyuwb1wpom3r",
                      "name" : "existing-139",
                      "frontdoorId" : "8bd49bf6-46d6-430b-9406-91c426a0c451",
                      "status" : "DEPLOYED",
                      "ingressPort" : 2150,
                      "clientCertificateId" : "lz1o9y6hbh6g84h2g03hw",
                      "hostingId" : "rt08q4rs3ilk5k006jmnn",
                      "envZId" : "YRkwNX-epFl8n8iK56X9Z",
                      "target" : "localhost:3000",
                      "frontendEndpoint" : null,
                      "createdBy" : "fc1a42ec-f7f3-4ecf-afd4-1758601aa76f",
                      "createdAt" : "2026-03-25T16:05:10.325684Z",
                      "updatedAt" : "2026-03-25T16:05:10Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : "oldTcpZId",
                      "access" : "mtls.fake.io:2150",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/tcp-shares/vy8u9f25346jnxacbbhe8"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/locations/vcx2uvtrctyuwb1wpom3r"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/environments/YRkwNX-epFl8n8iK56X9Z"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/tcp-shares/existing-139/metrics{?duration}",
                          "templated" : true
                        },
                        "client-certificate" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451/client-certificates/lz1o9y6hbh6g84h2g03hw"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8bd49bf6-46d6-430b-9406-91c426a0c451"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/namespaces/{id}:
    get:
      tags:
        - Namespace
      summary: Get a single Namespace resource by its token.
      description: |
        Retrieves a single Namespace by its id within a given Frontdoor context.
        Includes the configuration data.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-namespace
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: Unique ID of the Namespace resource.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Namespace exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "2qcg8xbbu7iilnop1x32s",
                      "frontdoorId" : "05065072-1a22-4430-a092-96023879f560",
                      "namespaceToken" : "ns_token_123",
                      "name" : "my-namespace",
                      "description" : "My test namespace",
                      "status" : "DEPLOYED",
                      "default" : false,
                      "createdBy" : "fbdd0389-841b-4161-867a-dc7537db30e6",
                      "createdAt" : "2026-03-25T16:04:35.038404Z",
                      "updatedBy" : "fbdd0389-841b-4161-867a-dc7537db30e6",
                      "updatedAt" : "2026-03-25T16:04:35.038404Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/05065072-1a22-4430-a092-96023879f560/namespaces/2qcg8xbbu7iilnop1x32s"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/05065072-1a22-4430-a092-96023879f560"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Namespace
      summary: Full update of a Namespace.
      description: >
        Performs a full update of a Namespace within a specific Frontdoor.

        Only the description property is updateable.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: update-namespace
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: Unique ID of the Namespace resource.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNamespace'
            examples: {}
        required: true
      responses:
        '200':
          description: Namespace updated.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Namespace
      summary: Delete a Namespace.
      description: >
        Deletes a Namespace by its id within a specific Frontdoor.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: delete-namespace
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: Unique ID of the Namespace resource.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Namespace deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "8hlao2thljf30s252wkyu",
                      "frontdoorId" : "89861bac-086f-4c33-b461-a33d01cdac6f",
                      "namespaceToken" : "ns_to_delete",
                      "name" : "namespace-to-delete",
                      "description" : "Namespace to be deleted",
                      "status" : "DEPLOYED",
                      "default" : false,
                      "createdBy" : "ba087dfe-ee69-496f-83a4-dd66816e4915",
                      "createdAt" : "2026-03-25T16:04:35.418600Z",
                      "updatedBy" : "ba087dfe-ee69-496f-83a4-dd66816e4915",
                      "updatedAt" : "2026-03-25T16:04:35.438588Z",
                      "deletedBy" : "2ddac2d1-ce9c-436c-b563-49562e942448",
                      "deletedAt" : "2026-03-25T16:04:35.439152Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/89861bac-086f-4c33-b461-a33d01cdac6f/namespaces/8hlao2thljf30s252wkyu"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/89861bac-086f-4c33-b461-a33d01cdac6f"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Namespace
      summary: Partial update of a Namespace.
      description: >
        Performs a partial update of a Namespace within a specific Frontdoor.

        Only the description property is updateable.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: patch-namespace
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: Unique ID of the Namespace resource.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNamespace'
            examples: {}
        required: true
      responses:
        '200':
          description: Namespace updated.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/locations/{id}:
    get:
      tags:
        - Location
      summary: Retrieves a single Location resource by ID.
      description: |
        Retrieves a single Location by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-location
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Location exists and data is returned
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Location
      summary: Put Location
      description: >
        Performs a full update on an existing Location resource. All fields must
        be provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Location resource.
      operationId: put-update-location
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLocation'
            examples: {}
        required: true
      responses:
        '200':
          description: Location updated.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Location
      summary: Delete Location
      description: >
        Deletes a Location by its ID. This is a soft delete operation.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: delete-location
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Location deleted.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Location
      summary: Patch Location
      description: >
        Partially updates an existing Location resource.

        Only properties to be updated need to be provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Location resource.
      operationId: patch-update-location
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLocation'
            examples: {}
        required: true
      responses:
        '200':
          description: Location updated.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/http-shares/{id}:
    get:
      tags:
        - HTTP Share
      summary: Get details of a single HTTP Share resource by ID.
      description: |
        Retrieves a single HTTP Share by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-http-share
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique ID of the Share.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "dqng0zlna5t3pgtnhktj4",
                      "frontdoorId" : "a0136833-b81a-4fc4-a281-171142047995",
                      "locationId" : "b4j1g582e52l2vhfbi12f",
                      "name" : "share-94",
                      "namespaceId" : "nuptdmbgwl0ya21m1v0py",
                      "namespaceToken" : null,
                      "status" : "DEPLOYED",
                      "backendMode" : null,
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "https://google.com",
                      "frontendEndpoint" : "https://share-94.shares.frontdoor.sandbox.netfoundry.io",
                      "authProviderId" : null,
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "insecure" : null,
                      "createdBy" : "49560429-6073-4cf2-a93a-a76c63c01387",
                      "createdAt" : "2026-03-25T16:04:50.700937Z",
                      "updatedAt" : "2026-03-25T16:04:50Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "authProvider" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/share-94"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/locations/b4j1g582e52l2vhfbi12f"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/dqng0zlna5t3pgtnhktj4/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - HTTP Share
      summary: Full Update HTTP Share
      description: >
        Fully updates an HTTP Share. All required fields must be provided.

        Since Zrok doesn't support in-place updates, the share is deleted and
        recreated with the new configuration.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: update-http-share-full
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique ID of the Share.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateHttpShare'
            examples:
              default:
                description: default
                value: >-
                  {"name":"share-168","envZId":"ijcrWb-ZOq","target":"https://new-target.com","authProviderId":"gtlxkgoon2u55gtixzzzf","oauthEmailDomains":null,"oauthAuthorizationCheckInterval":null,"insecure":false}
        required: true
      responses:
        '200':
          description: Share updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "kemhlkq3rhssfrbaswvru",
                      "frontdoorId" : "1068ed6f-366a-4ead-9570-1d36ba8abcfb",
                      "locationId" : "fz7od5p8s8eag0mx1jc2h",
                      "name" : "share-168",
                      "namespaceId" : "c3gbvq01iiqmx99ce367x",
                      "namespaceToken" : null,
                      "status" : "DEPLOYED",
                      "backendMode" : null,
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "https://new-target.com",
                      "frontendEndpoint" : "share-168.shares-166.frontdoor.sandbox.netfoundry.io",
                      "authProviderId" : "gtlxkgoon2u55gtixzzzf",
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "insecure" : false,
                      "createdBy" : "9ab5e983-22e6-48c8-833f-4dccb9ceca44",
                      "createdAt" : "2026-03-25T16:05:14.986900Z",
                      "updatedAt" : "2026-03-25T16:05:15Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "authProvider" : "auth-provider-164",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares/share-168"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/locations/fz7od5p8s8eag0mx1jc2h"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares/kemhlkq3rhssfrbaswvru/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - HTTP Share
      summary: Delete HTTP Share
      description: >
        Deletes an HTTP Share by its ID.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-http-share
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique id identifying the Share.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Share deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "kvknlx4oitnz46kypnbvk",
                      "frontdoorId" : "a0136833-b81a-4fc4-a281-171142047995",
                      "locationId" : "b4j1g582e52l2vhfbi12f",
                      "name" : "share-84",
                      "namespaceId" : "24irr86insxzfl42cnxe2",
                      "namespaceToken" : null,
                      "status" : "DELETED",
                      "backendMode" : null,
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "https://zoom.us",
                      "frontendEndpoint" : "https://share-84.shares.frontdoor.sandbox.netfoundry.io",
                      "authProviderId" : null,
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "insecure" : null,
                      "createdBy" : "79269bb2-be79-4e6d-abb2-2a6df3547384",
                      "createdAt" : "2026-03-25T16:04:50.449126Z",
                      "updatedAt" : "2026-03-25T16:04:50Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "authProvider" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/share-84"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/locations/b4j1g582e52l2vhfbi12f"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/kvknlx4oitnz46kypnbvk/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - HTTP Share
      summary: Partial Update HTTP Share
      description: >
        Partially updates an HTTP Share. Only provided fields are updated; null
        fields retain their existing values.

        Since Zrok doesn't support in-place updates, the share is deleted and
        recreated with the merged configuration.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: update-http-share-partial
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique ID of the Share.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateHttpShare'
            examples:
              default:
                description: default
                value: '{"target": "https://patched-target.com"}'
        required: true
      responses:
        '200':
          description: Share updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "hcjzmq82339y2ee4wnaza",
                      "frontdoorId" : "1068ed6f-366a-4ead-9570-1d36ba8abcfb",
                      "locationId" : "fz7od5p8s8eag0mx1jc2h",
                      "name" : "share-c3lvf5oxj0exy4rvi0sbv",
                      "namespaceId" : "Ch3Yrals1fzZR2XIWWmT3",
                      "namespaceToken" : null,
                      "status" : "DEPLOYED",
                      "backendMode" : null,
                      "envZId" : "ijcrWb-ZOq",
                      "target" : "https://patched-target.com",
                      "frontendEndpoint" : "share-c3lvf5oxj0exy4rvi0sbv.shares-173.frontdoor.sandbox.netfoundry.io",
                      "authProviderId" : "91qk3y93aei89rbndhagk",
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "insecure" : null,
                      "createdBy" : "caa27222-c463-4a94-91e9-36f93b646f4f",
                      "createdAt" : "2026-03-25T16:05:15.096523Z",
                      "updatedAt" : "2026-03-25T16:05:15Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "authProvider" : "auth-provider-171",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares/share-c3lvf5oxj0exy4rvi0sbv"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/locations/fz7od5p8s8eag0mx1jc2h"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/environments/ijcrWb-ZOq"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb/http-shares/hcjzmq82339y2ee4wnaza/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/1068ed6f-366a-4ead-9570-1d36ba8abcfb"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/health-checks/{id}:
    get:
      tags:
        - Health Checks
      summary: Retrieves a single Health Check resource by ID.
      description: |
        Retrieves a single Health Check by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-health-check
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Health Check exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "x79ah445h8vu8djateb15",
                      "frontdoorId" : "f3763532-1773-413d-bf55-bc76b6dae3a3",
                      "locationId" : null,
                      "name" : "health-check-161",
                      "envZId" : "1EoYVwVedStYFTvLrssf3",
                      "shareId" : "ufb1WxAWFA43iThAiLGFt",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "f677ba34-8409-4ea4-87a1-34bd3c569d66",
                      "createdAt" : "2026-03-25T16:05:14.117597Z",
                      "updatedBy" : "745ca7f9-8adc-44e6-b7fb-49602b0c69b0",
                      "updatedAt" : "2026-03-25T16:05:14.120145Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/f3763532-1773-413d-bf55-bc76b6dae3a3/health-checks/x79ah445h8vu8djateb15"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/f3763532-1773-413d-bf55-bc76b6dae3a3/http-shares/ufb1WxAWFA43iThAiLGFt"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/f3763532-1773-413d-bf55-bc76b6dae3a3/environments/1EoYVwVedStYFTvLrssf3"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/f3763532-1773-413d-bf55-bc76b6dae3a3"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Health Checks
      summary: Put Health Check
      description: >
        Performs a full update of an existing Health Check. All fields must be
        provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Health Check resource.
      operationId: full-update-health-check
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateHealthCheckRequest'
            examples:
              default:
                description: default
                value: >-
                  {"name":"health check
                  a","shareId":"23pajhsh8084gslqdieuy","endpoint":"/status","httpVerb":"GET","expectedHttpResponse":200,"timeoutMilliseconds":1000}
        required: true
      responses:
        '200':
          description: Health Check updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "dgi8ae0w7om8eg7gru4rl",
                      "frontdoorId" : "0dc06930-6f07-4424-9424-898b5ed37ba1",
                      "locationId" : null,
                      "name" : "health check a",
                      "envZId" : "tzoq1MPu9UgYf5",
                      "shareId" : "23pajhsh8084gslqdieuy",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "dad7b676-0ff8-40ad-a916-1cb06f03ffb6",
                      "createdAt" : "2026-03-25T16:05:13.912377Z",
                      "updatedBy" : "1c85baa1-3774-46fe-90c8-bc31cdc2f266",
                      "updatedAt" : "2026-03-25T16:05:13.939501Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/0dc06930-6f07-4424-9424-898b5ed37ba1/health-checks/dgi8ae0w7om8eg7gru4rl"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/0dc06930-6f07-4424-9424-898b5ed37ba1/http-shares/23pajhsh8084gslqdieuy"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/0dc06930-6f07-4424-9424-898b5ed37ba1/environments/tzoq1MPu9UgYf5"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/0dc06930-6f07-4424-9424-898b5ed37ba1"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Health Checks
      summary: Delete Health Check
      description: >
        Deletes a Health Check by its ID.

        The caller must have delete permissions on the parent Frontdoor
        resource.

        Deleting a share deletes all Health Checks configured for the share.
      operationId: delete-health-check
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Health Check deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "2sgqab3gs6fq4oi4ciynh",
                      "frontdoorId" : "44b5f07d-6971-4a22-8398-2842538edfa9",
                      "locationId" : null,
                      "name" : "health-check-150",
                      "envZId" : "kmhBarnVwfRaWPxnuxE-P",
                      "shareId" : "VpP4UyiZy3vFjJjZW6QJN",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "3f5ab092-8d1c-4575-8916-80ea6ed6b9ce",
                      "createdAt" : "2026-03-25T16:05:13.715923Z",
                      "updatedBy" : "f15e6722-8b23-4cf6-a534-0b9cecd4cbc1",
                      "updatedAt" : "2026-03-25T16:05:13.733627Z",
                      "deletedBy" : "2d59ebb7-0ac7-4c3b-8df5-a94ae660a08f",
                      "deletedAt" : "2026-03-25T16:05:13.733853Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/44b5f07d-6971-4a22-8398-2842538edfa9/health-checks/2sgqab3gs6fq4oi4ciynh"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/44b5f07d-6971-4a22-8398-2842538edfa9/http-shares/VpP4UyiZy3vFjJjZW6QJN"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/44b5f07d-6971-4a22-8398-2842538edfa9/environments/kmhBarnVwfRaWPxnuxE-P"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/44b5f07d-6971-4a22-8398-2842538edfa9"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Health Checks
      summary: Patch Health Check
      description: >
        Partially updates an existing Health Check resource.

        Only properties to be updated need to be provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Health Check resource.
      operationId: patch-update-health-check
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateHealthCheckRequest'
            examples:
              default:
                description: default
                value: >-
                  {"name":"health check
                  a","shareId":"64j2a3ay2v0mvrgdlfd7y","endpoint":null,"httpVerb":null,"expectedHttpResponse":null,"timeoutMilliseconds":null}
        required: true
      responses:
        '200':
          description: Health Check updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "pfn3d5lcdyrh5hb52fqif",
                      "frontdoorId" : "732a9fc9-9129-4298-bc0e-4b1f2f906fb3",
                      "locationId" : null,
                      "name" : "health check a",
                      "envZId" : "W9XIIlaCpeFl1OgLPiei1",
                      "shareId" : "64j2a3ay2v0mvrgdlfd7y",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "cb3cc4cf-585a-42a8-b496-70f01dee044b",
                      "createdAt" : "2026-03-25T16:05:14.068690Z",
                      "updatedBy" : "bb79c48e-291a-4d2b-81fe-fa8d1194e10e",
                      "updatedAt" : "2026-03-25T16:05:14.085304Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/732a9fc9-9129-4298-bc0e-4b1f2f906fb3/health-checks/pfn3d5lcdyrh5hb52fqif"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/732a9fc9-9129-4298-bc0e-4b1f2f906fb3/http-shares/64j2a3ay2v0mvrgdlfd7y"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/732a9fc9-9129-4298-bc0e-4b1f2f906fb3/environments/W9XIIlaCpeFl1OgLPiei1"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/732a9fc9-9129-4298-bc0e-4b1f2f906fb3"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/client-certificates/{id}:
    get:
      tags:
        - Client Certificate
      summary: Retrieves a single Client Certificate resource by ID.
      description: |
        Retrieves a single Client Certificate by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-client-certificate
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Client Certificate exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "m9z4q7d2jsdsnrzi3jzhj",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "client-certificate-124",
                      "createdBy" : "08fe96e8-6e50-4b16-973a-431cfb84b08d",
                      "createdAt" : "2026-03-25T16:05:07.409805Z",
                      "updatedBy" : "08fe96e8-6e50-4b16-973a-431cfb84b08d",
                      "updatedAt" : "2026-03-25T16:05:07.409805Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO\n3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX\n7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS\nj+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd\nOrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ\n5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/m9z4q7d2jsdsnrzi3jzhj"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Client Certificate
      summary: Update Client Certificate
      description: >
        Updates a Client Certificate in the specific Frontdoor.

        The domain of the Client Certificate can't be updated, only the Auth
        Providers.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Client Certificate resource.
      operationId: update-client-certificate
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClientCertificate'
            examples:
              default:
                description: default
                value: >-
                  {"name":null,"type":null,"value":"-----BEGIN PUBLIC
                  KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO\n3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX\n7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS\nj+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd\nOrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ\n5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl\nFQIDAQAB\n-----END
                  PUBLIC KEY-----\n","validYears":null}
        required: true
      responses:
        '200':
          description: Client certificate is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "k5yushx75y3pgadpiv8a6",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "client-certificate-106",
                      "createdBy" : "0ee49dd8-52d6-49e9-bfc0-fa4b1218c9d8",
                      "createdAt" : "2026-03-25T16:05:05.769143Z",
                      "updatedBy" : "0820ed1f-deae-4a56-ba56-600aa774fd90",
                      "updatedAt" : "2026-03-25T16:05:05.785629Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO\n3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX\n7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS\nj+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd\nOrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ\n5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/k5yushx75y3pgadpiv8a6"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Client Certificate
      summary: Delete Client Certificate
      description: >
        Deletes a Client Certificate by its ID.

        Deleting a Client Certificate is an asynchronous operation.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-client-certificate
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Client Certificate deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "ovauvilum0g57bae6g1g2",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "client-certificate-102",
                      "createdBy" : "d1186605-c798-442d-947b-6918b9933bc5",
                      "createdAt" : "2026-03-25T16:05:05.524542Z",
                      "updatedBy" : "d1186605-c798-442d-947b-6918b9933bc5",
                      "updatedAt" : "2026-03-25T16:05:05.541408Z",
                      "deletedBy" : "582bcafe-ffcb-45c8-8a1c-0d21297259c7",
                      "deletedAt" : "2026-03-25T16:05:05.541603Z",
                      "value" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/ovauvilum0g57bae6g1g2"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Client Certificate
      summary: Update Client Certificate
      description: >
        Updates a Client Certificate in the specific Frontdoor.

        The domain of the Client Certificate can't be updated, only the Auth
        Providers.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Client Certificate resource.
      operationId: update-client-certificate_1
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClientCertificate'
            examples:
              default:
                description: default
                value: >-
                  {"name":null,"type":null,"value":"-----BEGIN PUBLIC
                  KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO\n3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX\n7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS\nj+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd\nOrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ\n5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl\nFQIDAQAB\n-----END
                  PUBLIC KEY-----\n","validYears":null}
        required: true
      responses:
        '200':
          description: Client certificate is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "k5yushx75y3pgadpiv8a6",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "client-certificate-106",
                      "createdBy" : "0ee49dd8-52d6-49e9-bfc0-fa4b1218c9d8",
                      "createdAt" : "2026-03-25T16:05:05.769143Z",
                      "updatedBy" : "0820ed1f-deae-4a56-ba56-600aa774fd90",
                      "updatedAt" : "2026-03-25T16:05:05.785629Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAryQICCl6NZ5gDKrnSztO\n3Hy8PEUcuyvg/ikC+VcIo2SFFSf18a3IMYldIugqqqZCs4/4uVW3sbdLs/6PfgdX\n7O9D22ZiFWHPYA2k2N744MNiCD1UE+tJyllUhSblK48bn+v1oZHCM0nYQ2NqUkvS\nj+hwUU3RiWl7x3D2s9wSdNt7XUtW05a/FXehsPSiJfKvHJJnGOX0BgTvkLnkAOTd\nOrUZ/wK69Dzu4IvrN4vs9Nes8vbwPa/ddZEzGR0cQMt0JBkhk9kU/qwqUseP1QRJ\n5I1jR4g8aYPL/ke9K35PxZWuDp3U0UPAZ3PjFAh+5T+fc7gzCs9dPzSHloruU+gl\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/k5yushx75y3pgadpiv8a6"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/certificate-request-tokens/{id}:
    get:
      tags:
        - Certificate Request Tokens
      summary: Retrieves a single Certificate Request Token resource by ID.
      description: |
        Retrieves a single Certificate Request Token by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-certificate-request-token-by-id
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Certificate Request Token exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "m2gj0a7jmwfm2fzuwqfcg",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "certification-request-token-17",
                      "token" : "xzc02n2p6s",
                      "commonName" : "frontdoor-cert-request-18",
                      "organization" : "netfoundry-19",
                      "organizationalUnit" : "MOP-20",
                      "validYears" : 1,
                      "expiresAt" : "2026-03-25T17:04:33.132340Z",
                      "createdBy" : "82c505ec-d97b-4b43-9e23-9ab50a9afd47",
                      "createdAt" : "2026-03-25T16:04:33.132728Z",
                      "updatedBy" : "82c505ec-d97b-4b43-9e23-9ab50a9afd47",
                      "updatedAt" : "2026-03-25T16:04:33.132728Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/m2gj0a7jmwfm2fzuwqfcg"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Certificate Request Tokens
      summary: Full Update Certificate Request Token
      description: >
        Updates all properties on a Certificate Request Token in the specific
        Frontdoor.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Certificate Request Token resource.
      operationId: full-update-certificate-request-token
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCertificateRequestToken'
            examples:
              default:
                description: default
                value: >-
                  {"name":"Client Certificate 1","commonName":"Common
                  Name","organization":"NetFoundry","organizationalUnit":"MOP","validYears":null}
        required: true
      responses:
        '200':
          description: Certificate request token is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "jqn4yja4qmaqcjcc9nsyc",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "Client Certificate 1",
                      "token" : "2kp3l15vs2",
                      "commonName" : "Common Name",
                      "organization" : "NetFoundry",
                      "organizationalUnit" : "MOP",
                      "validYears" : 1,
                      "expiresAt" : "2026-03-25T17:04:33.433417Z",
                      "createdBy" : "00135ca2-5b64-4b2e-b81e-702bf8c04a18",
                      "createdAt" : "2026-03-25T16:04:33.433884Z",
                      "updatedBy" : "b81f1050-2590-4850-a279-a691bb0faa18",
                      "updatedAt" : "2026-03-25T16:04:33.457581Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/jqn4yja4qmaqcjcc9nsyc"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Certificate Request Tokens
      summary: Delete Certificate Request Token
      description: >
        Deletes a Certificate Request Token by its ID.

        Deleting a Certificate Request Token is an asynchronous operation.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-certificate-request-token
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Certificate Request Token deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "rsl4hzpebus3opcox62f3",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "certification-request-token-41",
                      "token" : "kh8xs5txg2",
                      "commonName" : "frontdoor-cert-request-42",
                      "organization" : "netfoundry-43",
                      "organizationalUnit" : "MOP-44",
                      "validYears" : 1,
                      "expiresAt" : "2026-03-25T17:04:33.701375Z",
                      "createdBy" : "1154c4f6-2ea5-4306-95e2-3529fd0d63a0",
                      "createdAt" : "2026-03-25T16:04:33.701306Z",
                      "updatedBy" : "1154c4f6-2ea5-4306-95e2-3529fd0d63a0",
                      "updatedAt" : "2026-03-25T16:04:33.722807Z",
                      "deletedBy" : "3638c796-fb93-49cc-860b-a14559fc31d7",
                      "deletedAt" : "2026-03-25T16:04:33.723196Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/rsl4hzpebus3opcox62f3"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Certificate Request Tokens
      summary: Partial Update Certificate Request Token
      description: >
        Updates individual properties on a Certificate Request Token in the
        specific Frontdoor.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Certificate Request Token resource.
      operationId: partial-update-certificate-request-token
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCertificateRequestToken'
            examples:
              default:
                description: default
                value: >-
                  {"name":"Client Certificate 1","commonName":"Common
                  Name","organization":null,"organizationalUnit":null,"validYears":null}
        required: true
      responses:
        '200':
          description: Certificate request token is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "nl7bgocjy8kx8lu4wbe82",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "Client Certificate 1",
                      "token" : "eygst09oq4",
                      "commonName" : "Common Name",
                      "organization" : "netfoundry-15",
                      "organizationalUnit" : "MOP-16",
                      "validYears" : 1,
                      "expiresAt" : "2026-03-25T17:04:32.692121Z",
                      "createdBy" : "99a4b343-955d-49b4-bfbf-ad386ac42ba6",
                      "createdAt" : "2026-03-25T16:04:32.692219Z",
                      "updatedBy" : "da8e4848-e0ac-43e1-9936-b6c59aa889c4",
                      "updatedAt" : "2026-03-25T16:04:32.868860Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/nl7bgocjy8kx8lu4wbe82"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/auth-providers/{id}:
    get:
      tags:
        - Auth Provider
      summary: Retrieves a single Auth Provider resource by ID.
      description: |
        Retrieves a single Auth Provider by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-auth-provider
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Auth Provider exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "q3r2aoj6cuo3l4ow5840g",
                      "frontdoorId" : "8e58f59b-e720-4282-84d8-b6731064697c",
                      "name" : "auth-provider-129",
                      "type" : "OIDC",
                      "prompt" : "LOGIN",
                      "createdBy" : "94a863f1-1e4d-4b5b-bd12-7e598436a667",
                      "createdAt" : "2026-03-25T16:05:08.893435Z",
                      "updatedBy" : "35538715-8cb7-43e4-a35a-e1a76f0bf2d0",
                      "updatedAt" : "2026-03-25T16:05:08.896089Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "o85AnvtAm8d4V2mk8-g8p",
                        "client_secret" : "OieowTBwsG8Q-uWKIMEz0",
                        "scopes" : [ "openid", "email", "profile" ],
                        "issuer" : "https://accounts.google.com/o/oauth2/v2/auth",
                        "supports_pkce" : true
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8e58f59b-e720-4282-84d8-b6731064697c/auth-providers/q3r2aoj6cuo3l4ow5840g"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/8e58f59b-e720-4282-84d8-b6731064697c"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    put:
      tags:
        - Auth Provider
      summary: Put Auth Provider
      description: >
        Performs a full update on an existing Auth Provider resource. All fields
        must be provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Auth Provider resource.
      operationId: pub-update-auth-provider
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAuthProvider'
            examples:
              default:
                description: default
                value: >-
                  {"name":"auth provider
                  a","type":null,"prompt":null,"data":null}
        required: true
      responses:
        '200':
          description: Auth Provider updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "dkndlu7c8hfdq1zq9gyuk",
                      "frontdoorId" : "cdf4738a-bc2f-421d-b905-c11d93a106c5",
                      "name" : "auth provider a",
                      "type" : "OIDC",
                      "prompt" : "LOGIN",
                      "createdBy" : "7584867f-fded-4e04-950b-9d8833e63dfa",
                      "createdAt" : "2026-03-25T16:05:08.806534Z",
                      "updatedBy" : "c7f4f0b2-c603-4789-947e-39e9296abb14",
                      "updatedAt" : "2026-03-25T16:05:08.827932Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "r78jMW6MiNnKAgHpNkPtM",
                        "client_secret" : "VnpopoEV7ioDuolIiDxo0",
                        "scopes" : [ "openid", "email", "profile" ],
                        "issuer" : "https://accounts.google.com/o/oauth2/v2/auth",
                        "supports_pkce" : true
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/cdf4738a-bc2f-421d-b905-c11d93a106c5/auth-providers/dkndlu7c8hfdq1zq9gyuk"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/cdf4738a-bc2f-421d-b905-c11d93a106c5"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Auth Provider
      summary: Delete Auth Provider
      description: >
        Deletes a Auth Provider by its ID. This is a soft delete operation.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-auth-provider
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Auth Provider deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "66u6qnzxef5v05rnn7m61",
                      "frontdoorId" : "7753d1a4-904a-4b40-8135-67bfe839814a",
                      "name" : "auth-provider-132",
                      "type" : "OIDC",
                      "prompt" : "LOGIN",
                      "createdBy" : "7abcbb76-aa90-4d61-8394-b581af638262",
                      "createdAt" : "2026-03-25T16:05:09.021596Z",
                      "updatedBy" : "e711792d-646c-42c8-94c7-8bbcfbc5b293",
                      "updatedAt" : "2026-03-25T16:05:09.031155Z",
                      "deletedBy" : "b02b7812-6d1c-4f9e-84bb-0614c1b0ecb7",
                      "deletedAt" : "2026-03-25T16:05:09.031529Z",
                      "data" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7753d1a4-904a-4b40-8135-67bfe839814a/auth-providers/66u6qnzxef5v05rnn7m61"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7753d1a4-904a-4b40-8135-67bfe839814a"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    patch:
      tags:
        - Auth Provider
      summary: Patch Auth Provider
      description: >
        Partially updates an existing Auth Provider resource.

        Only properties to be updated need to be provided in the request body.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the updated Auth Provider resource.
      operationId: patch-update-auth-provider
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAuthProvider'
            examples:
              default:
                description: default
                value: >-
                  {"name":"auth provider
                  a","type":null,"prompt":null,"data":null}
        required: true
      responses:
        '200':
          description: Auth Provider updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "dkndlu7c8hfdq1zq9gyuk",
                      "frontdoorId" : "cdf4738a-bc2f-421d-b905-c11d93a106c5",
                      "name" : "auth provider a",
                      "type" : "OIDC",
                      "prompt" : "LOGIN",
                      "createdBy" : "7584867f-fded-4e04-950b-9d8833e63dfa",
                      "createdAt" : "2026-03-25T16:05:08.806534Z",
                      "updatedBy" : "c7f4f0b2-c603-4789-947e-39e9296abb14",
                      "updatedAt" : "2026-03-25T16:05:08.827932Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "r78jMW6MiNnKAgHpNkPtM",
                        "client_secret" : "VnpopoEV7ioDuolIiDxo0",
                        "scopes" : [ "openid", "email", "profile" ],
                        "issuer" : "https://accounts.google.com/o/oauth2/v2/auth",
                        "supports_pkce" : true
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/cdf4738a-bc2f-421d-b905-c11d93a106c5/auth-providers/dkndlu7c8hfdq1zq9gyuk"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/cdf4738a-bc2f-421d-b905-c11d93a106c5"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2:
    get:
      tags:
        - Frontdoor
      summary: Retrieve a list of Frontdoors
      description: >-
        Returns a paginated list of Frontdoors based on the provided search
        criteria.
      operationId: list-frontdoors
      parameters:
        - name: id
          in: query
          description: Id to filter by, unique IDs of Frontdoor resources
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: organizationId
          in: query
          description: OrganizationId to filter by, unique IDs of Organization resources
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdBy
          in: query
          description: Filter by a user of the user that created the resource
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to to return
            only resources that are not deleted
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: page
          in: query
          description: The page number
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: A paged list of frontdoors
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Frontdoor'
              examples:
                default:
                  description: Simple find frontdoor request
                  value: |-
                    {
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2"
                        }
                      },
                      "page" : {
                        "size" : 0,
                        "totalElements" : 0,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Frontdoor
      summary: Create Frontdoor
      description: |
        Creates a new Frontdoor resource.
        The caller must have create permissions on the Frontdoor resource.
        The response includes the created Frontdoor resource.
      operationId: create-frontdoor
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFrontdoor'
            examples:
              default:
                description: default
                value: >-
                  {"organizationId": "11b791cc-d958-4795-ac8c-c6ef4df8d0ca",
                  "version": 2, "defaultNamespaceName": "version2-ns"}
        required: true
      responses:
        '202':
          description: Frontdoor create in progress.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "64516414-1fde-4b3c-8f31-837e4a0bb599",
                      "organizationId" : "11b791cc-d958-4795-ac8c-c6ef4df8d0ca",
                      "version" : 2,
                      "tcpSharesEnabled" : false,
                      "createdBy" : "f2b4dee0-af33-4018-a7ff-60a884e0b3b3",
                      "createdAt" : "2026-03-25T16:05:00.444724Z",
                      "updatedBy" : "f2b4dee0-af33-4018-a7ff-60a884e0b3b3",
                      "updatedAt" : "2026-03-25T16:05:00.444724Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599/metrics{?duration}",
                          "templated" : true
                        },
                        "locations" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599/locations"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/64516414-1fde-4b3c-8f31-837e4a0bb599/environments{?locationId}",
                          "templated" : true
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/tcp-shares:
    get:
      tags:
        - TCP Share
      summary: Search TCP Shares
      description: >
        Retrieves a paginated list of TCP Share resources filtered by any
        property.

        The results can be filtered by providing query parameters that
        correspond to the properties of a TCP Share.

        For example, to filter by status, you can add `?status=DEPLOYED` to the
        request URL. Multiple values for the

        same filter property are supported (e.g.,
        `?status=DEPLOYED&status=NEW`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 TCP shares, sorted by name in ascending order.

        The `frontdoorId` query parameter is required for authorization.
      operationId: find-tcp-shares
      parameters:
        - name: locationId
          in: query
          description: Location ID to filter by.
          allowEmptyValue: true
        - name: id
          in: query
          description: Id to filter by.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: status
          in: query
          description: Status to filter by.
          allowEmptyValue: true
        - name: ingressPort
          in: query
          description: Ingress port to filter by.
          allowEmptyValue: true
          schema:
            type: integer
            format: int32
        - name: clientCertificateId
          in: query
          description: Client certificate ID to filter by.
          allowEmptyValue: true
        - name: hostingId
          in: query
          description: Hosting ID to filter by.
          allowEmptyValue: true
        - name: envZId
          in: query
          description: Environment zrok ID to filter by.
          allowEmptyValue: true
        - name: target
          in: query
          description: Target to filter by.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: If deleted, filter by the user that deleted the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma.
          allowEmptyValue: true
        - name: frontdoorId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TcpShare'
              examples: {}
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - TCP Share
      summary: Create TCP Share
      description: >
        Creates a new TCP Share in this Frontdoor.

        The caller must have create permissions on the parent Frontdoor
        resource.

        TCP shares must be enabled for this Frontdoor.

        The response includes the created Share resource.
      operationId: create-tcp-share
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTcpShare'
            examples:
              default:
                description: default
                value: >-
                  {"name":"share-59","locationId":"ziucldtew6fjfmjnoionl","envZId":"nPBYkhVeKMlhOcy6MsVVy","target":"localhost:3000","ingressPort":2101,"clientCertificateId":"83idajh3k4yzxtvwlzivi","useIntermediateCertificate":false,"allowedSubjects":null,"allowedCommonNamePrefixes":null,"requiredOrganizationalUnit":null}
        required: true
      responses:
        '200':
          description: Share created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "5nrx7cjbe6badmspc95rp",
                      "locationId" : "ziucldtew6fjfmjnoionl",
                      "name" : "share-59",
                      "frontdoorId" : "5bb40a27-705b-4493-b208-9dca227348be",
                      "status" : "NEW",
                      "ingressPort" : 2101,
                      "clientCertificateId" : "83idajh3k4yzxtvwlzivi",
                      "hostingId" : null,
                      "envZId" : "nPBYkhVeKMlhOcy6MsVVy",
                      "target" : "localhost:3000",
                      "frontendEndpoint" : null,
                      "createdBy" : "56b34407-ed26-4d03-9113-3ef07198f2e2",
                      "createdAt" : "2026-03-25T16:04:38.347318Z",
                      "updatedAt" : "2026-03-25T16:04:38Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "access" : "mtls.fake.io:2101",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/tcp-shares/5nrx7cjbe6badmspc95rp"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/locations/ziucldtew6fjfmjnoionl"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/environments/nPBYkhVeKMlhOcy6MsVVy"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/tcp-shares/share-59/metrics{?duration}",
                          "templated" : true
                        },
                        "client-certificate" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be/client-certificates/83idajh3k4yzxtvwlzivi"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/5bb40a27-705b-4493-b208-9dca227348be"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/namespaces:
    get:
      tags:
        - Namespace
      summary: Search Namespaces
      description: >
        Retrieves a paginated list of Namespace resources filtered by any
        property.

        The results can be filtered by providing query parameters that
        correspond to the properties of a Namespace.

        For example, to filter by status, you can add `?status=DEPLOYED` to the
        request URL. Multiple values for the

        same filter property are supported (e.g.,
        `?status=DEPLOYED&status=NEW`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 namespaces, sorted by name in ascending order.

        The `frontdoorId` path parameter is required for authorization.
      operationId: find-namespaces
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by.
          allowEmptyValue: true
          schema:
            type: string
        - name: namespaceToken
          in: query
          description: Namespace token to filter by.
          allowEmptyValue: true
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: status
          in: query
          description: Status to filter by.
          allowEmptyValue: true
        - name: isDefault
          in: query
          description: Filter by default namespace flag.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: If deleted, filter by the user that deleted the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma.
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Namespace'
              examples: {}
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Namespace
      summary: Create a Namespace.
      description: >
        Creates a new Namespace within a specific Frontdoor.

        The caller must have update permissions on the parent Frontdoor
        resource.
      operationId: create-namespace
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNamespace'
            examples:
              default:
                description: default
                value: >-
                  {"name":"new-namespace.test-frontdoor.netfoundry.io","description":"A
                  new namespace"}
        required: true
      responses:
        '200':
          description: Namespace created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "kqdd0zdnmlystjfpem9cw",
                      "frontdoorId" : "169ddd49-7da6-4384-af6e-4f8970f11562",
                      "namespaceToken" : "ns_created_123",
                      "name" : "new-namespace.test-frontdoor.netfoundry.io",
                      "description" : "A new namespace",
                      "status" : "NEW",
                      "default" : false,
                      "createdBy" : "47d150e8-3ec5-44cf-a16c-afcaa466180f",
                      "createdAt" : "2026-03-25T16:04:34.667865Z",
                      "updatedBy" : "47d150e8-3ec5-44cf-a16c-afcaa466180f",
                      "updatedAt" : "2026-03-25T16:04:34.667865Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/169ddd49-7da6-4384-af6e-4f8970f11562/namespaces/kqdd0zdnmlystjfpem9cw"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/169ddd49-7da6-4384-af6e-4f8970f11562"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/locations:
    get:
      tags:
        - Location
      summary: List Locations
      description: >
        Retrieves a paginated list of Location resources in a specific
        Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of a Location.

        Sorting and pagination are also supported.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-locations
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: If deleted, filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: If deleted, filter by the user.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Location'
              examples: {}
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Location
      summary: Create Location
      description: >
        Creates a new Location for a Frontdoor.

        The caller must have update permissions on the parent Frontdoor
        resource.

        The response includes the created Location resource.
      operationId: create-location
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLocation'
            examples: {}
        required: true
      responses:
        '200':
          description: Location created.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/http-shares:
    get:
      tags:
        - HTTP Share
      summary: Search HTTP Shares
      description: >
        Retrieves a paginated list of HTTP Share resources filtered by any
        property.

        The results can be filtered by providing query parameters that
        correspond to the properties of an HTTP Share.

        For example, to filter by status, you can add `?status=DEPLOYED` to the
        request URL. Multiple values for the

        same filter property are supported (e.g.,
        `?status=DEPLOYED&status=NEW`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 HTTP shares, sorted by name in ascending order.

        The `frontdoorId` query parameter is required for authorization.
      operationId: find-http-shares
      parameters:
        - name: locationId
          in: query
          description: Location ID to filter by.
          allowEmptyValue: true
        - name: id
          in: query
          description: Id to filter by.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: status
          in: query
          description: Status to filter by.
          allowEmptyValue: true
        - name: envZId
          in: query
          description: Environment zrok ID to filter by.
          allowEmptyValue: true
        - name: namespaceToken
          in: query
          description: Namespace token to filter by.
          allowEmptyValue: true
        - name: shareToken
          in: query
          description: Share token to filter by.
          allowEmptyValue: true
        - name: target
          in: query
          description: Target to filter by.
          allowEmptyValue: true
        - name: authProviderId
          in: query
          description: Auth provider ID to filter by.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: If deleted, filter by the user that deleted the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma.
          allowEmptyValue: true
        - name: frontdoorId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HttpShare'
              examples: {}
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - HTTP Share
      summary: Create HTTP Share
      description: >
        Creates a new HTTP Share in this Frontdoor.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the created Share resource.
      operationId: create-http-share
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHttpShare'
            examples:
              default:
                description: default
                value: >-
                  {"name":"share-89","locationId":"b4j1g582e52l2vhfbi12f","namespaceId":"74vaip0ibfm9fvkan1ms1","envZId":"vhDONmaNsGJblyjhgu7tE","target":"https://zoom.us","authProviderId":"gx1zubu1wppghlsixpqed","oauthEmailDomains":null,"oauthAuthorizationCheckInterval":null,"insecure":false}
        required: true
      responses:
        '200':
          description: Share created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "n93lm8owge50x280yrpfq",
                      "frontdoorId" : "a0136833-b81a-4fc4-a281-171142047995",
                      "locationId" : "b4j1g582e52l2vhfbi12f",
                      "name" : "share-89",
                      "namespaceId" : "74vaip0ibfm9fvkan1ms1",
                      "namespaceToken" : null,
                      "status" : "DEPLOYED",
                      "backendMode" : null,
                      "envZId" : "vhDONmaNsGJblyjhgu7tE",
                      "target" : "https://zoom.us",
                      "frontendEndpoint" : "https://share-89.shares-88.frontdoor.sandbox.netfoundry.io",
                      "authProviderId" : "gx1zubu1wppghlsixpqed",
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "insecure" : false,
                      "createdBy" : "c1900c43-1a0e-45b3-acf1-ccb6b4095757",
                      "createdAt" : "2026-03-25T16:04:50.589646Z",
                      "updatedAt" : "2026-03-25T16:04:50Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "zid" : null,
                      "authProvider" : "auth-provider-86",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/share-89"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/locations/b4j1g582e52l2vhfbi12f"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/environments/vhDONmaNsGJblyjhgu7tE"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/n93lm8owge50x280yrpfq/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/health-checks:
    get:
      tags:
        - Health Checks
      summary: List Health Checks
      description: >
        Retrieves a paginated list of Health Check resources in a specific
        Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of a Health Check.

        For example, to filter by name, you can add `?name=my-check` to the
        request URL. Multiple values for the

        same filter property are supported (e.g., `?name=check1&name=check2`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 health checks, sorted by name in ascending order. The
        returned list is automatically constrained

        by the user's access permissions.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-health-checks
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by, unique IDs of health check resources.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: locationId
          in: query
          description: Location to filter by.
          allowEmptyValue: true
        - name: environment
          in: query
          description: Environment ZID to filter by, unique id of the environment.
          allowEmptyValue: true
        - name: shareToken
          in: query
          description: >-
            Share token to filter by, unique name of the share, uses 'like'
            semantics.
          allowEmptyValue: true
        - name: endpoint
          in: query
          description: >-
            Endpoint to filter by, the target of the health check like /status
            or /health.
          allowEmptyValue: true
        - name: httpVerb
          in: query
          description: The HTTP verb to filter by, example GET, POST, HEAD, etc.
          allowEmptyValue: true
        - name: expectedHttpResponse
          in: query
          description: The expected HTTP response code to filter by, example 200.
          allowEmptyValue: true
        - name: timeoutMilliseconds
          in: query
          description: The timeout in milliseconds to filter by, example 10000.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to to return
            only resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: >-
            If deleted, filter by a user of the user. Defaults to to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by a user of the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedBy
          in: query
          description: Filter by a user of the user that last updated the resource.
          allowEmptyValue: true
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HealthCheck'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "healthCheckList" : [ {
                          "id" : "sxdhoi42kgq2qj27fbbzn",
                          "frontdoorId" : "4f1800b7-f8ea-44a0-ade9-4569d596ebf5",
                          "locationId" : null,
                          "name" : "health-check-151",
                          "envZId" : "7qM_6dzW_D3vrgMgsxFnd",
                          "shareId" : "AbKnY0QU5D8ERE9upoiCG",
                          "httpVerb" : "GET",
                          "endpoint" : "/status",
                          "expectedHttpResponse" : 200,
                          "timeoutMilliseconds" : 1000,
                          "createdBy" : "550c1557-c8ec-47ef-8257-37e082c9b404",
                          "createdAt" : "2026-03-25T16:05:13.769179Z",
                          "updatedBy" : "06f67f35-0f7c-4c0a-81d5-713037ffe182",
                          "updatedAt" : "2026-03-25T16:05:13.771668Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/health-checks/sxdhoi42kgq2qj27fbbzn"
                            },
                            "share" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/http-shares/AbKnY0QU5D8ERE9upoiCG"
                            },
                            "environment" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/environments/7qM_6dzW_D3vrgMgsxFnd"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5"
                            }
                          }
                        }, {
                          "id" : "hg4js1grn8y9qppnb94lz",
                          "frontdoorId" : "4f1800b7-f8ea-44a0-ade9-4569d596ebf5",
                          "locationId" : null,
                          "name" : "health-check-152",
                          "envZId" : "WOGU--qV7dDrnvaYv2cQS",
                          "shareId" : "2x7hWvPWa_rKbH7gxTGKM",
                          "httpVerb" : "HEAD",
                          "endpoint" : "/health",
                          "expectedHttpResponse" : 200,
                          "timeoutMilliseconds" : 1000,
                          "createdBy" : "9fb3f5ec-f66a-41b9-b89b-7a5737c58558",
                          "createdAt" : "2026-03-25T16:05:13.773989Z",
                          "updatedBy" : "e294b7ed-ebcf-42cc-b355-eb2713418a4f",
                          "updatedAt" : "2026-03-25T16:05:13.776682Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/health-checks/hg4js1grn8y9qppnb94lz"
                            },
                            "share" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/http-shares/2x7hWvPWa_rKbH7gxTGKM"
                            },
                            "environment" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/environments/WOGU--qV7dDrnvaYv2cQS"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5/health-checks"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/4f1800b7-f8ea-44a0-ade9-4569d596ebf5"
                        }
                      },
                      "page" : {
                        "size" : 20,
                        "totalElements" : 2,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Health Checks
      summary: Create Health Check
      description: >
        Creates a new Health Check for a Frontdoor.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the created Health Check resource.
      operationId: create-health-check
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHealthCheckRequest'
            examples:
              default:
                description: default
                value: >-
                  {"name":"health check
                  1","locationId":null,"shareId":"755xa3euw9y44ucg4mqxf","endpoint":"/status","httpVerb":"GET","expectedHttpResponse":null,"timeoutMilliseconds":null}
        required: true
      responses:
        '200':
          description: Health check created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "1am8fdoxur8ywv4hfu6dv",
                      "frontdoorId" : "3962efc7-9fa9-4b91-aeaa-c19f450ce3ef",
                      "locationId" : null,
                      "name" : "health check 1",
                      "envZId" : "eLsVW40lVvIgeZQA-eLOW",
                      "shareId" : "755xa3euw9y44ucg4mqxf",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "daf969e4-f282-4fad-b76a-bafe03104550",
                      "createdAt" : "2026-03-25T16:05:13.861498Z",
                      "updatedBy" : "daf969e4-f282-4fad-b76a-bafe03104550",
                      "updatedAt" : "2026-03-25T16:05:13.861498Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3962efc7-9fa9-4b91-aeaa-c19f450ce3ef/health-checks/1am8fdoxur8ywv4hfu6dv"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3962efc7-9fa9-4b91-aeaa-c19f450ce3ef/http-shares/755xa3euw9y44ucg4mqxf"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3962efc7-9fa9-4b91-aeaa-c19f450ce3ef/environments/eLsVW40lVvIgeZQA-eLOW"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/3962efc7-9fa9-4b91-aeaa-c19f450ce3ef"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/health-checks/execute:
    post:
      tags:
        - Health Checks
      summary: Executes a HealthCheck without storing it.
      description: >
        Executes a transient Health Check without saving it.

        This is useful for testing health check parameters before creating a
        resource.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: execute-health-check
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHealthCheckRequest'
            examples: {}
        required: true
      responses:
        '200':
          description: The outcome of the Health Check
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "86c997aa-0019-4ade-a09b-fdb328376bd9",
                      "id" : null,
                      "healthy" : true,
                      "error" : null,
                      "_links" : {
                        "health-check" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/86c997aa-0019-4ade-a09b-fdb328376bd9/health-checks/{id}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/86c997aa-0019-4ade-a09b-fdb328376bd9"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/client-certificates:
    get:
      tags:
        - Client Certificate
      summary: List Client Certificates
      description: >
        Retrieves a paginated list of Client Certificate resources in a specific
        Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of a Client Certificate.

        For example, to filter by name, you can add `?name=my-check` to the
        request URL. Multiple values for the

        same filter property are supported (e.g., `?name=check1&name=check2`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 client certificates, sorted by name in ascending order.
        The returned list is automatically constrained

        by the user's access permissions.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-client-certificates
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by, unique IDs of client certificate resources.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to to return
            only resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: >-
            If deleted, filter by a user of the user. Defaults to to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by a user of the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedBy
          in: query
          description: Filter by a user of the user that last updated the resource.
          allowEmptyValue: true
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientCertificate'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "clientCertificateList" : [ {
                          "id" : "1pqlx0ydgx5pyed79y5oi",
                          "frontdoorId" : "a2deb181-c9cc-4c53-816c-8935515dc843",
                          "name" : "third",
                          "createdBy" : "1aad7e7c-e9e1-4e42-b2a5-590a8d85ac8b",
                          "createdAt" : "2026-03-25T16:05:04.116568Z",
                          "updatedBy" : "1aad7e7c-e9e1-4e42-b2a5-590a8d85ac8b",
                          "updatedAt" : "2026-03-25T16:05:04.116568Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843/client-certificates/1pqlx0ydgx5pyed79y5oi"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843"
                            }
                          }
                        }, {
                          "id" : "igh73zhy178286fzhg7vk",
                          "frontdoorId" : "a2deb181-c9cc-4c53-816c-8935515dc843",
                          "name" : "second",
                          "createdBy" : "4d99ff20-41b8-4b40-a859-066e41a544d4",
                          "createdAt" : "2026-03-25T16:05:04.113118Z",
                          "updatedBy" : "4d99ff20-41b8-4b40-a859-066e41a544d4",
                          "updatedAt" : "2026-03-25T16:05:04.113118Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843/client-certificates/igh73zhy178286fzhg7vk"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843"
                            }
                          }
                        }, {
                          "id" : "os4bgucmd6cipss4ufia6",
                          "frontdoorId" : "a2deb181-c9cc-4c53-816c-8935515dc843",
                          "name" : "first",
                          "createdBy" : "211c33aa-deb3-4c23-9a11-a6b6738ec4f7",
                          "createdAt" : "2026-03-25T16:05:04.108831Z",
                          "updatedBy" : "211c33aa-deb3-4c23-9a11-a6b6738ec4f7",
                          "updatedAt" : "2026-03-25T16:05:04.108831Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843/client-certificates/os4bgucmd6cipss4ufia6"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843/client-certificates"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a2deb181-c9cc-4c53-816c-8935515dc843"
                        }
                      },
                      "page" : {
                        "size" : 20,
                        "totalElements" : 3,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Client Certificate
      summary: Create Client Certificate with conventional auth
      description: >
        Creates a new Client Certificate for use in the specific Frontdoor.

        Client Certificates can be created in two ways, uploading an existing
        certificate that was generated outside of NetFoundry or the user can
        upload a

        Certificate Request and NetFoundry will generate the Client Certificate.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the created Client Certificate resource.
      operationId: create-client-certificate-bearer
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClientCertificate'
            examples:
              default:
                description: default
                value: >-
                  {"name":"client cert 2","type":"CSR","value":"-----BEGIN
                  CERTIFICATE
                  REQUEST-----\nMIIB1jCCAT8CAQAwgZUxEjAQBgNVBAoTCWFjY2VzczM2MDEUMBIGA1UECxMLZW5n\naW5lZXJpbmcxEDAOBgNVBAMTB250YWdlbnQxJDAiBgkqhkiG9w0BCQEWFW50YWdl\nbnRAYWNjZXNzMzYwLmNvbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju\naWExDzANBgNVBAcTBklydmluZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\nmR6AcPnwf6hLLc72BmUkAwaXcebtxCoCnnTH9uc8VuMHPbIMAgjuC4s91hPrilG7\nUtlbOfy6X3R3kbeR8apRR9uLYrPIvQ1b4NK0whsytij6syCySaFQIB6V7RPBatFr\n6XQ9hpsARdkGytZmGTgGTJ1hSS/jA6mbxpgmttz9HPECAwEAAaAAMA0GCSqGSIb3\nDQEBAgUAA4GBADxA1cDkvXhgZntHkwT9tCTqUNV9sim8N/U15HgMRh177jVaHJqb\nN1Er46vQSsOOOk4z2i/XwOmFkNNTXRVl9TLZZ/D+9mGZcDobcO+lbAKlePwyufxK\nXqdpu3d433H7xfJJSNYLYBFkrQJesITqKft0Q45gIjywIrbctVUCepL2\n-----END
                  CERTIFICATE REQUEST-----\n","validYears":2}
        required: true
      responses:
        '200':
          description: Client certificate is created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "16dvy7m57c813gamdsn7d",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "client cert 2",
                      "createdBy" : "1bbe8f42-38f3-49be-8c62-8aba66bce0e9",
                      "createdAt" : "2026-03-25T16:05:07.476889Z",
                      "updatedBy" : "1bbe8f42-38f3-49be-8c62-8aba66bce0e9",
                      "updatedAt" : "2026-03-25T16:05:07.481047Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN CERTIFICATE-----\nMIIEYjCCAkqgAwIBAgIGAZ0lvhUGMA0GCSqGSIb3DQEBCwUAMFgxEzARBgNVBAMM\nCk5ldEZvdW5kcnkxEzARBgNVBAoMCk5ldEZvdW5kcnkxEjAQBgNVBAcMCUNoYXJs\nb3R0ZTELMAkGA1UECAwCTkMxCzAJBgNVBAYTAlVTMB4XDTI2MDMyNTE2MDUwN1oX\nDTI4MDMyNDE2MDUwN1owgZUxEjAQBgNVBAoTCWFjY2VzczM2MDEUMBIGA1UECxML\nZW5naW5lZXJpbmcxEDAOBgNVBAMTB250YWdlbnQxJDAiBgkqhkiG9w0BCQEWFW50\nYWdlbnRAYWNjZXNzMzYwLmNvbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm\nb3JuaWExDzANBgNVBAcTBklydmluZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC\ngYEAmR6AcPnwf6hLLc72BmUkAwaXcebtxCoCnnTH9uc8VuMHPbIMAgjuC4s91hPr\nilG7UtlbOfy6X3R3kbeR8apRR9uLYrPIvQ1b4NK0whsytij6syCySaFQIB6V7RPB\natFr6XQ9hpsARdkGytZmGTgGTJ1hSS/jA6mbxpgmttz9HPECAwEAAaN4MHYwEwYD\nVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFHv2y1V3wvY8YNqsxvQvNZV1KGuS\nMB8GA1UdIwQYMBaAFHv2y1V3wvY8YNqsxvQvNZV1KGuSMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQB2qgHIriVsUv4N\nx2WDCEIOcOovmGvZaWq6UyFR1WL9qiJ6LQc+UxPAXejzCMtRbkcKYUrZacUBCkqi\nTBAVXsv+6PgfgnpdpjZR2SBJNjvVyIdP+FSBdO+wlQGApwYmb+/7q3ptKygJ0WPN\nlMmpEuRafHw0CPWLsEA2xcoqA9ZN/7jOD52vGqDmtRaj2kxmwhThGqSEddA+Gnyi\nRtZhij4Gi9a0WtrV02XKxRM3EoZ3w3BJ/yyguj7KFV15uN89hayLKZ79C78ivEyJ\nKzK/u434hjR1Iu9PB6sKZkr9Vd9GpSNNMmXzTTYuohOKpdCTxBTSoMnsgqcUiEv5\nWsSPZghXXJgdiLYcVD0N6zg3LZgAXlSU49fi+grXQJitgYHxKlSe1dia2ECVHlBG\no59t6A/8/S3XmTbqIMVi2FpenJNR1IKWyCs+j3yVuQXlIkpMwLIDS/YAqR9JaD1t\nYRwVqPx7gZO0MYtv7JNRLerN+3Cg45MEzyIWwBQTBBpVcCqqkWtFWmtU8zj7qWrb\nHRs+oI4ayZAj6BWhqLe9U12HZb20zb+lshDR0O0dMkzX9jnmgA4/vqeXVSv7kWNj\nqytVRQokuHmZsQ2CCa53CXoPlJddIeBJLAihCjfdCRJnAzVgLP5rdafpS0wfopJu\nPqMKblRzhKFgrUOLBzh2f85M0KRY8w==\n-----END CERTIFICATE-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/16dvy7m57c813gamdsn7d"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/client-certificates/token/{token}:
    post:
      tags:
        - Client Certificate
      summary: Create Client Certificate with token auth
      description: >
        Creates a new Client Certificate for use in the specific Frontdoor using
        a pre-created Certificate Request Token.

        Client Certificates can be created in two ways, uploading an existing
        certificate that was generated outside of NetFoundry or the user can
        upload a

        Certificate Request and NetFoundry will generate the Client Certificate.

        The caller does not need any additional permissions, as long as the
        token is valid.

        The response includes the created Client Certificate resource.
      operationId: create-client-certificate-token
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: token
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClientCertificate'
            examples:
              default:
                description: default
                value: >-
                  {"name":null,"type":"CSR","value":"-----BEGIN CERTIFICATE
                  REQUEST-----\nMIIB1jCCAT8CAQAwgZUxEjAQBgNVBAoTCWFjY2VzczM2MDEUMBIGA1UECxMLZW5n\naW5lZXJpbmcxEDAOBgNVBAMTB250YWdlbnQxJDAiBgkqhkiG9w0BCQEWFW50YWdl\nbnRAYWNjZXNzMzYwLmNvbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju\naWExDzANBgNVBAcTBklydmluZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\nmR6AcPnwf6hLLc72BmUkAwaXcebtxCoCnnTH9uc8VuMHPbIMAgjuC4s91hPrilG7\nUtlbOfy6X3R3kbeR8apRR9uLYrPIvQ1b4NK0whsytij6syCySaFQIB6V7RPBatFr\n6XQ9hpsARdkGytZmGTgGTJ1hSS/jA6mbxpgmttz9HPECAwEAAaAAMA0GCSqGSIb3\nDQEBAgUAA4GBADxA1cDkvXhgZntHkwT9tCTqUNV9sim8N/U15HgMRh177jVaHJqb\nN1Er46vQSsOOOk4z2i/XwOmFkNNTXRVl9TLZZ/D+9mGZcDobcO+lbAKlePwyufxK\nXqdpu3d433H7xfJJSNYLYBFkrQJesITqKft0Q45gIjywIrbctVUCepL2\n-----END
                  CERTIFICATE REQUEST-----\n","validYears":null}
        required: true
      responses:
        '200':
          description: Client certificate is created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "dgnlfnusqzj2vbmog8cra",
                      "frontdoorId" : "7be5968b-f76b-44c6-9466-27a22b1d4c93",
                      "name" : "certification-request-token-118",
                      "createdBy" : "87578732-2a33-43d0-b8e8-56f5dc53ab60",
                      "createdAt" : "2026-03-25T16:05:07.015553Z",
                      "updatedBy" : "87578732-2a33-43d0-b8e8-56f5dc53ab60",
                      "updatedAt" : "2026-03-25T16:05:07.021995Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN CERTIFICATE-----\nMIIEYjCCAkqgAwIBAgIGAZ0lvhMpMA0GCSqGSIb3DQEBCwUAMFgxEzARBgNVBAMM\nCk5ldEZvdW5kcnkxEzARBgNVBAoMCk5ldEZvdW5kcnkxEjAQBgNVBAcMCUNoYXJs\nb3R0ZTELMAkGA1UECAwCTkMxCzAJBgNVBAYTAlVTMB4XDTI2MDMyNTE2MDUwNloX\nDTI3MDMyNTE2MDUwNlowgZUxEjAQBgNVBAoTCWFjY2VzczM2MDEUMBIGA1UECxML\nZW5naW5lZXJpbmcxEDAOBgNVBAMTB250YWdlbnQxJDAiBgkqhkiG9w0BCQEWFW50\nYWdlbnRAYWNjZXNzMzYwLmNvbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm\nb3JuaWExDzANBgNVBAcTBklydmluZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC\ngYEAmR6AcPnwf6hLLc72BmUkAwaXcebtxCoCnnTH9uc8VuMHPbIMAgjuC4s91hPr\nilG7UtlbOfy6X3R3kbeR8apRR9uLYrPIvQ1b4NK0whsytij6syCySaFQIB6V7RPB\natFr6XQ9hpsARdkGytZmGTgGTJ1hSS/jA6mbxpgmttz9HPECAwEAAaN4MHYwEwYD\nVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFHv2y1V3wvY8YNqsxvQvNZV1KGuS\nMB8GA1UdIwQYMBaAFHv2y1V3wvY8YNqsxvQvNZV1KGuSMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQAr421GeA8GICQt\nd9mSKv6O0fUOLXpAI5oZjp+ASORLK0MnYMy+XXOIJraC/Lla+2ZdO0cgR7yaD8on\nIPK6KocXy9sz35LiNfAuVSfxogBMfUpLmsxvyPfLjJyTGb9MX5sZ1PlsZDl0fSN0\n37EoedICFZu0uKYmKLBlgsMCxlbBomgj/qCTfdWwoQHk53B9NJSv0jgk7Y3o3DHY\nQZy8NWt+2ujraWFkQiwYbW9mAeFlAIVQdDudssH+wgtJJ7lHKg/N2CahT/Fp9f9W\nXX5EAtC5hW5AZEeLMzmp7z8o20YQYHP7mn1vybN7MKPJSHhHS5yN3k2f3F+ZJGdl\nb8d/+eraTdJl1jx91PEdLjNnEi6koxI1hqVBth9VHkBj5nUb4X33N+nuM3oJsLWW\nwNCR0eOhtDr087/KIz9LSSm4DwUcP/71vYWBHV2eGpD9fwN/lHwtYITF4tsosfMv\nL34nkYAK5RW6J4oZRU7XZZjaNff97dg48e8eFs+tvykAWKRMgbxmKE+uBnmgBy5n\nAmsTZduzwukNY0ZJgSC9GcoTemB9GAsTMmiv7oHct/uxb/ikslt56xJR0PS/eEcP\naGTrLxNgocAvm3MZO/eoKA7oCOeTnFh+SkRIhncZXT4QM1KVQtQDUhz/VPFPFqdH\nJjPDWWNkViaw9aBBkm4H1Pv1E7wZjg==\n-----END CERTIFICATE-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93/client-certificates/dgnlfnusqzj2vbmog8cra"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/7be5968b-f76b-44c6-9466-27a22b1d4c93"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/certificate-request-tokens:
    get:
      tags:
        - Certificate Request Tokens
      summary: List Certificate Request Tokens
      description: >
        Retrieves a paginated list of Certificate Request Token resources in a
        specific Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of a Certificate Request Token.

        For example, to filter by name, you can add `?name=my-check` to the
        request URL. Multiple values for the

        same filter property are supported (e.g., `?name=check1&name=check2`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 certificate request tokens, sorted by name in ascending
        order. The returned list is automatically constrained

        by the user's access permissions.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-certificate-request-tokens
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by, unique IDs of certificate request token resources.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to to return
            only resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: >-
            If deleted, filter by a user of the user. Defaults to to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by a user of the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedBy
          in: query
          description: Filter by a user of the user that last updated the resource.
          allowEmptyValue: true
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CertificateRequestToken'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "certificateRequestTokenList" : [ {
                          "id" : "5igkwrriqhl6txfrg94o4",
                          "frontdoorId" : "089c7e2e-48fb-4f67-ac6e-57c61d2c776e",
                          "name" : "certification-request-token-33",
                          "token" : "42y585be9r",
                          "commonName" : "frontdoor-cert-request-34",
                          "organization" : "netfoundry-35",
                          "organizationalUnit" : "MOP-36",
                          "validYears" : 1,
                          "expiresAt" : "2026-03-25T17:04:33.533591Z",
                          "createdBy" : "74d2c3d1-853d-4243-9ba0-462e5936794f",
                          "createdAt" : "2026-03-25T16:04:33.532882Z",
                          "updatedBy" : "74d2c3d1-853d-4243-9ba0-462e5936794f",
                          "updatedAt" : "2026-03-25T16:04:33.532882Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e/certificate-request-tokens/5igkwrriqhl6txfrg94o4"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e"
                            }
                          }
                        }, {
                          "id" : "qjcpmsn0fp9s795xqmy6c",
                          "frontdoorId" : "089c7e2e-48fb-4f67-ac6e-57c61d2c776e",
                          "name" : "certification-request-token-37",
                          "token" : "ettxlj8s4j",
                          "commonName" : "frontdoor-cert-request-38",
                          "organization" : "netfoundry-39",
                          "organizationalUnit" : "MOP-40",
                          "validYears" : 1,
                          "expiresAt" : "2026-03-25T17:04:33.537351Z",
                          "createdBy" : "596b3dc6-d9e9-4f1f-aa4b-b116b3c7101a",
                          "createdAt" : "2026-03-25T16:04:33.536923Z",
                          "updatedBy" : "596b3dc6-d9e9-4f1f-aa4b-b116b3c7101a",
                          "updatedAt" : "2026-03-25T16:04:33.536923Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e/certificate-request-tokens/qjcpmsn0fp9s795xqmy6c"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e/certificate-request-tokens"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/089c7e2e-48fb-4f67-ac6e-57c61d2c776e"
                        }
                      },
                      "page" : {
                        "size" : 20,
                        "totalElements" : 2,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Certificate Request Tokens
      summary: Create Certificate Request Token
      description: >
        Creates a new Certificate Request Token for use in the specific
        Frontdoor.

        Certificate Request Tokens have a token (OTT) that can be used to upload
        a single CSR to generate a Client Certificate. Using the OTT requires no
        further authentication when uploading a CSR by the end user.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the created Certificate Request Token resource.
      operationId: create-certificate-request-token
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCertificateRequestToken'
            examples:
              default:
                description: default
                value: >-
                  {"name":"Cert Request 1","commonName":"Client Cert
                  1","organization":"NetFoundry","organizationalUnit":"MOP","validYears":2}
        required: true
      responses:
        '200':
          description: Certificate request token is created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "r20oewaa9w7q1t03jwt7h",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "Cert Request 1",
                      "token" : "9ggo51e4s4",
                      "commonName" : "Client Cert 1",
                      "organization" : "NetFoundry",
                      "organizationalUnit" : "MOP",
                      "validYears" : 2,
                      "expiresAt" : "2026-04-01T16:04:33.246182Z",
                      "createdBy" : "b9c2acc9-2f9e-43cf-a1b7-828aaa6c2d4d",
                      "createdAt" : "2026-03-25T16:04:33.245965Z",
                      "updatedBy" : "b9c2acc9-2f9e-43cf-a1b7-828aaa6c2d4d",
                      "updatedAt" : "2026-03-25T16:04:33.245965Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/r20oewaa9w7q1t03jwt7h"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/auth-providers:
    get:
      tags:
        - Auth Provider
      summary: List Auth Providers
      description: >
        Retrieves a paginated list of Auth Provider resources in a specific
        Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of an Auth Provider.

        For example, to filter by name, you can add `?name=my-check` to the
        request URL. Multiple values for the

        same filter property are supported (e.g., `?name=check1&name=check2`).

        Sorting and pagination are also supported. For instance,
        `?page=0&size=20&sort=name,asc` will retrieve the

        first page of 20 auth providers, sorted by name in ascending order. The
        returned list is automatically constrained

        by the user's access permissions.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-auth-providers
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by, unique IDs of auth provider resources.
          allowEmptyValue: true
          schema:
            type: string
        - name: name
          in: query
          description: Name to filter by.
          allowEmptyValue: true
        - name: schema
          in: query
          description: The auth provider schema type, see Auth Provider Type resource
          allowEmptyValue: true
        - name: deletedAt
          in: query
          description: >-
            If deleted, filter by a range of timestamps. Defaults to to return
            only resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: deletedBy
          in: query
          description: >-
            If deleted, filter by a user of the user. Defaults to to return only
            resources that are not deleted.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: createdAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBy
          in: query
          description: Filter by a user of the user that created the resource.
          allowEmptyValue: true
          schema:
            type: string
            format: uuid
        - name: updatedAt
          in: query
          description: Filter by a range of timestamps.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedBy
          in: query
          description: Filter by a user of the user that last updated the resource.
          allowEmptyValue: true
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthProvider'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "authProviderList" : [ {
                          "id" : "bsd9fjqvac2qwk8ljyiwy",
                          "frontdoorId" : "215ebf19-680b-4014-b8fa-4ae26fe4c009",
                          "name" : "auth-provider-133",
                          "type" : "OIDC",
                          "prompt" : "LOGIN",
                          "createdBy" : "cb8e66fd-7cf7-4fb1-bcc3-2afa59cbad1b",
                          "createdAt" : "2026-03-25T16:05:09.087576Z",
                          "updatedBy" : "e1491767-a282-4d85-bff3-c9567a2543af",
                          "updatedAt" : "2026-03-25T16:05:09.090022Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009/auth-providers/bsd9fjqvac2qwk8ljyiwy"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009"
                            }
                          }
                        }, {
                          "id" : "h2k7lkje1chow4hcg761v",
                          "frontdoorId" : "215ebf19-680b-4014-b8fa-4ae26fe4c009",
                          "name" : "auth-provider-134",
                          "type" : "OIDC",
                          "prompt" : "LOGIN",
                          "createdBy" : "d3426622-7984-47a2-933f-0def1f8bf37a",
                          "createdAt" : "2026-03-25T16:05:09.091953Z",
                          "updatedBy" : "4a099c9c-d7fa-46c8-8d3f-1d2bf83c2f90",
                          "updatedAt" : "2026-03-25T16:05:09.094210Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009/auth-providers/h2k7lkje1chow4hcg761v"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009/auth-providers"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/215ebf19-680b-4014-b8fa-4ae26fe4c009"
                        }
                      },
                      "page" : {
                        "size" : 20,
                        "totalElements" : 2,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Auth Provider
      summary: Create Auth Provider
      description: >
        Creates a new Auth Provider for a Frontdoor.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the created Auth Provider resource.
      operationId: create-auth-provider
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAuthProvider'
            examples:
              default:
                description: default
                value: >-
                  {"name":"auth provider
                  1","type":"GOOGLE","prompt":"LOGIN","data":{"client_id":"S63XCIsEpp5wtHoG_2c6O","client_secret":"Lsx-zh4SIyw1LbDJVWeSM"}}
        required: true
      responses:
        '200':
          description: Auth Provider created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "pca1a530eqkw33g8jp6rl",
                      "frontdoorId" : "c41b2135-815a-486a-bd20-3207b9a74e69",
                      "name" : "auth provider 1",
                      "type" : "GOOGLE",
                      "prompt" : "LOGIN",
                      "createdBy" : "36c83b5b-5be6-48ff-8018-4f6bec40bca8",
                      "createdAt" : "2026-03-25T16:05:08.955887Z",
                      "updatedBy" : "36c83b5b-5be6-48ff-8018-4f6bec40bca8",
                      "updatedAt" : "2026-03-25T16:05:08.957643Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "S63XCIsEpp5wtHoG_2c6O",
                        "client_secret" : "Lsx-zh4SIyw1LbDJVWeSM"
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/c41b2135-815a-486a-bd20-3207b9a74e69/auth-providers/pca1a530eqkw33g8jp6rl"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/c41b2135-815a-486a-bd20-3207b9a74e69"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/agents/enrollment:
    post:
      tags:
        - Agent
      summary: Create Enrollment Token
      description: >
        Creates a new Enrollment Token, for use with installing a Frontdoor
        Agent.

        The caller must have create permissions on the parent Frontdoor
        resource.

        The response includes the Enrollment Token.
      operationId: create-enrollment
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: enrollment Token for the Enrollment Token.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "awxbn4sss22tz4tgb7k58",
                      "frontdoorId" : "b3c12a1e-a3d5-4821-aa00-795d6fa773a7",
                      "locationId" : "bfd9cutsj2aqc5lfy8gtt",
                      "bootstrapToken" : "qhhuvmn2",
                      "enrollmentExpiryDate" : "2026-03-27T16:05:14.815551Z",
                      "enrollmentAttempts" : 0,
                      "envZId" : null,
                      "createdAt" : "2026-03-25T16:05:14.815237Z",
                      "createdBy" : "92fa4c54-e3e0-41db-9325-c91367c9cf28",
                      "deletedAt" : null,
                      "deletedBy" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agent/enrollment"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/agent/enrollment/{code}:
    get:
      tags:
        - Agent
      summary: Get Bootstrap Token
      description: >
        Get the Bootstrap token for the Enrollment Token, called by the
        Frontdoor Agent during bootstrapping process.

        The response includes the Bootstrap Token.
      operationId: get-bootstrap-token
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Bootstrap Token for the Enrollment Token.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "accountToken" : "AFUtX-uecEWN-EtoKNkXY",
                      "apiEndpoint" : "https://localhost:0"
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    post:
      tags:
        - Agent
      summary: Complete Agent Enrollment
      description: >
        Reports the result of an agent enrollment attempt, called by the
        Frontdoor Agent after bootstrapping.

        If the status is "success", the envZId must be provided.

        If the status is "failed", the reason must be provided.
      operationId: complete-agent-enrollment
      parameters:
        - name: code
          in: path
          description: The unique enrollment token.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentEnrollmentResult'
            examples: {}
        required: true
      responses:
        '200':
          description: Enrollment result recorded.
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{id}:
    get:
      tags:
        - Frontdoor
      summary: Retrieves a single Frontdoor resource by ID.
      description: |
        Retrieves the Frontdoor by its ID.
        The caller must have read permissions on the Frontdoor resource.
      operationId: get-frontdoor
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Frontdoor exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontendStatus" : "DELETED",
                      "id" : "27ae6d87-6c2f-455c-bd97-e39e924c9da6",
                      "organizationId" : "28dfa2f8-99c5-4c57-9262-1157a6bca8b4",
                      "version" : 2,
                      "tcpSharesEnabled" : true,
                      "createdBy" : "280e9993-8ddb-4793-b2aa-bbd49a97cfed",
                      "createdAt" : "2026-03-25T16:05:03.538376Z",
                      "updatedBy" : "1aff32da-1ca0-4864-8cbb-2ae5bbfd1766",
                      "updatedAt" : "2026-03-25T16:05:03.562521Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/metrics{?duration}",
                          "templated" : true
                        },
                        "locations" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/locations"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/environments{?locationId}",
                          "templated" : true
                        }
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Frontdoor
      summary: Delete Frontdoor
      description: >
        Deletes a Frontdoor entity identified by its unique identifier. Deletes
        all resources tied to the Frontdoor instance.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-frontdoor
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Frontdoor deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "e4591a68-873c-43d7-91ac-05727c0685b6",
                      "organizationId" : "5e69a4c6-df58-4659-ab05-72167ebd2be7",
                      "version" : 2,
                      "tcpSharesEnabled" : true,
                      "createdBy" : "a324f9b1-3e5e-4033-bc30-8b3d0bbb31a0",
                      "createdAt" : "2026-03-25T16:09:51.988552Z",
                      "updatedBy" : "ba64675f-468f-476d-9c31-e1e72037c584",
                      "updatedAt" : "2026-03-25T16:09:52.516628Z",
                      "deletedBy" : "d7eb4f0d-cc48-4877-b31d-166be8834707",
                      "deletedAt" : "2026-03-25T16:09:52.513916Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6/metrics{?duration}",
                          "templated" : true
                        },
                        "locations" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6/locations"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/e4591a68-873c-43d7-91ac-05727c0685b6/environments{?locationId}",
                          "templated" : true
                        }
                      }
                    }
        '202':
          description: Accepted
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EntityModelFrontdoor'
              examples: {}
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{id}/metrics:
    get:
      tags:
        - Frontdoor
      summary: Get metrics for single Frontdoor resource by ID.
      description: >
        Retrieves transmitted and received data for the user's Frontdoor.

        Optionally takes a duration parameter to filter the metrics based on
        time.

        An optional duration parameter can be provided to specify the time
        window for the metrics.
      operationId: get-frontdoor-metrics
      parameters:
        - name: id
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: duration
          in: query
          description: >-
            An optional request parameter to specify the time duration for the
            metrics.
          required: false
          schema:
            type: string
            format: duration
            examples:
              - 15m
              - 1h
      responses:
        '200':
          description: Frontdoor exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb",
                      "scope" : "account",
                      "id" : "9",
                      "period" : "2592000",
                      "samples" : [ {
                        "rx" : 3821,
                        "tx" : 513,
                        "timestamp" : "2025-06-23T00:00:00.000+00:00"
                      }, {
                        "rx" : 3282,
                        "tx" : 3053,
                        "timestamp" : "2025-06-24T00:00:00.000+00:00"
                      }, {
                        "rx" : 821,
                        "tx" : 302513,
                        "timestamp" : "2025-06-25T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-26T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-27T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-28T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-29T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-30T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-01T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-02T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-03T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-04T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-05T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-06T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-07T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-08T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-09T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-10T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-11T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-12T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-13T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-14T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-15T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-16T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-17T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-18T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-19T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-20T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-21T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-22T00:00:00.000+00:00"
                      }, {
                        "rx" : 32821,
                        "tx" : 30513,
                        "timestamp" : "2025-07-22T15:56:40.161+00:00"
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb"
                        },
                        "locations" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb/locations"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b2781ca6-dfb8-4065-b76b-d2cf77bcb4bb/environments{?locationId}",
                          "templated" : true
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/tcp-shares/{id}/metrics:
    get:
      tags:
        - TCP Share
      summary: Get metrics for single TCP Share resource by ID.
      description: >
        Retrieves transmitted and received data for a specific share.

        This endpoint fetches metrics data for a given share within a specific
        frontdoor.

        An optional duration parameter can be provided to specify the time
        window for the metrics.
      operationId: get-tcp-share-metrics
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique id of the Share.
          required: true
          schema:
            type: string
        - name: duration
          in: query
          description: Optional time window to retrieve metrics for.
          required: false
          schema:
            type: string
            format: duration
            examples:
              - 15m
              - 1h
      responses:
        '200':
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "58359aa6-1efa-40c7-bff7-922134291af3",
                      "locationId" : "645xt6w6gux4w8nmwygy8",
                      "envZId" : "aS-jHGqpRKQrggNAGfFO4",
                      "name" : "share-49",
                      "scope" : "account",
                      "id" : "9",
                      "period" : "2592000",
                      "samples" : [ {
                        "rx" : 3821,
                        "tx" : 513,
                        "timestamp" : "2025-06-23T00:00:00.000+00:00"
                      }, {
                        "rx" : 3282,
                        "tx" : 3053,
                        "timestamp" : "2025-06-24T00:00:00.000+00:00"
                      }, {
                        "rx" : 821,
                        "tx" : 302513,
                        "timestamp" : "2025-06-25T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-26T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-27T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-28T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-29T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-30T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-01T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-02T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-03T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-04T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-05T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-06T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-07T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-08T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-09T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-10T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-11T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-12T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-13T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-14T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-15T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-16T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-17T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-18T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-19T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-20T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-21T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-22T00:00:00.000+00:00"
                      }, {
                        "rx" : 32821,
                        "tx" : 30513,
                        "timestamp" : "2025-07-22T15:56:40.161+00:00"
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3/tcp-shares/share-49/metrics{?duration}",
                          "templated" : true
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3/locations/645xt6w6gux4w8nmwygy8"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3/tcp-shares/9"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3/tcp-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3/environments/aS-jHGqpRKQrggNAGfFO4"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/58359aa6-1efa-40c7-bff7-922134291af3"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/sparklines:
    get:
      tags:
        - Sparklines
      summary: Get Sparklines for the Frontdoor
      description: >
        This retrieves sparkline data for a specific frontdoor. Sparklines
        provide a concise view of network traffic metrics (receive and transmit)
        over a period of time.

        The data can be filtered by providing a set of environment ZIDs or a set
        of share tokens. It is mandatory to provide at least one environment or
        one share for the query to be valid.
      operationId: get-sparklines
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: query
          description: Id to filter by, unique IDs of health check resources.
          allowEmptyValue: true
          schema:
            type: string
        - name: shares
          in: query
          description: Share Tokens to filter by.
          allowEmptyValue: true
        - name: environments
          in: query
          description: Environment ZID to filter by, unique id of the environment.
          allowEmptyValue: true
        - name: sparklines
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/SparklinesInput'
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Sparklines'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "6d8497ed-e697-4edd-9765-e846c946284d",
                      "sparklines" : [ {
                        "scope" : "environment",
                        "id" : "68qrdm0opvoi8hh98b1q2",
                        "period" : null,
                        "samples" : [ {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 21756,
                          "tx" : 2334,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 175611,
                          "tx" : 1124,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 16,
                          "tx" : 22834,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        }, {
                          "rx" : 0,
                          "tx" : 0,
                          "timestamp" : null
                        } ]
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "/frontdoor/v2/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/6d8497ed-e697-4edd-9765-e846c946284d"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/namespaces/{id}/dns-records:
    get:
      tags:
        - Namespace
      summary: >-
        Retrieves the dns validation records for a single Namespace resource by
        it's unique id.
      description: >
        Retrieves the DNS records for a specified namespace within a given
        frontdoor context.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-namespace-dns-records
      parameters:
        - name: id
          in: path
          description: Namespace unique ID.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Namespace exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "442249d1-6b4d-465e-9923-209961246b70",
                      "customFrontendId" : "u906yooc1d6o7hudxu1jj",
                      "domainName" : "test.shares.netfoundry.io",
                      "aRecord" : {
                        "name" : "*.test.shares.netfoundry.io",
                        "ipAddress" : [ "10.20.30.40" ]
                      },
                      "cnameRecords" : [ {
                        "name" : "_validation.test.shares.netfoundry.io",
                        "value" : "validate.example.com"
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/442249d1-6b4d-465e-9923-209961246b70/namespaces/9bitcajdx9zrc46nczpmq/dns-records"
                        },
                        "namespaces" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/442249d1-6b4d-465e-9923-209961246b70/namespaces"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/442249d1-6b4d-465e-9923-209961246b70"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/http-shares/{id}/metrics:
    get:
      tags:
        - HTTP Share
      summary: Get metrics for single HTTP Share resource by ID.
      description: >
        Retrieves transmitted and received data for a specific share.

        This endpoint fetches metrics data for a given share within a specific
        frontdoor.

        An optional duration parameter can be provided to specify the time
        window for the metrics.
      operationId: get-http-share-metrics
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: The unique ID of the Share.
          required: true
          schema:
            type: string
        - name: duration
          in: query
          description: Optional time window to retrieve metrics for.
          required: false
          schema:
            type: string
            format: duration
            examples:
              - 15m
              - 1h
      responses:
        '200':
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "a0136833-b81a-4fc4-a281-171142047995",
                      "locationId" : "b4j1g582e52l2vhfbi12f",
                      "envZId" : "ijcrWb-ZOq",
                      "name" : "share-75",
                      "scope" : "account",
                      "id" : "9",
                      "period" : "2592000",
                      "samples" : [ {
                        "rx" : 3821,
                        "tx" : 513,
                        "timestamp" : "2025-06-23T00:00:00.000+00:00"
                      }, {
                        "rx" : 3282,
                        "tx" : 3053,
                        "timestamp" : "2025-06-24T00:00:00.000+00:00"
                      }, {
                        "rx" : 821,
                        "tx" : 302513,
                        "timestamp" : "2025-06-25T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-26T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-27T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-28T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-29T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-30T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-01T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-02T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-03T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-04T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-05T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-06T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-07T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-08T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-09T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-10T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-11T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-12T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-13T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-14T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-15T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-16T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-17T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-18T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-19T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-20T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-21T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-22T00:00:00.000+00:00"
                      }, {
                        "rx" : 32821,
                        "tx" : 30513,
                        "timestamp" : "2025-07-22T15:56:40.161+00:00"
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/share-75/metrics{?duration}",
                          "templated" : true
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/locations/b4j1g582e52l2vhfbi12f"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares/share-75"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/http-shares"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995/environments/ijcrWb-ZOq"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/a0136833-b81a-4fc4-a281-171142047995"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/health-checks/{id}/execute:
    get:
      tags:
        - Health Checks
      summary: Executes a stored HealthCheck by ID.
      description: |
        Executes a previously stored Health Check immediately.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: execute-health-check_1
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The outcome of the Health Check
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "d33176d8-65cb-4ef8-b53b-f10366cd6b1d",
                      "id" : "s2fhcbxbnhtgbxunn5rf0",
                      "healthy" : true,
                      "error" : null,
                      "_links" : {
                        "health-check" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d33176d8-65cb-4ef8-b53b-f10366cd6b1d/health-checks/s2fhcbxbnhtgbxunn5rf0"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/d33176d8-65cb-4ef8-b53b-f10366cd6b1d"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/executions:
    get:
      tags:
        - Executions
      summary: List executions for a frontdoor
      description: >
        List all Execution instances which match the search criteria as
        specified via query parameters.

        Instances that the API client does not have authorization to read will
        be removed from the results.
      operationId: list-executions
      parameters:
        - name: frontdoorId
          in: path
          description: ID of the frontdoor
          required: true
          schema:
            type: string
            format: uuid
          example: a8b8c8d8-e8f8-g8h8-i8j8-k8l8m8n8o8p8
        - name: page
          in: query
          description: The page number.
          allowEmptyValue: true
        - name: size
          in: query
          description: The number of resources returned per page.
          allowEmptyValue: true
        - name: sort
          in: query
          description: >-
            The property to sort by, 'asc' and 'desc' can be appended after a
            comma
          allowEmptyValue: true
      responses:
        '200':
          description: A paged list of executions
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Execution'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "executionList" : [ {
                          "id" : "i3jmfwsalt612yig9k2sa",
                          "frontdoorId" : "612f8e03-7eb6-4a72-84a4-692343815ef1",
                          "processId" : "10ef1cf8-3054-432f-8208-d59e102094df",
                          "name" : "ExecutionType1",
                          "description" : "Test Execution 1",
                          "resourceType" : "test-component",
                          "resourceId" : "U-yaxN0sN4p8eRPslADB3",
                          "startedAt" : "2026-03-25T16:05:03.051084Z",
                          "finishedAt" : "2026-03-25T16:05:08.051093Z",
                          "traceId" : "VeiZyggZKFWKTd4T0-rsc",
                          "status" : "SUCCESS",
                          "initiatingIdentityId" : "0aef3573-43e5-4421-8b2d-ee40941ddb38",
                          "createdAt" : "2026-03-25T16:05:13.052217Z",
                          "updatedAt" : "2026-03-25T16:05:13.052217Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1/executions/i3jmfwsalt612yig9k2sa"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1"
                            }
                          }
                        }, {
                          "id" : "ud2szj3ry39ad4k7ux6is",
                          "frontdoorId" : "612f8e03-7eb6-4a72-84a4-692343815ef1",
                          "processId" : "cf0268b7-3143-4135-8e7c-fdf65e5aebbe",
                          "name" : "ExecutionType2",
                          "description" : "Test Execution 2",
                          "resourceType" : "test-component",
                          "resourceId" : "v6gYfU7MkQAs4vbMba1C3",
                          "startedAt" : "2026-03-25T16:05:03.055273Z",
                          "finishedAt" : "2026-03-25T16:05:08.055277Z",
                          "traceId" : "kSW0P9iyFG8oCWRVaw2cx",
                          "status" : "FAILED",
                          "initiatingIdentityId" : "8f17d649-9916-4e85-a18a-77955f901a04",
                          "createdAt" : "2026-03-25T16:05:13.055206Z",
                          "updatedAt" : "2026-03-25T16:05:13.055206Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1/executions/ud2szj3ry39ad4k7ux6is"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1"
                            }
                          }
                        }, {
                          "id" : "xzkjr0zhixhv6ss380fq1",
                          "frontdoorId" : "612f8e03-7eb6-4a72-84a4-692343815ef1",
                          "processId" : "54a5744d-35ae-4ac5-92c2-44fe3b6be732",
                          "name" : "ExecutionType3",
                          "description" : "Test Execution 3",
                          "resourceType" : "test-component",
                          "resourceId" : "Em-JEWCXxnzoo2u1ggWMO",
                          "startedAt" : "2026-03-25T16:05:03.057843Z",
                          "finishedAt" : "2026-03-25T16:05:08.057846Z",
                          "traceId" : "M1zaurCCc5hcNn3V7xp0w",
                          "status" : "CANCELED",
                          "initiatingIdentityId" : "7edd703b-3b87-4b9f-acbd-ef3e8f541585",
                          "createdAt" : "2026-03-25T16:05:13.057638Z",
                          "updatedAt" : "2026-03-25T16:05:13.057638Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1/executions/xzkjr0zhixhv6ss380fq1"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1/executions"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/612f8e03-7eb6-4a72-84a4-692343815ef1"
                        }
                      },
                      "page" : {
                        "size" : 20,
                        "totalElements" : 3,
                        "totalPages" : 1,
                        "number" : 0
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/executions/{id}:
    get:
      tags:
        - Executions
      summary: Get a specific execution
      description: >
        Get the details of a specific Execution.

        If the Execution was asynchronous the data will contain a processId.

        The process data can be embedded by adding `meta=processData` as a
        request parameter.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-execution
      parameters:
        - name: frontdoorId
          in: path
          description: ID of the frontdoor
          required: true
          schema:
            type: string
            format: uuid
          example: a8b8c8d8-e8f8-g8h8-i8j8-k8l8m8n8o8p8
        - name: id
          in: path
          description: ID of the execution
          required: true
          schema:
            type: string
          example: b9cls2bka9p9q9
      responses:
        '200':
          description: Execution details
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Execution'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "o8j6ukuzdiqkizzhsqw2x",
                      "frontdoorId" : "9b8525c5-c736-4d80-bb8d-0f9b131c1931",
                      "processId" : "f5aa864f-bec5-4f22-9b94-d60a8cce37ab",
                      "name" : "DeleteCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "CustomFrontend",
                      "resourceId" : null,
                      "startedAt" : "2026-03-25T16:04:55.505835Z",
                      "finishedAt" : "2026-03-25T16:04:55.505835Z",
                      "traceId" : "trace3",
                      "status" : "FAILED",
                      "initiatingIdentityId" : "00b92a5f-cf30-4e0f-af92-06a9bd4029bc",
                      "createdAt" : "2026-03-25T16:04:55.509371Z",
                      "updatedAt" : "2026-03-25T16:04:55.509371Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/9b8525c5-c736-4d80-bb8d-0f9b131c1931/executions/o8j6ukuzdiqkizzhsqw2x"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/9b8525c5-c736-4d80-bb8d-0f9b131c1931"
                        }
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/environments:
    get:
      tags:
        - Share
      summary: Find Environments
      description: >
        Retrieves a list of Environment resources in a specific Frontdoor.

        The results can be filtered by providing query parameters that
        correspond to the properties of an Environment.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: find-environments
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: locationId
          in: query
          description: Location the environment's in, uses a default if omitted.
          required: false
          allowEmptyValue: true
          schema:
            type: string
        - name: description
          in: query
          description: Description to filter by, case-insensitive substring match.
          allowEmptyValue: true
        - name: host
          in: query
          description: Host to filter by, case-insensitive substring match.
          allowEmptyValue: true
        - name: address
          in: query
          description: Address to filter by, exact match.
          allowEmptyValue: true
        - name: remoteAgent
          in: query
          description: Filter by remote agent status.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: hasShares
          in: query
          description: Filter by whether the environment has shares.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: hasAccesses
          in: query
          description: Filter by whether the environment has accesses.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: hasActivity
          in: query
          description: Filter by whether the environment has activity.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: idle
          in: query
          description: Filter by idle status.
          allowEmptyValue: true
          schema:
            type: boolean
        - name: shareCount
          in: query
          description: Share count filter expression.
          allowEmptyValue: true
        - name: accessCount
          in: query
          description: Access count filter expression.
          allowEmptyValue: true
        - name: createdAfter
          in: query
          description: >-
            Filter by creation time after this instant, RFC3339 datetime,
            inclusive.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: createdBefore
          in: query
          description: >-
            Filter by creation time before this instant, RFC3339 datetime,
            inclusive.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedAfter
          in: query
          description: >-
            Filter by update time after this instant, RFC3339 datetime,
            inclusive.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: updatedBefore
          in: query
          description: >-
            Filter by update time before this instant, RFC3339 datetime,
            inclusive.
          allowEmptyValue: true
          schema:
            type: string
            format: date-time
        - name: activityDuration
          in: query
          description: Activity duration filter, default "24h", maximum "30d".
          allowEmptyValue: true
        - name: find
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/FindEnvironment'
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Environment'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "environmentList" : [ {
                          "frontdoorId" : "047c49bc-6d24-4511-b776-913af666cbdd",
                          "locationId" : "alc34gvy6nhbmam0diyyf",
                          "zId" : "RWTwqZM5UaEVHkgxGSZWE",
                          "description" : "computer@Mac",
                          "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                          "address" : "201.124.246.91",
                          "connected" : null,
                          "shareCount" : 0,
                          "accessCount" : 0,
                          "limited" : null,
                          "createdAt" : "2025-06-20T20:56:24.648+00:00",
                          "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                          "activity" : null,
                          "_links" : {
                            "http-shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/http-shares"
                            },
                            "tcp-shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/tcp-shares"
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/RWTwqZM5UaEVHkgxGSZWE/metrics{?duration}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments?locationId=alc34gvy6nhbmam0diyyf"
                            },
                            "location" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/locations/alc34gvy6nhbmam0diyyf"
                            },
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/RWTwqZM5UaEVHkgxGSZWE"
                            },
                            "sparklines" : {
                              "href" : "/frontdoor/v2/{frontdoorId}/sparklines{?shares,environments}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                            }
                          }
                        }, {
                          "frontdoorId" : "047c49bc-6d24-4511-b776-913af666cbdd",
                          "locationId" : "alc34gvy6nhbmam0diyyf",
                          "zId" : "pnOzmyYUgWmiYD31DvPHW",
                          "description" : "computer1@Mac",
                          "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                          "address" : "201.124.246.92",
                          "connected" : null,
                          "shareCount" : 0,
                          "accessCount" : 0,
                          "limited" : null,
                          "createdAt" : "2025-06-20T20:56:24.648+00:00",
                          "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                          "activity" : null,
                          "_links" : {
                            "http-shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/http-shares"
                            },
                            "tcp-shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/tcp-shares"
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/pnOzmyYUgWmiYD31DvPHW/metrics{?duration}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments?locationId=alc34gvy6nhbmam0diyyf"
                            },
                            "location" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/locations/alc34gvy6nhbmam0diyyf"
                            },
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/pnOzmyYUgWmiYD31DvPHW"
                            },
                            "sparklines" : {
                              "href" : "/frontdoor/v2/{frontdoorId}/sparklines{?shares,environments}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments{?locationId}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/environments/{envZId}:
    get:
      tags:
        - Share
      summary: Get details of a single Environment resource by ID.
      description: |
        Retrieves a single Environment by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-environment
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: envZId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Environment exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "047c49bc-6d24-4511-b776-913af666cbdd",
                      "locationId" : "alc34gvy6nhbmam0diyyf",
                      "zId" : "yBL9g557XOlwaem0X8Zxk",
                      "description" : "computer@Mac",
                      "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                      "address" : "201.124.246.91",
                      "connected" : null,
                      "shareCount" : 0,
                      "accessCount" : 0,
                      "limited" : null,
                      "createdAt" : "2025-06-20T20:56:24.648+00:00",
                      "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                      "activity" : null,
                      "_links" : {
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/tcp-shares"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/yBL9g557XOlwaem0X8Zxk/metrics{?duration}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments?locationId=alc34gvy6nhbmam0diyyf"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/locations/alc34gvy6nhbmam0diyyf"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/yBL9g557XOlwaem0X8Zxk"
                        },
                        "sparklines" : {
                          "href" : "/frontdoor/v2/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Share
      summary: Delete Environment
      description: >
        Deletes an Environment by its ID.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-environment
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: envZId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Environment deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "047c49bc-6d24-4511-b776-913af666cbdd",
                      "locationId" : "alc34gvy6nhbmam0diyyf",
                      "zId" : "NDKLwS3qSBYA8bWZ23rv4",
                      "description" : "computer@Mac",
                      "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                      "address" : "201.124.246.91",
                      "connected" : null,
                      "shareCount" : 0,
                      "accessCount" : 0,
                      "limited" : null,
                      "createdAt" : "2025-06-20T20:56:24.648+00:00",
                      "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                      "activity" : null,
                      "_links" : {
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/tcp-shares"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/NDKLwS3qSBYA8bWZ23rv4/metrics{?duration}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments?locationId=alc34gvy6nhbmam0diyyf"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/locations/alc34gvy6nhbmam0diyyf"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/NDKLwS3qSBYA8bWZ23rv4"
                        },
                        "sparklines" : {
                          "href" : "/frontdoor/v2/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/environments/{envZId}/metrics:
    get:
      tags:
        - Share
      summary: Get metrics for single Environment resource by ID.
      description: >
        Retrieves transmitted and received data for a specific environment.

        This endpoint fetches metrics data for a given environment within a
        specific frontdoor.

        An optional duration parameter can be provided to specify the time
        window for the metrics.
      operationId: get-environment-metrics
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: envZId
          in: path
          required: true
          schema:
            type: string
        - name: duration
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Environment exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "047c49bc-6d24-4511-b776-913af666cbdd",
                      "locationId" : "alc34gvy6nhbmam0diyyf",
                      "envZId" : "UeYHFld61HAe3dp3MLetf",
                      "scope" : "account",
                      "id" : "9",
                      "period" : "2592000",
                      "samples" : [ {
                        "rx" : 3821,
                        "tx" : 513,
                        "timestamp" : "2025-06-23T00:00:00.000+00:00"
                      }, {
                        "rx" : 3282,
                        "tx" : 3053,
                        "timestamp" : "2025-06-24T00:00:00.000+00:00"
                      }, {
                        "rx" : 821,
                        "tx" : 302513,
                        "timestamp" : "2025-06-25T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-26T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-27T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-28T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-29T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-06-30T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-01T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-02T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-03T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-04T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-05T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-06T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-07T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-08T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-09T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-10T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-11T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-12T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-13T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-14T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-15T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-16T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-17T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-18T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-19T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-20T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-21T00:00:00.000+00:00"
                      }, {
                        "rx" : 0,
                        "tx" : 0,
                        "timestamp" : "2025-07-22T00:00:00.000+00:00"
                      }, {
                        "rx" : 32821,
                        "tx" : 30513,
                        "timestamp" : "2025-07-22T15:56:40.161+00:00"
                      } ],
                      "_links" : {
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments?locationId=alc34gvy6nhbmam0diyyf"
                        },
                        "location" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/locations/alc34gvy6nhbmam0diyyf"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/UeYHFld61HAe3dp3MLetf"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd/environments/UeYHFld61HAe3dp3MLetf/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/047c49bc-6d24-4511-b776-913af666cbdd"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/certificate-request-tokens/token/{token}:
    get:
      tags:
        - Certificate Request Tokens
      summary: Retrieves a single Certificate Request Token resource by the token.
      description: |
        Retrieves a single Certificate Request Token by its token.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-certificate-request-token-by-token
      parameters:
        - name: token
          in: path
          description: Token attached to the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Certificate Request Token exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "mel9l9hsb4erew8bjipcc",
                      "frontdoorId" : "868e31f7-141f-47b2-9381-09f2f3126137",
                      "name" : "certification-request-token-25",
                      "token" : "qob3t0hf1g",
                      "commonName" : "frontdoor-cert-request-26",
                      "organization" : "netfoundry-27",
                      "organizationalUnit" : "MOP-28",
                      "validYears" : 1,
                      "expiresAt" : "2026-03-25T17:04:33.378817Z",
                      "createdBy" : "d8f81665-3be8-401c-bb40-5f66a407b7bc",
                      "createdAt" : "2026-03-25T16:04:33.379463Z",
                      "updatedBy" : "d8f81665-3be8-401c-bb40-5f66a407b7bc",
                      "updatedAt" : "2026-03-25T16:04:33.379463Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137/certificate-request-tokens/mel9l9hsb4erew8bjipcc"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/868e31f7-141f-47b2-9381-09f2f3126137"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/auth-provider-types:
    get:
      tags:
        - Auth Provider Type
      summary: List Auth Provider Types
      description: |
        Retrieves a list of Auth Provider Types available to be configured.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-auth-provider-types
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthProvider'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "authProviderTypeList" : [ {
                          "type" : "GITHUB",
                          "description" : "GitHub OAuth",
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/GITHUB"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/GITHUB/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb"
                            }
                          }
                        }, {
                          "type" : "GOOGLE",
                          "description" : "Google OAuth",
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/GOOGLE"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/GOOGLE/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb"
                            }
                          }
                        }, {
                          "type" : "OIDC",
                          "description" : "Standard OIDC",
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/OIDC"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/OIDC/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/auth-provider-types/{name}:
    get:
      tags:
        - Auth Provider Type
      summary: Get a single Auth Provider Type
      description: |
        Retrieves a single Auth Provider Types by it's name.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-auth-provider-type
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: name
          in: path
          description: The name of the Auth Provider Type.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthProvider'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "type" : "OIDC",
                      "description" : "Standard OIDC",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/OIDC"
                        },
                        "schema" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb/auth-provider-types/OIDC/schema"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/288b89c6-c145-4313-8ebd-ed52f0980bbb"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/auth-provider-types/{name}/schema:
    get:
      tags:
        - Auth Provider Type
      summary: Get the JSON schema of a Auth Provider Type
      description: >
        Retrieves the JSON schema for a specific Auth Provider Type in order to
        validate the input when creating an Auth Provider.

        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-auth-provider-type-schema
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: name
          in: path
          description: The name of the Auth Provider Type.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Query for resources was successful and all matching resources
            returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthProvider'
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "$schema" : "http://json-schema.org/draft-07/schema#",
                      "type" : "object",
                      "properties" : {
                        "client_id" : {
                          "type" : "string"
                        },
                        "client_secret" : {
                          "type" : "string"
                        },
                        "scopes" : {
                          "type" : "array",
                          "items" : [ {
                            "type" : "string"
                          } ]
                        },
                        "discovery_url" : {
                          "type" : "string"
                        },
                        "issuer" : {
                          "type" : "string"
                        },
                        "supports_pkce" : {
                          "type" : "boolean"
                        }
                      },
                      "required" : [ "client_id", "client_secret", "scopes", "issuer", "supports_pkce" ]
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/agents/{id}:
    get:
      tags:
        - Agent
      summary: Retrieves a single Agent resource by ID.
      description: |
        Retrieves a single Agent by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-agent-status
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Agent exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "b3c12a1e-a3d5-4821-aa00-795d6fa773a7",
                      "shares" : [ {
                        "token" : "share1",
                        "shareMode" : "public",
                        "backendMode" : "proxy",
                        "reserved" : true,
                        "frontendEndpoints" : [ "https://share1.shares.netfoundry.io" ],
                        "backendEndpoint" : "https://google.com",
                        "status" : "online"
                      } ],
                      "accesses" : null,
                      "_links" : {
                        "version" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/p54fqvxp7hsa5ef1e0q52/version"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/p54fqvxp7hsa5ef1e0q52/status"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
    delete:
      tags:
        - Agent
      summary: Delete agent
      description: >
        Deletes a agent by its ID.

        The caller must have delete permissions on the parent Frontdoor
        resource.
      operationId: delete-agent
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: agent deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "b3c12a1e-a3d5-4821-aa00-795d6fa773a7",
                      "shares" : [ {
                        "token" : "share1",
                        "shareMode" : "public",
                        "backendMode" : "proxy",
                        "reserved" : true,
                        "frontendEndpoints" : [ "https://share1.shares.netfoundry.io" ],
                        "backendEndpoint" : "https://google.com",
                        "status" : "online"
                      } ],
                      "accesses" : null,
                      "_links" : {
                        "version" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/rx9h3p3wbmmsyf79si4iv/version"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/rx9h3p3wbmmsyf79si4iv/status"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/agents/{id}/version:
    get:
      tags:
        - Agent
      summary: Retrieves the version of single Agent resource by ID.
      description: |
        Retrieves the version of an Agent by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-agent-version
      parameters:
        - name: id
          in: path
          description: Id of the resource.
          required: true
          schema:
            type: string
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Agent exists and data is returned.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "b3c12a1e-a3d5-4821-aa00-795d6fa773a7",
                      "version" : "1.0.1",
                      "_links" : {
                        "status" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/fqc97b1l9068cxoua5fjc/status"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7/agents/fqc97b1l9068cxoua5fjc/version"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/b3c12a1e-a3d5-4821-aa00-795d6fa773a7"
                        }
                      }
                    }
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/{frontdoorId}/agents/enrollment/{id}:
    get:
      tags:
        - Agent
      summary: Get Agent Enrollment
      description: |
        Retrieves a single Agent Enrollment by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-agent-enrollment
      parameters:
        - name: frontdoorId
          in: path
          description: Id of the Frontdoor resource.
          required: true
          schema:
            type: string
            format: uuid
        - name: id
          in: path
          description: Id of the Agent Enrollment.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Agent Enrollment exists and data is returned.
          links:
            frontdoor:
              operationId: get-frontdoor
              parameters:
                frontdoorId: $response.body/frontdoorId
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
  /frontdoor/v2/organization/{organizationId}:
    get:
      tags:
        - Frontdoor
      summary: Retrieves a single Frontdoor resource by Organization ID.
      description: |
        Retrieves the Frontdoor by the Organization ID it belongs to.
        The caller must have read permissions on the Frontdoor resource.
      operationId: get-frontdoor-by-organization
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Frontdoor exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontendStatus" : "DELETED",
                      "id" : "27ae6d87-6c2f-455c-bd97-e39e924c9da6",
                      "organizationId" : "28dfa2f8-99c5-4c57-9262-1157a6bca8b4",
                      "version" : 2,
                      "tcpSharesEnabled" : true,
                      "createdBy" : "280e9993-8ddb-4793-b2aa-bbd49a97cfed",
                      "createdAt" : "2026-03-25T16:05:03.538376Z",
                      "updatedBy" : "1aff32da-1ca0-4864-8cbb-2ae5bbfd1766",
                      "updatedAt" : "2026-03-25T16:05:03.562521Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/metrics{?duration}",
                          "templated" : true
                        },
                        "locations" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/locations"
                        },
                        "http-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/http-shares"
                        },
                        "tcp-shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/tcp-shares"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/v2/27ae6d87-6c2f-455c-bd97-e39e924c9da6/environments{?locationId}",
                          "templated" : true
                        }
                      }
                    }
        '400':
          description: Invalid Client Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '401':
          description: Not Authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '403':
          description: Not Authorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemDetailsException'
              examples: {}
components:
  schemas:
    Execution:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        processId:
          type: string
          format: uuid
          description: Process identifier
        name:
          type: string
          description: Name of the execution
        description:
          type: string
          description: Description of the execution
        resourceType:
          type: string
          description: Type of resource in this execution
        resourceId:
          type: string
          description: Identifier of the resource in this execution
        startedAt:
          type: string
          format: date-time
          description: Timestamp when execution started
        finishedAt:
          type: string
          format: date-time
          description: Timestamp when execution finished
        traceId:
          type: string
          description: Trace identifier for debugging
        status:
          type: string
          description: Current status of the execution
          enum:
            - RUNNING
            - FAILED
            - SUCCESS
            - CANCELED
        initiatingIdentityId:
          type: string
          format: uuid
          description: Identity that initiated this execution
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        actions:
          type: array
          description: List of actions associated with this execution
          items:
            $ref: '#/components/schemas/ExecutionAction'
    ExecutionAction:
      type: object
      description: Action performed during execution
      properties:
        title:
          type: string
          description: Title of the action
        method:
          type: string
          description: HTTP method used
        url:
          type: string
          format: url
          description: URL of the action
    ProblemDetail:
      type: object
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
          format: int32
        detail:
          type: string
        instance:
          type: string
          format: uri
        properties:
          type: object
          additionalProperties: {}
    ProblemDetailsException:
      type: object
      properties:
        cause:
          type: object
          properties:
            stackTrace:
              type: array
              items:
                type: object
                properties:
                  classLoaderName:
                    type: string
                  moduleName:
                    type: string
                  moduleVersion:
                    type: string
                  methodName:
                    type: string
                  fileName:
                    type: string
                  lineNumber:
                    type: integer
                    format: int32
                  className:
                    type: string
                  nativeMethod:
                    type: boolean
            message:
              type: string
            localizedMessage:
              type: string
        stackTrace:
          type: array
          items:
            type: object
            properties:
              classLoaderName:
                type: string
              moduleName:
                type: string
              moduleVersion:
                type: string
              methodName:
                type: string
              fileName:
                type: string
              lineNumber:
                type: integer
                format: int32
              className:
                type: string
              nativeMethod:
                type: boolean
        problemDetail:
          $ref: '#/components/schemas/ProblemDetail'
        message:
          type: string
        suppressed:
          type: array
          items:
            type: object
            properties:
              stackTrace:
                type: array
                items:
                  type: object
                  properties:
                    classLoaderName:
                      type: string
                    moduleName:
                      type: string
                    moduleVersion:
                      type: string
                    methodName:
                      type: string
                    fileName:
                      type: string
                    lineNumber:
                      type: integer
                      format: int32
                    className:
                      type: string
                    nativeMethod:
                      type: boolean
              message:
                type: string
              localizedMessage:
                type: string
        localizedMessage:
          type: string
    UpdateTcpShare:
      type: object
      properties:
        name:
          type: string
          maxLength: 63
          minLength: 1
          pattern: ^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$
        envZId:
          type: string
        target:
          type: string
          minLength: 1
        ingressPort:
          type: integer
          format: int32
          maximum: 2199
          minimum: 2100
        clientCertificateId:
          type: string
          minLength: 1
        useIntermediateCertificate:
          type: boolean
        allowedSubjects:
          type: array
          items:
            type: string
          uniqueItems: true
        allowedCommonNamePrefixes:
          type: array
          items:
            type: string
          uniqueItems: true
        requiredOrganizationalUnit:
          type: string
      required:
        - clientCertificateId
        - envZId
        - name
        - target
    UpdateNamespace:
      type: object
      properties:
        description:
          type: string
          description: Description of the namespace
          example: Production namespace for web services
          maxLength: 255
          minLength: 0
      required:
        - description
    UpdateLocation:
      type: object
      properties:
        name:
          type: string
          description: Name of the location
          example: US West
          minLength: 1
        description:
          type: string
          description: Description of the location
          example: US West region
      required:
        - name
    UpdateHttpShare:
      type: object
      properties:
        name:
          type: string
          maxLength: 63
          minLength: 1
          pattern: ^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$
        envZId:
          type: string
        target:
          type: string
          minLength: 1
        authProviderId:
          type: string
        oauthEmailDomains:
          type: string
        oauthAuthorizationCheckInterval:
          type: string
        insecure:
          type: boolean
      required:
        - envZId
        - name
        - target
    HttpMethod: {}
    UpdateHealthCheckRequest:
      type: object
      description: A request to update a health check for a share.
      properties:
        name:
          type: string
          description: A unique name for the health check within the frontdoor.
          example: my-backend-health-check
          minLength: 1
        shareId:
          type: string
          description: The ID of the share to health check.
          example: u4b1f6a5j8k3
          minLength: 1
        endpoint:
          type: string
          description: The endpoint to call on the share.
          example: /health
          minLength: 1
          pattern: ^/.*
        httpVerb:
          $ref: '#/components/schemas/HttpMethod'
          description: The HTTP verb to use for the health check.
          example: GET
        expectedHttpResponse:
          type: integer
          format: int32
          description: The expected HTTP response code. If not specified, defaults to 200.
          example: 200
        timeoutMilliseconds:
          type: integer
          format: int32
          description: >-
            The timeout in milliseconds for the health check. If not specified,
            defaults to 10000.
          example: 10000
      required:
        - endpoint
        - httpVerb
        - name
        - shareId
    UpdateClientCertificate:
      type: object
      properties:
        name:
          type: string
          description: Name of the client certificate
        type:
          type: string
          description: >-
            Type of the data being sent by the client, `CSR` for generating a
            certificate or `CERTIFICATE` (default) for an already created
            certificate
          enum:
            - CERTIFICATE
            - CSR
          examples:
            - CERTIFICATE
            - CSR
        value:
          type: string
          description: The Certificate or Certificate Signing Request data
          examples:
            - '----- BEGIN CERTIFICATE ---- .... ----- END CERTIFICATE -----'
            - >-
              ----- BEGIN CERTIFICATE REQUEST ---- .... ----- END CERTIFICATE
              REQUEST-----
        validYears:
          type: integer
          format: int32
          description: >-
            Number of years the certificate should be valid for, only valid when
            uploading CSR
          maximum: 10
          minimum: 1
    UpdateCertificateRequestToken:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the Certificate Request Token, it will be the name of the
            Client Certificate once created
          minLength: 1
        commonName:
          type: string
          description: The recommended Common Name (CN) for the certificate request
          minLength: 1
        organization:
          type: string
          description: The recommended Organization (O) for the certificate request
          minLength: 1
        organizationalUnit:
          type: string
          description: The recommended Organizational Unit (OU) for the certificate request
          minLength: 1
        validYears:
          type: integer
          format: int32
          description: Number of years the client certificate(s) should be valid for
      required:
        - commonName
        - name
        - organization
        - organizationalUnit
    JsonNode: {}
    UpdateAuthProvider:
      type: object
      properties:
        name:
          type: string
          description: Name of the authentication provider
          example: My IDP
          minLength: 1
        type:
          type: string
          description: Type of the authentication provider
          example: oidc
        prompt:
          type: string
          description: >-
            OIDC prompt parameter, only valid if authentication provider is type
            `OIDC`
          enum:
            - NONE
            - LOGIN
            - CONSENT
            - SELECT_ACCOUNT
            - CREATE
        data:
          $ref: '#/components/schemas/JsonNode'
          description: Configuration data for the authentication provider
          example:
            client_id: 1234567890-abcdefg.apps.googleusercontent.com
            client_secret: GOCSPX-hijklmnop
      required:
        - data
        - name
        - type
    CreateFrontdoor:
      type: object
      properties:
        organizationId:
          type: string
          format: uuid
        defaultNamespaceName:
          type: string
          description: >-
            Default namespace name for the frontdoor. Must follow subdomain
            naming rules: start with a lowercase letter, contain only lowercase
            letters, numbers, and hyphens, and not end with a hyphen.
          example: my-namespace
          maxLength: 63
          minLength: 1
          pattern: ^[a-z]([a-z0-9-]*[a-z0-9])?$
      required:
        - defaultNamespaceName
        - organizationId
    CreateTcpShare:
      type: object
      properties:
        name:
          type: string
          maxLength: 63
          minLength: 1
          pattern: ^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$
        locationId:
          type: string
        envZId:
          type: string
        target:
          type: string
          minLength: 1
        ingressPort:
          type: integer
          format: int32
          maximum: 2199
          minimum: 2100
        clientCertificateId:
          type: string
        useIntermediateCertificate:
          type: boolean
        allowedSubjects:
          type: array
          items:
            type: string
          uniqueItems: true
        allowedCommonNamePrefixes:
          type: array
          items:
            type: string
          uniqueItems: true
        requiredOrganizationalUnit:
          type: string
      required:
        - envZId
        - ingressPort
        - target
    CreateNamespace:
      type: object
      properties:
        name:
          type: string
          description: Name of the namespace, must follow the rules for domain names
          example: amespace.my-domain.com
          minLength: 1
        description:
          type: string
          description: Description of the namespace
          example: Production namespace for web services
          maxLength: 255
          minLength: 0
      required:
        - name
    CreateLocation:
      type: object
      properties:
        name:
          type: string
          description: Name of the location
          example: US East
          minLength: 1
        description:
          type: string
          description: Description of the location
          example: US East region
      required:
        - name
    CreateHttpShare:
      type: object
      properties:
        name:
          type: string
          maxLength: 63
          minLength: 1
          pattern: ^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$
        locationId:
          type: string
        namespaceId:
          type: string
        envZId:
          type: string
        target:
          type: string
          minLength: 1
        authProviderId:
          type: string
        oauthEmailDomains:
          type: string
        oauthAuthorizationCheckInterval:
          type: string
        insecure:
          type: boolean
      required:
        - envZId
        - target
    CreateHealthCheckRequest:
      type: object
      description: A request to create a health check for a share.
      properties:
        name:
          type: string
          description: A unique name for the health check within the frontdoor.
          example: my-backend-health-check
          minLength: 1
        locationId:
          type: string
          description: The ID of the location where the health check will be created.
          example: asdf8723kmva
        shareId:
          type: string
          description: The ID of the share to health check.
          example: u4b1f6a5j8k3
          minLength: 1
        endpoint:
          type: string
          description: The endpoint to call on the share.
          example: /health
          minLength: 1
          pattern: ^/.*
        httpVerb:
          $ref: '#/components/schemas/HttpMethod'
          description: The HTTP verb to use for the health check.
          example: GET
        expectedHttpResponse:
          type: integer
          format: int32
          description: The expected HTTP response code. If not specified, defaults to 200.
          example: 200
        timeoutMilliseconds:
          type: integer
          format: int32
          description: >-
            The timeout in milliseconds for the health check. If not specified,
            defaults to 10000.
          example: 10000
      required:
        - endpoint
        - httpVerb
        - name
        - shareId
    CreateClientCertificate:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the client certificate, can not be set when using a
            Certificate Request Token
          minLength: 1
        type:
          type: string
          description: >-
            Type of the data being sent by the client, `CSR` for generating a
            certificate or `CERTIFICATE` (default) for an already created
            certificate
          enum:
            - CERTIFICATE
            - CSR
          examples:
            - CERTIFICATE
            - CSR
        value:
          type: string
          description: The Certificate or Certificate Signing Request data
          examples:
            - '----- BEGIN CERTIFICATE ---- .... ----- END CERTIFICATE -----'
            - >-
              ----- BEGIN CERTIFICATE REQUEST ---- .... ----- END CERTIFICATE
              REQUEST-----
          minLength: 1
        validYears:
          type: integer
          format: int32
          description: >-
            Number of years the certificate should be valid for, only valid when
            uploading CSR
          maximum: 10
          minimum: 1
      required:
        - name
        - value
    CreateCertificateRequestToken:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the Certificate Request Token, it will be the name of the
            Client Certificate once created
          minLength: 1
        commonName:
          type: string
          description: The recommended Common Name (CN) for the certificate request
        organization:
          type: string
          description: The recommended Organization (O) for the certificate request
        organizationalUnit:
          type: string
          description: The recommended Organizational Unit (OU) for the certificate request
        validYears:
          type: integer
          format: int32
          description: Number of years the certificate should be valid for
          maximum: 10
          minimum: 1
      required:
        - name
    CreateAuthProvider:
      type: object
      properties:
        name:
          type: string
          description: Name of the authentication provider
          example: My IDP
          minLength: 1
        type:
          type: string
          description: Type of the authentication provider
          example: oidc
        prompt:
          type: string
          description: >-
            OIDC prompt parameter, only valid if authentication provider is type
            `OIDC`
          enum:
            - NONE
            - LOGIN
            - CONSENT
            - SELECT_ACCOUNT
            - CREATE
        data:
          $ref: '#/components/schemas/JsonNode'
          description: Configuration data for the authentication provider
          example:
            client_id: 1234567890-abcdefg.apps.googleusercontent.com
            client_secret: GOCSPX-hijklmnop
      required:
        - data
        - name
        - type
    AgentEnrollmentResult:
      type: object
      description: Agent enrollment result reported by the agent
      properties:
        envZId:
          type: string
          description: The agent's ziti ID
        status:
          type: string
          description: The enrollment status
          minLength: 1
          pattern: success|failed
        reason:
          type: string
          description: The failure reason
      required:
        - status
    Frontdoor:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the resource
          example: 123e4567-e89b-12d3-a456-426614174000
        organizationId:
          type: string
          format: uuid
          description: Organization identifier
        version:
          type: integer
          format: int32
          description: Version of the frontdoor configuration
          example: 1
        tcpSharesEnabled:
          type: boolean
          description: Indicates if TCP shares is enabled for this account
          example: true
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
    TcpShare:
      type: object
      description: A TCP Share hosted by an agent
      properties:
        id:
          type: string
        locationId:
          type: string
        name:
          type: string
        frontdoorId:
          type: string
          format: uuid
        status:
          type: string
          description: Status of a resource
          enum:
            - NEW
            - PENDING_DNS_VERIFICATION
            - PENDING_DEPLOY
            - DEPLOYED
            - ERROR
            - DELETING
            - DELETED
        ingressPort:
          type: integer
          format: int32
        clientCertificateId:
          type: string
        hostingId:
          type: string
        envZId:
          type: string
        target:
          type: string
        frontendEndpoint:
          type: string
        createdBy:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deletedBy:
          type: string
          format: uuid
        deletedAt:
          type: string
          format: date-time
        zid:
          type: string
        access:
          type: string
          description: The access point for the share
          example: mtls.example.com:2101
    Metrics:
      type: object
      description: >-
        Represents a set of metrics for a specific resource over a period of
        time.
      properties:
        scope:
          type: string
          format: string
          deprecated: true
          description: >-
            The scope of the data returned, indicating the resource type. Always
            `account` currently.
          example: account
        id:
          type: string
          format: string
          description: >-
            The unique identifier of the account for which metrics are being
            reported.
          example: 174
        period:
          type: string
          format: int64
          description: >-
            The duration in seconds over which the metric samples were
            collected.
          example: 4174000
        samples:
          $ref: '#/components/schemas/Sample'
          description: >-
            A list of individual data samples collected during the specified
            period.
    Sample:
      type: object
      description: A single, time-stamped data point for traffic metrics.
      properties:
        rx:
          type: string
          format: int32
          description: Total bytes received during this sample interval.
          example: 2343
        tx:
          type: string
          format: int32
          description: Total bytes transmitted during this sample interval.
          example: 1231
        timestamp:
          type: string
          format: timestamp
          description: The timestamp of the sample as UTC milliseconds from the epoch.
          example: 1750636800000
    Sparklines:
      type: object
      description: A list of sparklines
      properties:
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        metrics:
          $ref: '#/components/schemas/Metrics'
          description: A list of sparkline metrics.
          example:
            - scope: account
              id: '174'
              period: '4174000'
              samples:
                - rx: 2343
                  tx: 1231
                  timestamp: '1750636800000'
    SparklinesInput:
      type: object
      description: A request to show sparklines, filtering by environments and/or shares.
      properties:
        environments:
          type: array
          description: A set of environment ZIDs to filter by.
          example:
            - ztCaGz8Kk
            - ztCaGz8Kj
          items:
            type: string
          uniqueItems: true
        shares:
          type: array
          description: A set of share tokens to filter by.
          example:
            - shr_245sX9sM4k8G3g1kC5jH6nB
            - shr_3g1kC5jH6nB245sX9sM4k8G
          items:
            type: string
          uniqueItems: true
        valid:
          type: boolean
    Namespace:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the namespace
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this namespace belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        namespaceToken:
          type: string
          description: The zrok namespace token
          example: ns_abc123
          minLength: 1
        name:
          type: string
          description: Name of the namespace, must follow the rules for domain names
          example: namespace.my-domain.com
          minLength: 1
        description:
          type: string
          description: Description of the namespace
        status:
          type: string
          description: Status of the namespace
          enum:
            - NEW
            - PENDING_DNS_VERIFICATION
            - PENDING_DEPLOY
            - DEPLOYED
            - ERROR
            - DELETING
            - DELETED
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
        default:
          type: boolean
          description: Indicates if this is the default namespace for the frontdoor
          example: false
      required:
        - name
        - namespaceToken
    Location:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: Name of the location
          minLength: 1
        description:
          type: string
          description: Description of the location
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
      required:
        - name
    HttpShare:
      type: object
      description: An HTTP Share hosted by an agent
      properties:
        id:
          type: string
        frontdoorId:
          type: string
          format: uuid
        locationId:
          type: string
        name:
          type: string
        namespaceId:
          type: string
        namespaceToken:
          type: string
          deprecated: true
        status:
          type: string
          description: Status of a resource
          enum:
            - NEW
            - PENDING_DNS_VERIFICATION
            - PENDING_DEPLOY
            - DEPLOYED
            - ERROR
            - DELETING
            - DELETED
        backendMode:
          type: string
        envZId:
          type: string
        target:
          type: string
        frontendEndpoint:
          type: string
        authProviderId:
          type: string
        oauthEmailDomains:
          type: string
        oauthAuthorizationCheckInterval:
          type: string
        insecure:
          type: boolean
        createdBy:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deletedBy:
          type: string
          format: uuid
        deletedAt:
          type: string
          format: date-time
        zid:
          type: string
        authProvider:
          type: string
          description: The name of the auth provider configured for the share
    HealthCheck:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: 42u61b1740a01234
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        locationId:
          type: string
          format: string
          description: The location this resource belongs to
          example: 12i3e4a5s67e8
        name:
          type: string
          description: Name of the health check
        envZId:
          type: string
          description: Environment ZID
        shareId:
          type: string
          description: The ID of the share this health check is associated with
        httpVerb:
          $ref: '#/components/schemas/HttpMethod'
          description: HTTP method used for health check
        endpoint:
          type: string
          description: Endpoint URL to check
        expectedHttpResponse:
          type: integer
          format: int32
          description: Expected HTTP response code
        timeoutMilliseconds:
          type: integer
          format: int32
          description: Timeout in milliseconds
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
    Environment:
      type: object
      properties:
        zId:
          type: string
          description: The unique zrok identifier for the environment.
          example: env_2x0y1z
        description:
          type: string
          description: A user-provided description for the environment.
          example: computer@Mac
        host:
          type: string
          description: The hostname of the machine where the zrok environment is running.
          example: >-
            computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0;
            arm64
        address:
          type: string
          description: The network address of the environment.
          example: 201.124.246.91
        connected:
          type: string
          description: >-
            A flag indicating if there is a remote agent connected to the
            environment
          example: true
        shareCount:
          type: string
          description: The number of shares in this environment
        accessCount:
          type: string
          description: The number of accesses in this environment
        limited:
          type: string
          description: >-
            A flag indicating whether this environment is subject to usage
            limits.
          example: false
        createdAt:
          type: string
          format: timestamp
          description: The timestamp of when the environment was created.
          example: 1750452984648
        updatedAt:
          type: string
          format: timestamp
          description: The timestamp of the last update to the environment.
          example: 1750452984648
        activity:
          type: string
          description: >-
            A list of recent network activity samples for generating sparkline
            visualizations.
    FindEnvironment:
      type: object
      properties:
        frontdoorId:
          type: string
          format: uuid
        locationId:
          type: string
        description:
          type: string
        host:
          type: string
        address:
          type: string
        remoteAgent:
          type: boolean
        hasShares:
          type: boolean
        hasAccesses:
          type: boolean
        hasActivity:
          type: boolean
        idle:
          type: boolean
        shareCount:
          type: string
        accessCount:
          type: string
        createdAfter:
          type: string
          format: date-time
        createdBefore:
          type: string
          format: date-time
        updatedAfter:
          type: string
          format: date-time
        updatedBefore:
          type: string
          format: date-time
        activityDuration:
          type: string
    ClientCertificate:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: Name of the client certificate
          minLength: 1
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
      required:
        - name
    CertificateRequestToken:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: >-
            Name of the Certificate Request Token, it will be the name of the
            Client Certificate once created
          minLength: 1
        token:
          type: string
          description: >-
            A unique token that can be used for authentication when creating a
            Client Certificate
        commonName:
          type: string
          description: The recommended Common Name (CN) for the certificate request
        organization:
          type: string
          description: The recommended Organization (O) for the certificate request
        organizationalUnit:
          type: string
          description: The recommended Organizational Unit (OU) for the certificate request
        validYears:
          type: integer
          format: int32
          description: Number of years the client certificate(s) should be valid for
        expiresAt:
          type: string
          format: date-time
          description: Timestamp when this token expires
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
      required:
        - name
    AuthProvider:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: e89b12d3a4564000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: Name of the authentication provider
          minLength: 1
        type:
          type: string
          description: Type of authentication provider
          enum:
            - OIDC
            - GITHUB
            - GOOGLE
        prompt:
          type: string
          description: >-
            OIDC prompt parameter, only valid if authentication provider is type
            `OIDC`
          enum:
            - NONE
            - LOGIN
            - CONSENT
            - SELECT_ACCOUNT
            - CREATE
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
      required:
        - name
        - type
    EntityModelFrontdoor:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the resource
          example: 123e4567-e89b-12d3-a456-426614174000
        organizationId:
          type: string
          format: uuid
          description: Organization identifier
        version:
          type: integer
          format: int32
          description: Version of the frontdoor configuration
          example: 1
        tcpSharesEnabled:
          type: boolean
          description: Indicates if TCP shares is enabled for this account
          example: true
        createdBy:
          type: string
          format: uuid
          description: User who created this resource
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this resource was created
        updatedBy:
          type: string
          format: uuid
          description: User who last updated this resource
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was last updated
        deletedBy:
          type: string
          format: uuid
          description: User who deleted this resource
        deletedAt:
          type: string
          format: date-time
          description: Timestamp when this resource was deleted
        _links:
          $ref: '#/components/schemas/Links'
    Link:
      type: object
      properties:
        href:
          type: string
        hreflang:
          type: string
        title:
          type: string
        type:
          type: string
        deprecation:
          type: string
        profile:
          type: string
        name:
          type: string
        templated:
          type: boolean
    Links:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Link'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
