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: Auth Provider
  description: "Management of Auth Provider resources. Auth Providers are configured\
    \ on Custom Frontend, they are then assigned to Shares."
- 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: Custom Frontend
  description: Management of Custom Frontend resources. Custom Frontends can't be
    updated. Also see Frontend.
- 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: Share
  description: Management of Share resources. Shares can't be updated.
- name: Agent
  description: Management of Agent resources. An Agent is installed on a client host
    to host Shares. Agents can't be updated.
- name: Executions
  description: Operations related to Frontdoor executions. Executions are created
    any time a resource is created or updated.
- name: Frontend
  description: Frontends available to use when creating Shares.
- name: Auth Provider Type
  description: Auth Providers are used when creating an Auth Provider. They are an
    informational resource only.
paths:
  /frontdoor/{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" : "aqandblz1sdi33vlm6wan",
                      "frontdoorId" : "a38246e6-d63f-4f8d-996c-9af83d3cb7d0",
                      "processId" : "27a59dc8-4c68-4787-ace1-a27460e88165",
                      "name" : "CreateCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "component",
                      "resourceId" : "3Gq4ZuGQmzwZPZ4dNhsHq",
                      "startedAt" : "2025-10-16T15:18:14.199183Z",
                      "finishedAt" : "2025-10-16T15:18:14.242380Z",
                      "traceId" : "trace1",
                      "status" : "CANCELED",
                      "initiatingIdentityId" : "4349f329-5414-4063-baa0-853c9b8e0291",
                      "createdAt" : "2025-10-16T15:18:14.199260Z",
                      "updatedAt" : "2025-10-16T15:18:14.242259Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a38246e6-d63f-4f8d-996c-9af83d3cb7d0/executions/aqandblz1sdi33vlm6wan"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a38246e6-d63f-4f8d-996c-9af83d3cb7d0"
                        }
                      }
                    }
        "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" : "aqandblz1sdi33vlm6wan",
                      "frontdoorId" : "a38246e6-d63f-4f8d-996c-9af83d3cb7d0",
                      "processId" : "27a59dc8-4c68-4787-ace1-a27460e88165",
                      "name" : "CreateCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "component",
                      "resourceId" : "3Gq4ZuGQmzwZPZ4dNhsHq",
                      "startedAt" : "2025-10-16T15:18:14.199183Z",
                      "finishedAt" : "2025-10-16T15:18:14.242380Z",
                      "traceId" : "trace1",
                      "status" : "CANCELED",
                      "initiatingIdentityId" : "4349f329-5414-4063-baa0-853c9b8e0291",
                      "createdAt" : "2025-10-16T15:18:14.199260Z",
                      "updatedAt" : "2025-10-16T15:18:14.242259Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a38246e6-d63f-4f8d-996c-9af83d3cb7d0/executions/aqandblz1sdi33vlm6wan"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a38246e6-d63f-4f8d-996c-9af83d3cb7d0"
                        }
                      }
                    }
        "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/{frontdoorId}/custom-frontends/{id}:
    get:
      tags:
      - Custom Frontend
      summary: Retrieves a single Custom Frontend resource by ID.
      description: |
        Retrieves a single Custom Frontend by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-custom-frontend
      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: Custom Frontend exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "zj8ardqqe2sd88hgvgxsb",
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "status" : "DEPLOYED",
                      "domainName" : "pzIwnYPmobvN8jvPmKqRd.com",
                      "authProviderIds" : [ ],
                      "createdBy" : "8e5dd9ac-8ff1-40e5-a5ae-c3f7565152ca",
                      "createdAt" : "2025-10-16T15:18:02.926844Z",
                      "updatedBy" : "818e3831-7e29-4950-86b6-a54fd1b3dc49",
                      "updatedAt" : "2025-10-16T15:18:02.935805Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/zj8ardqqe2sd88hgvgxsb"
                        },
                        "dns-records" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/zj8ardqqe2sd88hgvgxsb/dns-records"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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:
      - Custom Frontend
      summary: Update Custom Frontend
      description: |
        Updates a Custom Frontend in the specific Frontdoor.
        The domain of the Custom Frontend can't be updated, only the Auth Providers.
        Frontends are updated asynchronously because the orchestration can take a little while to update.
        The caller must have update permissions on the parent Frontdoor resource.
        The response includes the updated Custom Frontend resource.
      operationId: update-custom-frontend
      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/UpdateCustomFrontend"
            examples:
              default:
                description: default
                value: "{\"authProviderIds\":[\"fcjqulq11k3ptnclf9re3\",\"f78a5z9gwwb62lsoe5aw3\"\
                  ]}"
        required: true
      responses:
        "202":
          description: Custom frontend is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "xji2pf1uattc9kw49p08v",
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "status" : "PENDING",
                      "domainName" : "example.com",
                      "authProviderIds" : [ "fcjqulq11k3ptnclf9re3", "f78a5z9gwwb62lsoe5aw3" ],
                      "createdBy" : "0c27ac57-7e7a-40b6-85e9-e37e6485076e",
                      "createdAt" : "2025-10-16T15:18:02.314086Z",
                      "updatedBy" : "ece9c203-334b-47e2-9222-442502160e4d",
                      "updatedAt" : "2025-10-16T15:18:02.454827Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/xji2pf1uattc9kw49p08v"
                        },
                        "dns-records" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/xji2pf1uattc9kw49p08v/dns-records"
                        },
                        "auth-providers" : {
                          "href" : "/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/auth-providers?id=fcjqulq11k3ptnclf9re3,f78a5z9gwwb62lsoe5aw3"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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:
      - Custom Frontend
      summary: Delete Custom Frontend
      description: |
        Deletes a Custom Frontend by its ID.
        Deleting a Custom Frontend is an asynchronous operation.
        The caller must have delete permissions on the parent Frontdoor resource.
      operationId: delete-custom-frontend
      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: Custom Frontend deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "wy9nwi92kkkrksqgmls4a",
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "status" : "DELETED",
                      "domainName" : "example.com",
                      "authProviderIds" : [ ],
                      "createdBy" : "52181b31-a1cd-4ee4-9984-5c71176b193c",
                      "createdAt" : "2025-10-16T15:18:02.826683Z",
                      "updatedBy" : "08eb0ed2-91db-4798-85f6-ad8698c3aa3b",
                      "updatedAt" : "2025-10-16T15:18:02.858691Z",
                      "deletedBy" : "e46525ee-9e12-47e7-81de-44c13aa5c40e",
                      "deletedAt" : "2025-10-16T15:18:02.858702Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/wy9nwi92kkkrksqgmls4a"
                        },
                        "dns-records" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/wy9nwi92kkkrksqgmls4a/dns-records"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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:
      - Custom Frontend
      summary: Update Custom Frontend
      description: |
        Updates a Custom Frontend in the specific Frontdoor.
        The domain of the Custom Frontend can't be updated, only the Auth Providers.
        Frontends are updated asynchronously because the orchestration can take a little while to update.
        The caller must have update permissions on the parent Frontdoor resource.
        The response includes the updated Custom Frontend resource.
      operationId: update-custom-frontend_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/UpdateCustomFrontend"
            examples:
              default:
                description: default
                value: "{\"authProviderIds\":[\"fcjqulq11k3ptnclf9re3\",\"f78a5z9gwwb62lsoe5aw3\"\
                  ]}"
        required: true
      responses:
        "202":
          description: Custom frontend is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "xji2pf1uattc9kw49p08v",
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "status" : "PENDING",
                      "domainName" : "example.com",
                      "authProviderIds" : [ "fcjqulq11k3ptnclf9re3", "f78a5z9gwwb62lsoe5aw3" ],
                      "createdBy" : "0c27ac57-7e7a-40b6-85e9-e37e6485076e",
                      "createdAt" : "2025-10-16T15:18:02.314086Z",
                      "updatedBy" : "ece9c203-334b-47e2-9222-442502160e4d",
                      "updatedAt" : "2025-10-16T15:18:02.454827Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/xji2pf1uattc9kw49p08v"
                        },
                        "dns-records" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/xji2pf1uattc9kw49p08v/dns-records"
                        },
                        "auth-providers" : {
                          "href" : "/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/auth-providers?id=fcjqulq11k3ptnclf9re3,f78a5z9gwwb62lsoe5aw3"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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/{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" : "yd1fukf0u0dwsugibi4eb",
                      "frontdoorId" : "0d83e327-0232-4e24-a546-a2d8a9eb5b06",
                      "name" : "HealthCheck-28",
                      "envZId" : "3BYbS9BXlhYcoKvAQo2X3",
                      "shareToken" : "g6DZ4boigst5zMXk_nce4",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "440d7875-be52-4e2a-b055-b6f84737c1b5",
                      "createdAt" : "2025-10-16T15:18:09.149257Z",
                      "updatedBy" : "c6708f11-1a47-4e43-bff1-f934ed3d2335",
                      "updatedAt" : "2025-10-16T15:18:09.154139Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/0d83e327-0232-4e24-a546-a2d8a9eb5b06/health-checks/yd1fukf0u0dwsugibi4eb"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/0d83e327-0232-4e24-a546-a2d8a9eb5b06/shares/g6DZ4boigst5zMXk_nce4"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/0d83e327-0232-4e24-a546-a2d8a9eb5b06/environments/3BYbS9BXlhYcoKvAQo2X3"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/0d83e327-0232-4e24-a546-a2d8a9eb5b06"
                        }
                      }
                    }
          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\",\"shareToken\":\"fMA0QugSJrVsmOUqKH2wa\"\
                  ,\"endpoint\":\"/status\",\"httpVerb\":\"GET\",\"expectedHttpResponse\"\
                  :200,\"timeoutMilliseconds\":1000}"
        required: true
      responses:
        "200":
          description: Health Check updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "asy2octf0c6cupdfttbre",
                      "frontdoorId" : "e7c0c30b-32ca-4666-b20d-c3c091166cd4",
                      "name" : "health check a",
                      "envZId" : "tzoq1MPu9UgYf5",
                      "shareToken" : "fMA0QugSJrVsmOUqKH2wa",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "64584ab1-adda-4883-97d0-de6ccd6b5ccd",
                      "createdAt" : "2025-10-16T15:18:08.850279Z",
                      "updatedBy" : "e77ee383-ed7b-4e40-ab85-a0447f734b2d",
                      "updatedAt" : "2025-10-16T15:18:08.912385Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e7c0c30b-32ca-4666-b20d-c3c091166cd4/health-checks/asy2octf0c6cupdfttbre"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e7c0c30b-32ca-4666-b20d-c3c091166cd4/shares/fMA0QugSJrVsmOUqKH2wa"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e7c0c30b-32ca-4666-b20d-c3c091166cd4/environments/tzoq1MPu9UgYf5"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e7c0c30b-32ca-4666-b20d-c3c091166cd4"
                        }
                      }
                    }
          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" : "th635cs74jewjqljmw4es",
                      "frontdoorId" : "b4e45437-6b1a-4afa-88f5-892d7200ead4",
                      "name" : "HealthCheck-22",
                      "envZId" : "FWBRSJWkHTbY5TWIkMXKL",
                      "shareToken" : "fjeWuQxGHSBjV6pqlfrJl",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "2403377a-6a8c-4d93-b0d7-4245eba1e5b0",
                      "createdAt" : "2025-10-16T15:18:08.573108Z",
                      "updatedBy" : "f8e4e5e0-f229-4a5a-9d32-7441437ea421",
                      "updatedAt" : "2025-10-16T15:18:08.607672Z",
                      "deletedBy" : "7892a4ef-2913-4467-aa3c-2398b6612fbd",
                      "deletedAt" : "2025-10-16T15:18:08.607232Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/b4e45437-6b1a-4afa-88f5-892d7200ead4/health-checks/th635cs74jewjqljmw4es"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/b4e45437-6b1a-4afa-88f5-892d7200ead4/shares/fjeWuQxGHSBjV6pqlfrJl"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/b4e45437-6b1a-4afa-88f5-892d7200ead4/environments/FWBRSJWkHTbY5TWIkMXKL"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/b4e45437-6b1a-4afa-88f5-892d7200ead4"
                        }
                      }
                    }
          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\",\"shareToken\":\"AlwBPTVS-FdAMKw9Vd1h2\"\
                  ,\"endpoint\":null,\"httpVerb\":null,\"expectedHttpResponse\":null,\"\
                  timeoutMilliseconds\":null}"
        required: true
      responses:
        "200":
          description: Health Check updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "sqjd9l33qfvqjh4aq3nd0",
                      "frontdoorId" : "bffa26ff-32b1-4fdb-8c6c-407705d1c305",
                      "name" : "health check a",
                      "envZId" : "rvxeUv-eQPmvOZZhAA1jI",
                      "shareToken" : "AlwBPTVS-FdAMKw9Vd1h2",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "a3a91296-d803-49cd-a588-ed426fdd6c45",
                      "createdAt" : "2025-10-16T15:18:09.067007Z",
                      "updatedBy" : "afeccde2-48d3-4cd8-9809-8be9514d7251",
                      "updatedAt" : "2025-10-16T15:18:09.110236Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/bffa26ff-32b1-4fdb-8c6c-407705d1c305/health-checks/sqjd9l33qfvqjh4aq3nd0"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/bffa26ff-32b1-4fdb-8c6c-407705d1c305/shares/AlwBPTVS-FdAMKw9Vd1h2"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/bffa26ff-32b1-4fdb-8c6c-407705d1c305/environments/rvxeUv-eQPmvOZZhAA1jI"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/bffa26ff-32b1-4fdb-8c6c-407705d1c305"
                        }
                      }
                    }
          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/{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" : "yjrmhd813a8sjjylagmrd",
                      "frontdoorId" : "7454bf40-11ef-49d9-9ff1-f207ca2db1a4",
                      "name" : "ClientCertificate-3",
                      "createdBy" : "c92c10bf-ba4f-4cf7-9a4e-362b7a7a9e10",
                      "createdAt" : "2025-10-16T15:20:19.921878Z",
                      "updatedBy" : "c92c10bf-ba4f-4cf7-9a4e-362b7a7a9e10",
                      "updatedAt" : "2025-10-16T15:20:19.921878Z",
                      "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/7454bf40-11ef-49d9-9ff1-f207ca2db1a4/client-certificates/yjrmhd813a8sjjylagmrd"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7454bf40-11ef-49d9-9ff1-f207ca2db1a4"
                        }
                      }
                    }
          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\":\"new name\",\"value\":null}"
        required: true
      responses:
        "200":
          description: Client certificate is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "kp7jkoz28wa97lmz72q8o",
                      "frontdoorId" : "7454bf40-11ef-49d9-9ff1-f207ca2db1a4",
                      "name" : "new name",
                      "createdBy" : "c190a08a-92f0-41fe-8df4-471748bf8877",
                      "createdAt" : "2025-10-16T15:20:19.751970Z",
                      "updatedBy" : "b870acd8-0650-4937-ad8b-4db8de1930da",
                      "updatedAt" : "2025-10-16T15:20:19.809440Z",
                      "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/7454bf40-11ef-49d9-9ff1-f207ca2db1a4/client-certificates/kp7jkoz28wa97lmz72q8o"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7454bf40-11ef-49d9-9ff1-f207ca2db1a4"
                        }
                      }
                    }
          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" : "c39ld9gsjihe1z996kozp",
                      "frontdoorId" : "7454bf40-11ef-49d9-9ff1-f207ca2db1a4",
                      "name" : "ClientCertificate-0",
                      "createdBy" : "54d2e47e-2fe9-4cc0-ad96-dedc5f39f85f",
                      "createdAt" : "2025-10-16T15:20:18.377517Z",
                      "updatedBy" : "54d2e47e-2fe9-4cc0-ad96-dedc5f39f85f",
                      "updatedAt" : "2025-10-16T15:20:18.955010Z",
                      "deletedBy" : "ea7b2e42-2396-4552-a0f5-bc3fccab33e9",
                      "deletedAt" : "2025-10-16T15:20:18.944298Z",
                      "value" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7454bf40-11ef-49d9-9ff1-f207ca2db1a4/client-certificates/c39ld9gsjihe1z996kozp"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7454bf40-11ef-49d9-9ff1-f207ca2db1a4"
                        }
                      }
                    }
          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\":\"new name\",\"value\":null}"
        required: true
      responses:
        "200":
          description: Client certificate is being updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "kp7jkoz28wa97lmz72q8o",
                      "frontdoorId" : "7454bf40-11ef-49d9-9ff1-f207ca2db1a4",
                      "name" : "new name",
                      "createdBy" : "c190a08a-92f0-41fe-8df4-471748bf8877",
                      "createdAt" : "2025-10-16T15:20:19.751970Z",
                      "updatedBy" : "b870acd8-0650-4937-ad8b-4db8de1930da",
                      "updatedAt" : "2025-10-16T15:20:19.809440Z",
                      "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/7454bf40-11ef-49d9-9ff1-f207ca2db1a4/client-certificates/kp7jkoz28wa97lmz72q8o"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7454bf40-11ef-49d9-9ff1-f207ca2db1a4"
                        }
                      }
                    }
          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/{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" : "shx5cp99rocpocr1kg5x9",
                      "frontdoorId" : "47c4ec02-76df-4763-ac81-1dc3b301f870",
                      "name" : "CertificateRequestToken-4",
                      "token" : "78wjrn7t9y",
                      "commonName" : "frontdoor-cert-request-5",
                      "organization" : "netfoundry-6",
                      "organizationalUnit" : "MOP-7",
                      "expiresAt" : "2025-10-20T20:39:05.646635Z",
                      "createdBy" : "fdef0463-3dfe-47cb-a67c-9d044d641e71",
                      "createdAt" : "2025-10-20T19:39:05.647773Z",
                      "updatedBy" : "fdef0463-3dfe-47cb-a67c-9d044d641e71",
                      "updatedAt" : "2025-10-20T19:39:05.647773Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870/certificate-request-tokens/shx5cp99rocpocr1kg5x9"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870"
                        }
                      }
                    }
          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: Update Certificate Request Token
      description: |
        Updates 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: 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: {}
        required: true
      responses:
        "200":
          description: Certificate request token is being updated.
          content:
            '*/*':
              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: {}
    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" : "bw07tyhkuqjulmhtq9csu",
                      "frontdoorId" : "47c4ec02-76df-4763-ac81-1dc3b301f870",
                      "name" : "CertificateRequestToken-24",
                      "token" : "06dglolhuc",
                      "commonName" : "frontdoor-cert-request-25",
                      "organization" : "netfoundry-26",
                      "organizationalUnit" : "MOP-27",
                      "expiresAt" : "2025-10-20T20:39:06.178176Z",
                      "createdBy" : "de99e5f0-5b80-4e76-a198-111be76753f0",
                      "createdAt" : "2025-10-20T19:39:06.179835Z",
                      "updatedBy" : "de99e5f0-5b80-4e76-a198-111be76753f0",
                      "updatedAt" : "2025-10-20T19:39:06.208499Z",
                      "deletedBy" : "2a76bf3e-0f71-403d-ab2d-fb378978a0fa",
                      "deletedAt" : "2025-10-20T19:39:06.206862Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870/certificate-request-tokens/bw07tyhkuqjulmhtq9csu"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870"
                        }
                      }
                    }
          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: Update Certificate Request Token
      description: |
        Updates 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: update-certificate-request-token_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/UpdateCertificateRequestToken"
            examples: {}
        required: true
      responses:
        "200":
          description: Certificate request token is being updated.
          content:
            '*/*':
              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: {}
  /frontdoor/{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" : "g2pb2d3hprpti0jb1q9ml",
                      "frontdoorId" : "7fbfc2b5-5a46-4b6e-85f3-d2d57402b910",
                      "name" : "AuthProvider-11",
                      "type" : "OIDC",
                      "createdBy" : "5939cf52-0765-49c3-a13f-aef8b60e0f63",
                      "createdAt" : "2025-10-16T15:18:04.553252Z",
                      "updatedBy" : "438cd7ec-e318-468d-85f7-e5b692fa8847",
                      "updatedAt" : "2025-10-16T15:18:04.558478Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "6GkiGxxI5Fe6qtf2fisxH",
                        "client_secret" : "yTKlBb2FRhnYLD2RiL9zr",
                        "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/7fbfc2b5-5a46-4b6e-85f3-d2d57402b910/auth-providers/g2pb2d3hprpti0jb1q9ml"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7fbfc2b5-5a46-4b6e-85f3-d2d57402b910"
                        }
                      }
                    }
          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,\"data\":null}"
        required: true
      responses:
        "200":
          description: Auth Provider updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "tu1n47dhs444cepe7puqh",
                      "frontdoorId" : "c6020362-7460-4fd5-895b-cad6d72fc681",
                      "name" : "auth provider a",
                      "type" : "OIDC",
                      "createdBy" : "04f4a539-3d7a-468e-b93b-1a22d61d7533",
                      "createdAt" : "2025-10-16T15:18:04.471754Z",
                      "updatedBy" : "04227416-4713-47dd-9283-c718869794f5",
                      "updatedAt" : "2025-10-16T15:18:04.498439Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "LjG2J9jmJS0T0X7RHaNXH",
                        "client_secret" : "rReHeYSvH3-ly35ifL8WE",
                        "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/c6020362-7460-4fd5-895b-cad6d72fc681/auth-providers/tu1n47dhs444cepe7puqh"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c6020362-7460-4fd5-895b-cad6d72fc681"
                        }
                      }
                    }
          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" : "gnmdr6ae3utsotopfiylv",
                      "frontdoorId" : "6cecec3b-7464-45ce-9a0a-56f862195c4c",
                      "name" : "AuthProvider-12",
                      "type" : "OIDC",
                      "createdBy" : "f94ade9c-02ff-45ed-909d-66d0776bd2f0",
                      "createdAt" : "2025-10-16T15:18:04.673122Z",
                      "updatedBy" : "25a68a09-1e3a-4d85-a9b6-3e6d8fdcaca6",
                      "updatedAt" : "2025-10-16T15:18:04.692831Z",
                      "deletedBy" : "17d035c0-4fc9-4dbb-8d17-351a92dabd52",
                      "deletedAt" : "2025-10-16T15:18:04.692872Z",
                      "data" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/6cecec3b-7464-45ce-9a0a-56f862195c4c/auth-providers/gnmdr6ae3utsotopfiylv"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/6cecec3b-7464-45ce-9a0a-56f862195c4c"
                        }
                      }
                    }
          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,\"data\":null}"
        required: true
      responses:
        "200":
          description: Auth Provider updated.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "tu1n47dhs444cepe7puqh",
                      "frontdoorId" : "c6020362-7460-4fd5-895b-cad6d72fc681",
                      "name" : "auth provider a",
                      "type" : "OIDC",
                      "createdBy" : "04f4a539-3d7a-468e-b93b-1a22d61d7533",
                      "createdAt" : "2025-10-16T15:18:04.471754Z",
                      "updatedBy" : "04227416-4713-47dd-9283-c718869794f5",
                      "updatedAt" : "2025-10-16T15:18:04.498439Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "LjG2J9jmJS0T0X7RHaNXH",
                        "client_secret" : "rReHeYSvH3-ly35ifL8WE",
                        "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/c6020362-7460-4fd5-895b-cad6d72fc681/auth-providers/tu1n47dhs444cepe7puqh"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c6020362-7460-4fd5-895b-cad6d72fc681"
                        }
                      }
                    }
          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:
    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: query
        required: true
        schema:
          type: string
          format: uuid
      responses:
        "200":
          description: Frontdoor exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "46da9c58-29ff-4e66-89f4-d2859339af56",
                      "organizationId" : "b9b04c55-ff41-42a6-97ea-710826983761",
                      "tcpSharesEnabled" : true,
                      "createdBy" : "e85ca8fe-f92d-4af7-99d6-2b42a58d7357",
                      "createdAt" : "2025-10-16T15:17:43.238217Z",
                      "updatedBy" : "e49eaf77-c855-4a9f-9b67-8fa65ca76beb",
                      "updatedAt" : "2025-10-16T15:17:45.733289Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/metrics"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/environments"
                        }
                      }
                    }
        "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
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateFrontdoor"
            examples:
              default:
                description: default
                value: "{\"organizationId\":\"b9b04c55-ff41-42a6-97ea-710826983761\"\
                  }"
        required: true
      responses:
        "200":
          description: Frontdoor created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "46da9c58-29ff-4e66-89f4-d2859339af56",
                      "organizationId" : "b9b04c55-ff41-42a6-97ea-710826983761",
                      "tcpSharesEnabled" : false,
                      "createdBy" : "e85ca8fe-f92d-4af7-99d6-2b42a58d7357",
                      "createdAt" : "2025-10-16T15:17:43.238217Z",
                      "updatedBy" : "e85ca8fe-f92d-4af7-99d6-2b42a58d7357",
                      "updatedAt" : "2025-10-16T15:17:43.238217Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/metrics"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/environments"
                        }
                      }
                    }
          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: {}
        "202":
          description: Accepted
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/EntityModelFrontdoor"
              examples: {}
  /frontdoor/{frontdoorId}/shares:
    get:
      tags:
      - Share
      summary: List Shares
      description: |
        Retrieves a list of Share resources in a specific Frontdoor.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-shares
      parameters:
      - name: frontdoorId
        in: path
        description: Id of the Frontdoor resource.
        required: true
        schema:
          type: string
          format: uuid
      - name: envZId
        in: query
        required: false
        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/Share"
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "shareList" : [ {
                          "frontdoorId" : "1fad9769-50d3-48f6-8753-362e807d83cb",
                          "authProviderId" : null,
                          "frontendId" : null,
                          "type" : "HTTP",
                          "status" : "DEPLOYED",
                          "hostingId" : null,
                          "name" : "share1",
                          "zId" : "KF4GwDIwiL",
                          "shareMode" : "public",
                          "backendMode" : "proxy",
                          "envZId" : "ijcrWb-ZOq",
                          "frontendSelection" : null,
                          "frontendEndpoint" : "https://share1.share.zrok.sandbox.netfoundry.io",
                          "backendProxyEndpoint" : "https://google.com",
                          "oauthProvider" : null,
                          "oauthEmailDomains" : null,
                          "oauthAuthorizationCheckInterval" : null,
                          "reserved" : true,
                          "limited" : false,
                          "createdAt" : "2025-06-20T21:01:07.126+00:00",
                          "updatedAt" : "2025-06-20T21:01:07.126+00:00",
                          "activity" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1"
                            },
                            "shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares{?envZId}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/environments/{envZId}",
                              "templated" : true
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1/metrics{?duration}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb"
                            }
                          }
                        }, {
                          "frontdoorId" : "1fad9769-50d3-48f6-8753-362e807d83cb",
                          "authProviderId" : null,
                          "frontendId" : null,
                          "type" : "HTTP",
                          "status" : "DEPLOYED",
                          "hostingId" : null,
                          "name" : "share2",
                          "zId" : "k0G3gIYfVw",
                          "shareMode" : "public",
                          "backendMode" : "proxy",
                          "envZId" : "ijcrWb-ZOq",
                          "frontendSelection" : null,
                          "frontendEndpoint" : "https://share2.share.zrok.sandbox.netfoundry.io",
                          "backendProxyEndpoint" : "https://yahoo.com",
                          "oauthProvider" : null,
                          "oauthEmailDomains" : null,
                          "oauthAuthorizationCheckInterval" : null,
                          "reserved" : true,
                          "limited" : false,
                          "createdAt" : "2025-06-20T21:01:07.226+00:00",
                          "updatedAt" : "2025-06-20T21:01:07.226+00:00",
                          "activity" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share2"
                            },
                            "shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares{?envZId}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/environments/{envZId}",
                              "templated" : true
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share2/metrics{?duration}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares{?envZId}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb"
                        },
                        "sparklines" : {
                          "href" : "/frontdoor/{frontdoorId}/sparklines{?shares,environments}",
                          "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: {}
    post:
      tags:
      - Share
      summary: Create Share
      description: |
        Creates a new Share in this Frontdoor.
        The caller must have create permissions on the parent Frontdoor resource.
        The response includes the created Share resource.
      operationId: create-share
      parameters:
      - name: frontdoorId
        in: path
        description: Id of the Frontdoor resource.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/CreateHttpShare"
              - $ref: "#/components/schemas/CreateTCPShare"
            examples:
              default:
                description: default
                value: "{\"name\":\"Share3\",\"envZId\":\"ijcrWb-ZOq\",\"target\"\
                  :\"http://zoom.us\",\"frontendIds\":[\"wJaOpHpWNgFHsY1PYKjYI\"],\"\
                  authProviderId\":\"gTFpQVIpS0S-syE9no_Aa\",\"oauthEmailDomains\"\
                  :null,\"oauthAuthorizationCheckInterval\":null,\"insecure\":false}"
        required: true
      responses:
        "200":
          description: Share created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "1bff3794-0750-432a-a78a-aee3df6f4305",
                      "authProviderId" : "gTFpQVIpS0S-syE9no_Aa",
                      "frontendId" : null,
                      "name" : "share3",
                      "zId" : "2fCJXaRFb9",
                      "shareMode" : "public",
                      "backendMode" : "proxy",
                      "envZId" : "ijcrWb-ZOq",
                      "frontendSelection" : null,
                      "frontendEndpoint" : "https://share3.share.zrok.sandbox.netfoundry.io",
                      "backendProxyEndpoint" : "https://zoom.us",
                      "oauthProvider" : "AuthProvider-1",
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "reserved" : true,
                      "limited" : false,
                      "createdAt" : "2025-06-20T21:01:07.126+00:00",
                      "updatedAt" : "2025-06-20T21:01:07.126+00:00",
                      "activity" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1bff3794-0750-432a-a78a-aee3df6f4305/shares/share3"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1bff3794-0750-432a-a78a-aee3df6f4305/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1bff3794-0750-432a-a78a-aee3df6f4305/environments/{envZId}",
                          "templated" : true
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1bff3794-0750-432a-a78a-aee3df6f4305/shares/share3/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1bff3794-0750-432a-a78a-aee3df6f4305"
                        }
                      }
                    }
          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/{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: 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" : "930n9rdwre80rrhyfxqc8",
                          "frontdoorId" : "8c472e86-bc49-4c2c-a814-f8a3ea0167db",
                          "name" : "HealthCheck-23",
                          "envZId" : "y7-A79jZn9s5T4PW6PH9o",
                          "shareToken" : "rU1TC3jAziGBB-71UP3-K",
                          "httpVerb" : "GET",
                          "endpoint" : "/status",
                          "expectedHttpResponse" : 200,
                          "timeoutMilliseconds" : 1000,
                          "createdBy" : "0318d486-79fd-4277-aeaf-6a52c6f0159b",
                          "createdAt" : "2025-10-16T15:18:08.670226Z",
                          "updatedBy" : "1391ae54-f737-462d-817d-9576251f9cc5",
                          "updatedAt" : "2025-10-16T15:18:08.674789Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/health-checks/930n9rdwre80rrhyfxqc8"
                            },
                            "share" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/shares/rU1TC3jAziGBB-71UP3-K"
                            },
                            "environment" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/environments/y7-A79jZn9s5T4PW6PH9o"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db"
                            }
                          }
                        }, {
                          "id" : "js3z7657lr1lqg4nhamco",
                          "frontdoorId" : "8c472e86-bc49-4c2c-a814-f8a3ea0167db",
                          "name" : "HealthCheck-24",
                          "envZId" : "MD2o7ZDLE-n0ST6vcInDD",
                          "shareToken" : "__LNgvIAkvkCw1ySCtSyy",
                          "httpVerb" : "HEAD",
                          "endpoint" : "/health",
                          "expectedHttpResponse" : 200,
                          "timeoutMilliseconds" : 1000,
                          "createdBy" : "2ae9f567-0b57-4296-83b8-b9ea33cb0b71",
                          "createdAt" : "2025-10-16T15:18:08.678954Z",
                          "updatedBy" : "55d51a69-7aef-4469-834a-8fdd927b3cfc",
                          "updatedAt" : "2025-10-16T15:18:08.683029Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/health-checks/js3z7657lr1lqg4nhamco"
                            },
                            "share" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/shares/__LNgvIAkvkCw1ySCtSyy"
                            },
                            "environment" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/environments/MD2o7ZDLE-n0ST6vcInDD"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db/health-checks"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/8c472e86-bc49-4c2c-a814-f8a3ea0167db"
                        }
                      },
                      "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\",\"shareToken\":\"8yr2RoqjL5s7OymPYWf4B\"\
                  ,\"endpoint\":\"/status\",\"httpVerb\":\"GET\",\"expectedHttpResponse\"\
                  :null,\"timeoutMilliseconds\":null}"
        required: true
      responses:
        "200":
          description: Health check created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "zaqu3v4l7ia2g3nb6g2l8",
                      "frontdoorId" : "52d104b1-7897-42c2-a740-8eb28ae1f6c3",
                      "name" : "health check 1",
                      "envZId" : "6FsPkdbW2XEnnHsctFZ6w",
                      "shareToken" : "8yr2RoqjL5s7OymPYWf4B",
                      "httpVerb" : "GET",
                      "endpoint" : "/status",
                      "expectedHttpResponse" : 200,
                      "timeoutMilliseconds" : 1000,
                      "createdBy" : "7d7141c6-9362-4a33-9fa7-fa43ecb9ac47",
                      "createdAt" : "2025-10-16T15:18:08.808495Z",
                      "updatedBy" : "7d7141c6-9362-4a33-9fa7-fa43ecb9ac47",
                      "updatedAt" : "2025-10-16T15:18:08.808495Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/52d104b1-7897-42c2-a740-8eb28ae1f6c3/health-checks/zaqu3v4l7ia2g3nb6g2l8"
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/52d104b1-7897-42c2-a740-8eb28ae1f6c3/shares/8yr2RoqjL5s7OymPYWf4B"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/52d104b1-7897-42c2-a740-8eb28ae1f6c3/environments/6FsPkdbW2XEnnHsctFZ6w"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/52d104b1-7897-42c2-a740-8eb28ae1f6c3"
                        }
                      }
                    }
          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/{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" : "36ebc0b4-1589-4cf4-91bf-9c687ff1bd2b",
                      "id" : null,
                      "healthy" : true,
                      "error" : null,
                      "_links" : {
                        "health-check" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/36ebc0b4-1589-4cf4-91bf-9c687ff1bd2b/health-checks/{id}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/36ebc0b4-1589-4cf4-91bf-9c687ff1bd2b"
                        }
                      }
                    }
          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/{frontdoorId}/custom-frontends:
    get:
      tags:
      - Custom Frontend
      summary: List Custom Frontends
      description: |
        Retrieves a paginated list of Custom Frontend resources in a specific Frontdoor.
        The results can be filtered by providing query parameters that correspond to the properties of a Custom Frontend.
        For example, to filter by name, you can add `?domainName=my-check` to the request URL. Multiple values for the
        same filter property are supported (e.g., `?domainName=check1&domainName=check2`).
        Sorting and pagination are also supported. For instance, `?page=0&size=20&sort=domainName,asc` will retrieve the
        first page of 20 custom frontends, 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-custom-frontends
      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 custom frontend resources."
        allowEmptyValue: true
        schema:
          type: string
      - name: domainNames
        in: query
        description: Domain Name to filter by.
        allowEmptyValue: true
      - name: status
        in: query
        description: "Status to filter by, see Status"
        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/CustomFrontend"
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "customFrontendList" : [ {
                          "id" : "864haw4oi3a1ohc4w4km1",
                          "frontdoorId" : "fb80dc29-88ee-4af1-a74e-892592d8d650",
                          "status" : "DEPLOYED",
                          "domainName" : "6BprcECxwxvQXMDc0HXBr.com",
                          "authProviderIds" : [ "i95bhy7nz0cqgpm7iqkdu" ],
                          "createdBy" : "618a1106-f1b6-4ace-bdd2-c393b3e45e33",
                          "createdAt" : "2025-10-16T15:18:09.607463Z",
                          "updatedBy" : "8c4c35e7-f376-4e0e-a6ae-7524272148d5",
                          "updatedAt" : "2025-10-16T15:18:09.616694Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/864haw4oi3a1ohc4w4km1"
                            },
                            "dns-records" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/864haw4oi3a1ohc4w4km1/dns-records"
                            },
                            "auth-providers" : {
                              "href" : "/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/auth-providers?id=i95bhy7nz0cqgpm7iqkdu"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650"
                            }
                          }
                        }, {
                          "id" : "cssbnegubfgwpv9p0q1vw",
                          "frontdoorId" : "fb80dc29-88ee-4af1-a74e-892592d8d650",
                          "status" : "NEW",
                          "domainName" : "FwOA-FAUBBXcHBYaQ9ilM.com",
                          "authProviderIds" : [ ],
                          "createdBy" : "52bd1845-1c65-4220-8c2f-73e34a0825e1",
                          "createdAt" : "2025-10-16T15:18:09.620802Z",
                          "updatedBy" : "7f5fc06f-3167-42c2-a026-932745dda4c6",
                          "updatedAt" : "2025-10-16T15:18:09.627002Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/cssbnegubfgwpv9p0q1vw"
                            },
                            "dns-records" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/cssbnegubfgwpv9p0q1vw/dns-records"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650"
                            }
                          }
                        }, {
                          "id" : "hzciuthtvn9iwofas5dxt",
                          "frontdoorId" : "fb80dc29-88ee-4af1-a74e-892592d8d650",
                          "status" : "DEPLOYED",
                          "domainName" : "2T9cwzRuY5e3Ss4KG9YiT.com",
                          "authProviderIds" : [ "t4fi2bvp5d6japkj9u4o5" ],
                          "createdBy" : "8cb88a77-8bb9-4fb5-a6f7-d324f4885997",
                          "createdAt" : "2025-10-16T15:18:09.586204Z",
                          "updatedBy" : "1dea34e1-ac96-4e65-928d-b9b5c3852efd",
                          "updatedAt" : "2025-10-16T15:18:09.601745Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/hzciuthtvn9iwofas5dxt"
                            },
                            "dns-records" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends/hzciuthtvn9iwofas5dxt/dns-records"
                            },
                            "auth-providers" : {
                              "href" : "/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/auth-providers?id=t4fi2bvp5d6japkj9u4o5"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650/custom-frontends"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/fb80dc29-88ee-4af1-a74e-892592d8d650"
                        }
                      },
                      "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:
      - Custom Frontend
      summary: Create Custom Frontend
      description: |
        Creates a new Custom Frontend for use in the specific Frontdoor.
        The user creates a Custom Frontends to use a custom domain to serve the Shares on.
        They are created asynchronously because the user needs to configure the DNS entry during the process and a certificate needs to be created.</p>
        The caller must have create permissions on the parent Frontdoor resource.
        The response includes the created Custom Frontend resource.
      operationId: create-custom-frontend
      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/CreateCustomFrontend"
            examples:
              default:
                description: default
                value: "{\"domainName\":\"fake.com\",\"authProviderIds\":null}"
        required: true
      responses:
        "202":
          description: Custom frontend is being created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "klzjjav3ee3gf47o0wu0d",
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "status" : "NEW",
                      "domainName" : "fake.com",
                      "authProviderIds" : [ ],
                      "createdBy" : "e8d010c5-fd3a-4908-a757-1a82f2d0baaf",
                      "createdAt" : "2025-10-16T15:18:02.662976Z",
                      "updatedBy" : "e8d010c5-fd3a-4908-a757-1a82f2d0baaf",
                      "updatedAt" : "2025-10-16T15:18:02.662976Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/klzjjav3ee3gf47o0wu0d"
                        },
                        "dns-records" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/klzjjav3ee3gf47o0wu0d/dns-records"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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/{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" : "a5cm6d28sqmrks7saepx4",
                          "frontdoorId" : "a69b333d-a21d-4ff1-b9b5-0ea05345a3f0",
                          "name" : "first",
                          "createdBy" : "b8b894a4-c4c4-4b82-a94d-537ba6f3f663",
                          "createdAt" : "2025-10-16T15:17:46.206163Z",
                          "updatedBy" : "b8b894a4-c4c4-4b82-a94d-537ba6f3f663",
                          "updatedAt" : "2025-10-16T15:17:46.206163Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0/client-certificates/a5cm6d28sqmrks7saepx4"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0"
                            }
                          }
                        }, {
                          "id" : "abjy22bnl0s22raz3l1yf",
                          "frontdoorId" : "a69b333d-a21d-4ff1-b9b5-0ea05345a3f0",
                          "name" : "second",
                          "createdBy" : "edaf17ed-4c66-4c75-8cb0-bfce165fdab4",
                          "createdAt" : "2025-10-16T15:17:46.210931Z",
                          "updatedBy" : "edaf17ed-4c66-4c75-8cb0-bfce165fdab4",
                          "updatedAt" : "2025-10-16T15:17:46.210931Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0/client-certificates/abjy22bnl0s22raz3l1yf"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0"
                            }
                          }
                        }, {
                          "id" : "ob35gvn8u5336xvqqtrk7",
                          "frontdoorId" : "a69b333d-a21d-4ff1-b9b5-0ea05345a3f0",
                          "name" : "third",
                          "createdBy" : "8ea641f7-9a06-417f-8691-2db95ff3d1c7",
                          "createdAt" : "2025-10-16T15:17:46.214746Z",
                          "updatedBy" : "8ea641f7-9a06-417f-8691-2db95ff3d1c7",
                          "updatedAt" : "2025-10-16T15:17:46.214746Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "value" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0/client-certificates/ob35gvn8u5336xvqqtrk7"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0/client-certificates"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/a69b333d-a21d-4ff1-b9b5-0ea05345a3f0"
                        }
                      },
                      "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
      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
      parameters:
      - name: frontdoorId
        in: path
        description: Id of the Frontdoor resource.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/GenerateClientCertificate"
              - $ref: "#/components/schemas/UploadClientCertificate"
            examples:
              default:
                description: default
                value: "{\"type\":\"csr\",\"name\":\"client cert 2\",\"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\",\"type\":\"csr\"}"
        required: true
      responses:
        "200":
          description: Client certificate is created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "s4zhy3rbi52j9ij35gcrz",
                      "frontdoorId" : "e8c591e0-9d7d-4c70-b0f3-9c5fee346a2e",
                      "name" : "client cert 2",
                      "createdBy" : "7bf02d15-a076-4b4c-a99c-cb7dfc894fd2",
                      "createdAt" : "2025-10-17T12:53:45.397269Z",
                      "updatedBy" : "7bf02d15-a076-4b4c-a99c-cb7dfc894fd2",
                      "updatedAt" : "2025-10-17T12:53:45.416963Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "value" : "-----BEGIN CERTIFICATE-----\nMIIEYjCCAkqgAwIBAgIGAZnyO70IMA0GCSqGSIb3DQEBCwUAMFgxEzARBgNVBAMM\nCk5ldEZvdW5kcnkxEzARBgNVBAoMCk5ldEZvdW5kcnkxEjAQBgNVBAcMCUNoYXJs\nb3R0ZTELMAkGA1UECAwCTkMxCzAJBgNVBAYTAlVTMB4XDTI1MTAxNzEyNTM0NVoX\nDTI2MTAxNzEyNTM0NVowgZUxEjAQBgNVBAoTCWFjY2VzczM2MDEUMBIGA1UECxML\nZW5naW5lZXJpbmcxEDAOBgNVBAMTB250YWdlbnQxJDAiBgkqhkiG9w0BCQEWFW50\nYWdlbnRAYWNjZXNzMzYwLmNvbTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm\nb3JuaWExDzANBgNVBAcTBklydmluZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC\ngYEAmR6AcPnwf6hLLc72BmUkAwaXcebtxCoCnnTH9uc8VuMHPbIMAgjuC4s91hPr\nilG7UtlbOfy6X3R3kbeR8apRR9uLYrPIvQ1b4NK0whsytij6syCySaFQIB6V7RPB\natFr6XQ9hpsARdkGytZmGTgGTJ1hSS/jA6mbxpgmttz9HPECAwEAAaN4MHYwEwYD\nVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFHv2y1V3wvY8YNqsxvQvNZV1KGuS\nMB8GA1UdIwQYMBaAFHv2y1V3wvY8YNqsxvQvNZV1KGuSMA8GA1UdEwEB/wQFMAMB\nAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQCboPkP1/7iPEn0\na7DnloEUgymjt8Zx0LiBofLKTueAz+tqrCvfhzIYeXais1OFsogn2vK2IF33CRad\nDWyhLi0yUc1EjL5jMW7kc/k5uKDahjLP8BJd2KL6SMUODpBlHzCR6dVjxXix5XWk\nBQoMICkHhMj90ty+qaYNxn99N9cWvanTEH5ninJuoFDRZyL+rgUqkvkB2Mf+r0Jp\nDQ0ahvP5h0BuewHzEoF2FQ1yW3mzc6N2jylqqX1GRhKQmnuM/0Y04Z99sFmu8rAG\ngeR2qM7rIt+mKVv4BcrixA1tskYNGaPEfnzbAEa0Z304NlaH26GBfnBh7ynAnTSo\nAVD8wjNECNHbTF9+RJYBVpZlskajKMJsTy9oRyNAjp3y9uR4S95qJUOSjTaDASN8\nKL2v0xhkNEwCxZH81FK24FNFrQaFlrHy6EmJpMVw4WYtFuszfKiWi96vWS52NUOc\nXAOnSo/mbXbK0WRyMH0ogvL2gkrhya+wEhXt8L30bkDS7Lgm98/I9R1KgHTA1Xnm\nYG0y2Vxll11Ut9eGlCHFszO+5P+7DZt3ddD59x9OdMvJZkL8sQoVVB/1mxWZLh6K\nT8N3065m/zs4GsKdym9Z7ypdrVZfpEJZ17jguPnNfV/u/u0VxHXUdsShGEp/Dg32\nLMXtDORpssiYgHqExklFOrJZmXOM5Q==\n-----END CERTIFICATE-----\n",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e8c591e0-9d7d-4c70-b0f3-9c5fee346a2e/client-certificates/s4zhy3rbi52j9ij35gcrz"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e8c591e0-9d7d-4c70-b0f3-9c5fee346a2e"
                        }
                      }
                    }
          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/{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: {}
          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: {}
        required: true
      responses:
        "200":
          description: Certificate request token is created.
          content:
            '*/*':
              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: {}
  /frontdoor/{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" : "1wy1l7vsbl309s2fj39rc",
                          "frontdoorId" : "7ef64729-c9e7-48e0-a755-a13ea5ebe492",
                          "name" : "AuthProvider-13",
                          "type" : "OIDC",
                          "createdBy" : "83c34e7b-4704-4887-ab7e-2afab7148fc8",
                          "createdAt" : "2025-10-16T15:18:04.738243Z",
                          "updatedBy" : "52bed022-7709-4a5d-9f4b-a00896b46c45",
                          "updatedAt" : "2025-10-16T15:18:04.742362Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "data" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492/auth-providers/1wy1l7vsbl309s2fj39rc"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492"
                            }
                          }
                        }, {
                          "id" : "nalz0z6m18roehkmeoru2",
                          "frontdoorId" : "7ef64729-c9e7-48e0-a755-a13ea5ebe492",
                          "name" : "AuthProvider-14",
                          "type" : "OIDC",
                          "createdBy" : "5616e653-df37-498a-8c79-80a081c8c7d1",
                          "createdAt" : "2025-10-16T15:18:04.747358Z",
                          "updatedBy" : "36b60f0d-a737-4197-b73b-6d284c9725fb",
                          "updatedAt" : "2025-10-16T15:18:04.752051Z",
                          "deletedBy" : null,
                          "deletedAt" : null,
                          "data" : null,
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492/auth-providers/nalz0z6m18roehkmeoru2"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492/auth-providers"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/7ef64729-c9e7-48e0-a755-a13ea5ebe492"
                        }
                      },
                      "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\",\"data\"\
                  :{\"client_id\":\"XO_A-qmlEeuHxvNa4V2Gm\",\"client_secret\":\"kgmY_eLKISKLh-sTA3NjM\"\
                  }}"
        required: true
      responses:
        "200":
          description: Auth Provider created.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "id" : "b061g29sde96tpcwx0937",
                      "frontdoorId" : "e4fba592-bfe4-4c8d-8892-6b2fc55f7327",
                      "name" : "auth provider 1",
                      "type" : "GOOGLE",
                      "createdBy" : "96df3882-d6d4-4e13-887d-1754fb85432d",
                      "createdAt" : "2025-10-16T15:18:04.622297Z",
                      "updatedBy" : "96df3882-d6d4-4e13-887d-1754fb85432d",
                      "updatedAt" : "2025-10-16T15:18:04.624824Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "data" : {
                        "client_id" : "XO_A-qmlEeuHxvNa4V2Gm",
                        "client_secret" : "kgmY_eLKISKLh-sTA3NjM"
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e4fba592-bfe4-4c8d-8892-6b2fc55f7327/auth-providers/b061g29sde96tpcwx0937"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/e4fba592-bfe4-4c8d-8892-6b2fc55f7327"
                        }
                      }
                    }
          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/{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" : "dvvqg31zc8qfpbbqt5lsn",
                      "frontdoorId" : "ac1a21b8-d4ba-420d-85b4-a8593b2b5e97",
                      "bootstrapToken" : "xrm2y10y",
                      "enrollmentExpiryDate" : "2025-10-18T15:18:10.343938Z",
                      "enrollmentAttempts" : 0,
                      "createdAt" : "2025-10-16T15:18:10.344597Z",
                      "createdBy" : "ec31bb34-d946-4767-94cd-08db64627481",
                      "deletedAt" : null,
                      "deletedBy" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agent/enrollment"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97"
                        }
                      }
                    }
          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/agent/enrollment/{code}:
    post:
      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" : "7hU1FEhAhVIwIAB9p-DC2",
                      "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: {}
  /frontdoor/{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: |-
                    {
                      "id" : "46da9c58-29ff-4e66-89f4-d2859339af56",
                      "organizationId" : "b9b04c55-ff41-42a6-97ea-710826983761",
                      "tcpSharesEnabled" : true,
                      "createdBy" : "e85ca8fe-f92d-4af7-99d6-2b42a58d7357",
                      "createdAt" : "2025-10-16T15:17:43.238217Z",
                      "updatedBy" : "e49eaf77-c855-4a9f-9b67-8fa65ca76beb",
                      "updatedAt" : "2025-10-16T15:17:45.733289Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/metrics"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/environments"
                        }
                      }
                    }
        "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" : "46da9c58-29ff-4e66-89f4-d2859339af56",
                      "organizationId" : "b9b04c55-ff41-42a6-97ea-710826983761",
                      "tcpSharesEnabled" : true,
                      "createdBy" : "e85ca8fe-f92d-4af7-99d6-2b42a58d7357",
                      "createdAt" : "2025-10-16T15:17:43.238217Z",
                      "updatedBy" : "8a9c3319-b0cd-441d-aaeb-ced4f3b27a63",
                      "updatedAt" : "2025-10-16T15:17:45.844940Z",
                      "deletedBy" : "e543adc1-27df-4fa4-be0d-56fb7cb91d66",
                      "deletedAt" : "2025-10-16T15:17:45.846171Z",
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/metrics"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/environments"
                        }
                      }
                    }
        "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: {}
        "202":
          description: Accepted
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/EntityModelFrontdoor"
              examples: {}
  /frontdoor/{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 resource.
        required: true
        schema:
          type: string
          format: uuid
      - name: duration
        in: query
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Frontdoor exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "46da9c58-29ff-4e66-89f4-d2859339af56",
                      "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/46da9c58-29ff-4e66-89f4-d2859339af56/metrics"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56/environments"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/46da9c58-29ff-4e66-89f4-d2859339af56"
                        }
                      }
                    }
          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/{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" : "75aa084b-336a-4bb5-8881-4cc728894a7f",
                      "sparklines" : [ {
                        "scope" : "environment",
                        "id" : "z4492i5ne2lona280e6y8",
                        "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/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/75aa084b-336a-4bb5-8881-4cc728894a7f"
                        }
                      }
                    }
          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/{frontdoorId}/shares/{token}:
    get:
      tags:
      - Share
      summary: Get details of a single Share resource by ID.
      description: |
        Retrieves a single Share by its ID.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-share
      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
      responses:
        "200":
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "1fad9769-50d3-48f6-8753-362e807d83cb",
                      "authProviderId" : null,
                      "frontendId" : null,
                      "type" : "HTTP",
                      "status" : "DEPLOYED",
                      "hostingId" : null,
                      "name" : "share1",
                      "zId" : "KF4GwDIwiL",
                      "shareMode" : "public",
                      "backendMode" : "proxy",
                      "envZId" : "ijcrWb-ZOq",
                      "frontendSelection" : null,
                      "frontendEndpoint" : "https://share1.share.zrok.sandbox.netfoundry.io",
                      "backendProxyEndpoint" : "https://google.com",
                      "oauthProvider" : null,
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "reserved" : true,
                      "limited" : false,
                      "createdAt" : "2025-06-20T21:01:07.126+00:00",
                      "updatedAt" : "2025-06-20T21:01:07.126+00:00",
                      "activity" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/environments/{envZId}",
                          "templated" : true
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb"
                        }
                      }
                    }
          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 Share
      description: |
        Deletes a Share by its ID.
        The caller must have delete permissions on the parent Frontdoor resource.
      operationId: delete-share
      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
      responses:
        "200":
          description: Share deleted.
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "c3599def-e924-48dc-a625-9d265ff0d80d",
                      "authProviderId" : null,
                      "frontendId" : null,
                      "type" : "HTTP",
                      "name" : "share3",
                      "zId" : "2fCJXaRFb9",
                      "shareMode" : "public",
                      "backendMode" : "proxy",
                      "envZId" : "ijcrWb-ZOq",
                      "frontendSelection" : null,
                      "frontendEndpoint" : "https://share3.share.zrok.sandbox.netfoundry.io",
                      "backendProxyEndpoint" : "https://zoom.us",
                      "oauthProvider" : null,
                      "oauthEmailDomains" : null,
                      "oauthAuthorizationCheckInterval" : null,
                      "reserved" : true,
                      "limited" : false,
                      "createdAt" : "2025-06-20T21:01:07.126+00:00",
                      "updatedAt" : "2025-06-20T21:01:07.126+00:00",
                      "activity" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c3599def-e924-48dc-a625-9d265ff0d80d/shares/share3"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c3599def-e924-48dc-a625-9d265ff0d80d/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c3599def-e924-48dc-a625-9d265ff0d80d/environments/{envZId}",
                          "templated" : true
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c3599def-e924-48dc-a625-9d265ff0d80d/shares/share3/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/c3599def-e924-48dc-a625-9d265ff0d80d"
                        }
                      }
                    }
          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/{frontdoorId}/shares/{token}/metrics:
    get:
      tags:
      - Share
      summary: Get metrics for single 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-share-metrics
      parameters:
      - name: frontdoorId
        in: path
        description: Id of the Frontdoor resource.
        required: true
        schema:
          type: string
          format: uuid
      - name: token
        in: path
        description: The unique token identifying the Share.
        required: true
        schema:
          type: string
      - name: duration
        in: query
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Share exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "1fad9769-50d3-48f6-8753-362e807d83cb",
                      "shareToken" : "share1",
                      "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/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1/metrics{?duration}",
                          "templated" : true
                        },
                        "share" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares/share1"
                        },
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/shares{?envZId}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb/environments/{envZId}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/1fad9769-50d3-48f6-8753-362e807d83cb"
                        }
                      }
                    }
          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/{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" : "65710b52-4925-482c-a275-9773d7c3d5a0",
                      "id" : "9qspefefqmucbs1swchq7",
                      "healthy" : true,
                      "error" : null,
                      "_links" : {
                        "health-check" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/65710b52-4925-482c-a275-9773d7c3d5a0/health-checks/9qspefefqmucbs1swchq7"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/65710b52-4925-482c-a275-9773d7c3d5a0"
                        }
                      }
                    }
          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/{frontdoorId}/frontends:
    get:
      tags:
      - Frontend
      summary: Retrieves all Frontends available.
      description: |
        Lists all Frontends available in the specific Frontdoor. Includes both company-hosted and user-hosted Custom Frontends.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-frontends
      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:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "frontendList" : [ {
                          "urlTemplate" : "https://{token}.nf.io",
                          "publicName" : "public1",
                          "_links" : {
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/d7b0978e-6621-4713-b812-fff036c247ff"
                            }
                          }
                        }, {
                          "urlTemplate" : "https://{token}.example.com",
                          "publicName" : "custom1",
                          "_links" : {
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/d7b0978e-6621-4713-b812-fff036c247ff"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/d7b0978e-6621-4713-b812-fff036c247ff/frontends"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/d7b0978e-6621-4713-b812-fff036c247ff"
                        }
                      }
                    }
          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/{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" : "17v21k8pemzqbzx7cy128",
                          "frontdoorId" : "70195f4f-eabd-4311-9169-f4b3d145d2d1",
                          "processId" : "fd89b152-94c9-475d-a5e9-8f5873dbce57",
                          "name" : "ExecutionType1",
                          "description" : "Test Execution 1",
                          "resourceType" : "test-component",
                          "resourceId" : "o_7S-KIWlpp_7PD6QM3T7",
                          "startedAt" : "2025-10-16T15:17:54.933321Z",
                          "finishedAt" : "2025-10-16T15:17:59.933326Z",
                          "traceId" : "2IQyUDmvKqALDJ-8k1uLe",
                          "status" : "SUCCESS",
                          "initiatingIdentityId" : "48653137-8ebb-4619-ac4a-38330d7114f7",
                          "createdAt" : "2025-10-16T15:18:04.933763Z",
                          "updatedAt" : "2025-10-16T15:18:04.933763Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1/executions/17v21k8pemzqbzx7cy128"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1"
                            }
                          }
                        }, {
                          "id" : "goloudcywtdqpr5tkpo32",
                          "frontdoorId" : "70195f4f-eabd-4311-9169-f4b3d145d2d1",
                          "processId" : "bf4bd025-d84e-446b-966c-d8f67c949d04",
                          "name" : "ExecutionType2",
                          "description" : "Test Execution 2",
                          "resourceType" : "test-component",
                          "resourceId" : "6QwHTjzpbvbpdpvUx1_xW",
                          "startedAt" : "2025-10-16T15:17:54.936905Z",
                          "finishedAt" : "2025-10-16T15:17:59.936909Z",
                          "traceId" : "9xJ908Kpu3ZWms8xEAQjr",
                          "status" : "FAILED",
                          "initiatingIdentityId" : "ea9e0101-b5c0-4c5f-ab78-41842039b0be",
                          "createdAt" : "2025-10-16T15:18:04.937009Z",
                          "updatedAt" : "2025-10-16T15:18:04.937009Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1/executions/goloudcywtdqpr5tkpo32"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1"
                            }
                          }
                        }, {
                          "id" : "huoz9f2ykj5342i2k14ig",
                          "frontdoorId" : "70195f4f-eabd-4311-9169-f4b3d145d2d1",
                          "processId" : "7f40da0b-a9ca-4e3e-9e31-38007a51ab1c",
                          "name" : "ExecutionType3",
                          "description" : "Test Execution 3",
                          "resourceType" : "test-component",
                          "resourceId" : "UGVvWy5rWVBq-P9S1Cdkk",
                          "startedAt" : "2025-10-16T15:17:54.940424Z",
                          "finishedAt" : "2025-10-16T15:17:59.940427Z",
                          "traceId" : "Ne0UCjTIpTcMMQgo0Z1xc",
                          "status" : "CANCELED",
                          "initiatingIdentityId" : "fb598332-4e9a-4a39-8239-118e1bcfb5ef",
                          "createdAt" : "2025-10-16T15:18:04.940790Z",
                          "updatedAt" : "2025-10-16T15:18:04.940790Z",
                          "actions" : [ ],
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1/executions/huoz9f2ykj5342i2k14ig"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1/executions"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/70195f4f-eabd-4311-9169-f4b3d145d2d1"
                        }
                      },
                      "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/{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" : "73f6u0f1ktuxe56o3la0k",
                      "frontdoorId" : "598102d0-253b-4d17-83b0-07b55eb17c04",
                      "processId" : "46a88ef3-0a12-4979-b2f9-35f9154043b3",
                      "name" : "DeleteCustomFrontendProcess",
                      "description" : "Fake Process",
                      "resourceType" : "CustomFrontend",
                      "resourceId" : null,
                      "startedAt" : "2025-10-16T15:18:14.044878Z",
                      "finishedAt" : "2025-10-16T15:18:14.044878Z",
                      "traceId" : "trace3",
                      "status" : "FAILED",
                      "initiatingIdentityId" : "a3bfe20c-4391-4bdb-b577-bb1f5c9fa15c",
                      "createdAt" : "2025-10-16T15:18:14.045272Z",
                      "updatedAt" : "2025-10-16T15:18:14.045272Z",
                      "actions" : [ ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/598102d0-253b-4d17-83b0-07b55eb17c04/executions/73f6u0f1ktuxe56o3la0k"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/598102d0-253b-4d17-83b0-07b55eb17c04"
                        }
                      }
                    }
        "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/{frontdoorId}/environments:
    get:
      tags:
      - Share
      summary: List Environments
      description: |
        Retrieves a list of Environments resources in a specific Frontdoor.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: list-environments
      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/Environment"
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "_embedded" : {
                        "environmentList" : [ {
                          "frontdoorId" : "4426466d-a68f-4a2f-a46d-776605e39464",
                          "description" : "computer@Mac",
                          "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                          "address" : "201.124.246.91",
                          "zId" : "8RoOSvbN__G0ni-vPyIA1",
                          "limited" : null,
                          "createdAt" : "2025-06-20T20:56:24.648+00:00",
                          "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                          "activity" : null,
                          "_links" : {
                            "shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/shares?envZId=8RoOSvbN__G0ni-vPyIA1"
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/8RoOSvbN__G0ni-vPyIA1/metrics{?duration}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                            },
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/8RoOSvbN__G0ni-vPyIA1"
                            },
                            "sparklines" : {
                              "href" : "/frontdoor/{frontdoorId}/sparklines{?shares,environments}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                            }
                          }
                        }, {
                          "frontdoorId" : "4426466d-a68f-4a2f-a46d-776605e39464",
                          "description" : "computer1@Mac",
                          "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                          "address" : "201.124.246.92",
                          "zId" : "35d5tB28sJNOsTdcreIPN",
                          "limited" : null,
                          "createdAt" : "2025-06-20T20:56:24.648+00:00",
                          "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                          "activity" : null,
                          "_links" : {
                            "shares" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/shares?envZId=35d5tB28sJNOsTdcreIPN"
                            },
                            "metrics" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/35d5tB28sJNOsTdcreIPN/metrics{?duration}",
                              "templated" : true
                            },
                            "environments" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                            },
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/35d5tB28sJNOsTdcreIPN"
                            },
                            "sparklines" : {
                              "href" : "/frontdoor/{frontdoorId}/sparklines{?shares,environments}",
                              "templated" : true
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                        }
                      }
                    }
          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/{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" : "4426466d-a68f-4a2f-a46d-776605e39464",
                      "description" : "computer@Mac",
                      "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                      "address" : "201.124.246.91",
                      "zId" : "F7vw64_SDRtSXaOBMBocT",
                      "limited" : null,
                      "createdAt" : "2025-06-20T20:56:24.648+00:00",
                      "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                      "activity" : null,
                      "_links" : {
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/shares?envZId=F7vw64_SDRtSXaOBMBocT"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/F7vw64_SDRtSXaOBMBocT/metrics{?duration}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/F7vw64_SDRtSXaOBMBocT"
                        },
                        "sparklines" : {
                          "href" : "/frontdoor/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                        }
                      }
                    }
          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 a 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" : "4426466d-a68f-4a2f-a46d-776605e39464",
                      "description" : "computer@Mac",
                      "host" : "computer; Mac; darwin; darwin; Standalone Workstation; 15.5; 24.5.0; arm64",
                      "address" : "201.124.246.91",
                      "zId" : "ZK52O5rAsz55s3LTsrTsE",
                      "limited" : null,
                      "createdAt" : "2025-06-20T20:56:24.648+00:00",
                      "updatedAt" : "2025-06-20T20:56:24.648+00:00",
                      "activity" : null,
                      "_links" : {
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/shares?envZId=ZK52O5rAsz55s3LTsrTsE"
                        },
                        "metrics" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/ZK52O5rAsz55s3LTsrTsE/metrics{?duration}",
                          "templated" : true
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/ZK52O5rAsz55s3LTsrTsE"
                        },
                        "sparklines" : {
                          "href" : "/frontdoor/{frontdoorId}/sparklines{?shares,environments}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                        }
                      }
                    }
          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/{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" : "4426466d-a68f-4a2f-a46d-776605e39464",
                      "envZId" : "sW8KpOKpLXMq9h5gkwU0_",
                      "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" : {
                        "shares" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/shares?envZId=sW8KpOKpLXMq9h5gkwU0_"
                        },
                        "environments" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments"
                        },
                        "environment" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/sW8KpOKpLXMq9h5gkwU0_"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464/environments/sW8KpOKpLXMq9h5gkwU0_/metrics{?duration}",
                          "templated" : true
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/4426466d-a68f-4a2f-a46d-776605e39464"
                        }
                      }
                    }
          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/{frontdoorId}/custom-frontends/{id}/dns-records:
    get:
      tags:
      - Custom Frontend
      summary: Retrieves the dns validation records for a single Custom Frontend resource
        by ID.
      description: |
        Retrieves the DNS records for a specified custom frontend within a given frontdoor context.
        For this operation to succeed, the status of the Custom Frontend needs to be `PENDING`, `DEPLOYED`, or `ERROR` or it will return an error.
        The caller must have read permissions on the parent Frontdoor resource.
      operationId: get-custom-frontend-dns-records
      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: Custom Frontend exists and data is returned
          content:
            '*/*':
              examples:
                default:
                  description: default
                  value: |-
                    {
                      "frontdoorId" : "33460bde-379f-40d6-be50-32cef7dca5d0",
                      "customFrontendId" : "dnv2ciy2cb78deyx6aqb5",
                      "domainName" : "example.com",
                      "aRecord" : {
                        "name" : "*.example.com",
                        "ipAddress" : [ "75.5.114.129", "166.17.13.68" ]
                      },
                      "cnameRecords" : [ {
                        "name" : "_3e3e8de9516be6c3d242a143c16da5d0.example.com",
                        "value" : "example.com.domains.zrok.sandbox.netfoundry.io"
                      } ],
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/dnv2ciy2cb78deyx6aqb5/dns-records"
                        },
                        "custom-frontend" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0/custom-frontends/dnv2ciy2cb78deyx6aqb5"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/33460bde-379f-40d6-be50-32cef7dca5d0"
                        }
                      }
                    }
          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/{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" : "24gqkm4rjnc5wq1vhrrhs",
                      "frontdoorId" : "47c4ec02-76df-4763-ac81-1dc3b301f870",
                      "name" : "CertificateRequestToken-8",
                      "token" : "ypkdfx0h4q",
                      "commonName" : "frontdoor-cert-request-9",
                      "organization" : "netfoundry-10",
                      "organizationalUnit" : "MOP-11",
                      "expiresAt" : "2025-10-20T20:39:05.825174Z",
                      "createdBy" : "20791170-6701-456b-a7ba-9267ba8ef54b",
                      "createdAt" : "2025-10-20T19:39:05.825983Z",
                      "updatedBy" : "20791170-6701-456b-a7ba-9267ba8ef54b",
                      "updatedAt" : "2025-10-20T19:39:05.825983Z",
                      "deletedBy" : null,
                      "deletedAt" : null,
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870/certificate-request-tokens/24gqkm4rjnc5wq1vhrrhs"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/47c4ec02-76df-4763-ac81-1dc3b301f870"
                        }
                      }
                    }
          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/{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/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/GITHUB"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/GITHUB/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053"
                            }
                          }
                        }, {
                          "type" : "GOOGLE",
                          "description" : "Google OAuth",
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/GOOGLE"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/GOOGLE/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053"
                            }
                          }
                        }, {
                          "type" : "OIDC",
                          "description" : "Standard OIDC",
                          "_links" : {
                            "self" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/OIDC"
                            },
                            "schema" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/OIDC/schema"
                            },
                            "frontdoor" : {
                              "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053"
                            }
                          }
                        } ]
                      },
                      "_links" : {
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053"
                        }
                      }
                    }
          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/{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/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/OIDC"
                        },
                        "schema" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053/auth-provider-types/OIDC/schema"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/eb62c03f-6077-40db-9ea8-227d736f2053"
                        }
                      }
                    }
          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/{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"
                          } ]
                        },
                        "auth_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/{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
      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" : "ac1a21b8-d4ba-420d-85b4-a8593b2b5e97",
                      "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/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/x8lDiqpbZH7uOAMyycPMd/version"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/x8lDiqpbZH7uOAMyycPMd/status"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97"
                        }
                      }
                    }
          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" : "ac1a21b8-d4ba-420d-85b4-a8593b2b5e97",
                      "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/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/N7BNZzjs8LgqEjYY_JU04/version"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/N7BNZzjs8LgqEjYY_JU04/status"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97"
                        }
                      }
                    }
          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/{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" : "ac1a21b8-d4ba-420d-85b4-a8593b2b5e97",
                      "version" : "1.0.1",
                      "_links" : {
                        "status" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/gzIvgb2sTBlCrAXmqZWUf/status"
                        },
                        "self" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97/agents/gzIvgb2sTBlCrAXmqZWUf/version"
                        },
                        "frontdoor" : {
                          "href" : "https://gateway.production.netfoundry.io/frontdoor/ac1a21b8-d4ba-420d-85b4-a8593b2b5e97"
                        }
                      }
                    }
          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: {}
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
    UpdateCustomFrontend:
      type: object
      properties:
        authProviderIds:
          type: array
          items:
            type: string
          uniqueItems: true
    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
        shareToken:
          type: string
          description: The token 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
      - shareToken
    UpdateClientCertificate:
      type: object
      properties:
        name:
          type: string
          description: Name of the client certificate
        value:
          type: string
          description: The certificate data
          example: '----- BEGIN CERTIFICATE ---- .... ----- END CERTIFICATE -----'
    UpdateCertificateRequestToken:
      type: object
      properties:
        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
      required:
      - commonName
      - organization
      - organizationalUnit
    JsonNode: {}
    UpdateAuthProvider:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          description: Type of authentication provider
          enum:
          - OIDC
          - GITHUB
          - GOOGLE
        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
    CreateFrontdoor:
      type: object
      properties:
        organizationId:
          type: string
          format: uuid
      required:
      - organizationId
    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
        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"
    CreateHttpShare:
      allOf:
      - $ref: "#/components/schemas/CreateShare"
      - type: object
        properties:
          frontendIds:
            type: array
            items:
              type: string
            minItems: 1
          authProviderId:
            type: string
          oauthEmailDomains:
            type: array
            items:
              type: string
          oauthAuthorizationCheckInterval:
            type: string
          insecure:
            type: boolean
      required:
      - envZId
      - frontendIds
      - name
      - target
    CreateShare:
      type: object
      discriminator:
        propertyName: type
      properties:
        name:
          type: string
          minLength: 1
          pattern: "^[A-Za-z][A-Za-z0-9]*$"
        envZId:
          type: string
        type:
          type: string
          description: "The type of share, defaults to HTTP"
          enum:
          - HTTP
          - TCP
        target:
          type: string
          minLength: 1
      required:
      - envZId
      - name
      - target
    CreateTCPShare:
      allOf:
      - $ref: "#/components/schemas/CreateShare"
      - type: object
        properties:
          ingressPort:
            type: integer
            format: int32
            maximum: 2199
            minimum: 2100
          clientCertificateId:
            type: string
          allowedSubjects:
            type: array
            items:
              type: string
            uniqueItems: true
          allowedCommonNamePrefixes:
            type: array
            items:
              type: string
            uniqueItems: true
          requiredOrganizationalUnit:
            type: string
      required:
      - envZId
      - ingressPort
      - name
      - 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
        shareToken:
          type: string
          description: The token 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
      - shareToken
    CreateCustomFrontend:
      type: object
      properties:
        domainName:
          type: string
        authProviderIds:
          type: array
          items:
            type: string
          uniqueItems: true
      required:
      - domainName
    CreateClientCertificate:
      type: object
      discriminator:
        propertyName: type
      properties:
        name:
          type: string
          description: Name of the client certificate
          minLength: 1
        type:
          type: string
          description: "Type of the data being sent by the client, `CSR` for generating\
            \ a `certificate` or an already created certificate"
          example: certificate
        value:
          type: string
      required:
      - name
    GenerateClientCertificate:
      allOf:
      - $ref: "#/components/schemas/CreateClientCertificate"
      - type: object
        properties:
          value:
            type: string
            description: The Certificate Signing Request data
            example: '----- BEGIN CERTIFICATE REQUEST ---- .... ----- END CERTIFICATE
              REQUEST-----'
            minLength: 1
      required:
      - name
      - value
    UploadClientCertificate:
      allOf:
      - $ref: "#/components/schemas/CreateClientCertificate"
      - type: object
        properties:
          value:
            type: string
            description: The certificate data
            example: '----- BEGIN CERTIFICATE ---- .... ----- END CERTIFICATE -----'
            minLength: 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
      required:
      - name
    CreateAuthProvider:
      type: object
      properties:
        name:
          type: string
          description: Name of the authentication provider
          example: My IDP
        type:
          type: string
          description: Type of the authentication provider
          example: oidc
        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
    Sample:
      type: object
      description: "A single, time-stamped data point for traffic metrics."
      properties:
        rx:
          type: integer
          format: int32
          description: Total bytes received during this sample interval.
          example: 2343
        tx:
          type: integer
          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"
    metrics:
      type: object
      description: Represents a set of metrics for a specific resource over a period
        of time.
      example:
      - scope: account
        id: "174"
        period: "4174000"
        samples:
        - rx: 2343
          tx: 1231
          timestamp: "1750636800000"
      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.
    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
    Share:
      type: object
      properties:
        name:
          type: string
          description: "The unique token for the share, also known as the share token"
          example: shr_2x0y1z
        zId:
          type: string
          description: The unique zrok identifier for the share
          example: 'zrok_... '
        shareMode:
          type: string
          description: "The access mode for the share (e.g., \"public\", \"private\"\
            )"
          example: public
        backendMode:
          type: string
          description: "The mode of the backend service (e.g., \"proxy\", \"web\")"
          example: proxy
        envZId:
          type: string
          description: The zrok identifier of the environment this share belongs to
          example: 2x0yshr1z
        frontendSelection:
          type: string
          description: The name of the frontend used for this share
          example: public
        frontendEndpoint:
          type: string
          description: The public URL for accessing the share from the internet
          example: https://w45jw11t5p19.zrok.io
        backendProxyEndpoint:
          type: string
          description: The endpoint used by the zrok agent to connect the backend
            service
          example: tcp://proxy.zrok.io:5678
        oauthProvider:
          type: string
          description: The name of an auth provider configured for the frontend the
            share is set up on
          example: google
        oauthEmailDomains:
          type: array
          description: Filter for what accounts are authorized to access the share
          items:
            type: string
            description: Filter for what accounts are authorized to access the share
        oauthAuthorizationCheckInterval:
          type: string
          description: An interval for how often an auth check should be performed
            against the configured auth provider
          example: 1h
        reserved:
          type: boolean
          description: A flag indicating whether this is a reserved share
        limited:
          type: boolean
          description: A flag indicating whether this share is subject to usage limits
        createdAt:
          type: string
          format: timestamp
          description: The timestamp of when the share was created
          example: 1678886400000
        updatedAt:
          type: string
          format: timestamp
          description: The timestamp of the last update to the share
          example: 1678886400000
        activity:
          type: array
          description: A list of recent network activity samples for generating sparkline
            visualizations
          items:
            $ref: "#/components/schemas/SparkDataSample"
    SparkDataSample:
      type: object
      description: A list of recent network activity samples for generating sparkline
        visualizations.
      properties:
        rx:
          type: integer
          format: int
          description: Data received
          example: 2343
        tx:
          type: integer
          format: int
          description: Data transferred
          example: 1231
    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
        name:
          type: string
          description: Name of the health check
        envZId:
          type: string
          description: Environment ZID
        shareToken:
          type: string
          description: Share token
        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:
        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
        zId:
          type: string
          description: The unique zrok identifier for the environment.
          example: env_2x0y1z
        limited:
          type: boolean
          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: array
          description: A list of recent network activity samples for generating sparkline
            visualizations.
          items:
            $ref: "#/components/schemas/SparkDataSample"
    CustomFrontend:
      type: object
      properties:
        id:
          type: string
          format: string
          description: Unique identifier of the resource
          example: 82a4566614174000
        frontdoorId:
          type: string
          format: uuid
          description: The frontdoor account this resource belongs to
          example: 123e4567-e89b-12d3-a456-426614174000
        status:
          type: string
          description: Current status of the custom frontend
          enum:
          - NEW
          - PENDING
          - DEPLOYED
          - ERROR
          - DELETING
          - DELETED
        domainName:
          type: string
          description: Domain name for the custom frontend
        authProviderIds:
          type: array
          description: Set of auth provider identifiers configured in this Frontend
          items:
            type: string
          uniqueItems: 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
    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
        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
        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
    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
