openapi: 3.0.0
info:
  title: Raidiam Connect
  description: Raidiam Connect API
  contact:
    email: support@raidiam.com
  license:
    name: MIT
    url: https://mit-license.org
  version: 1.49.0
servers:
  - url: https://matls-api.sandbox.raidiam.io
    description: Raidiam Directory Sandbox Environment
tags:
  - name: Users
    description: all operations relating to users
  - name: Super Users
    description: all operations relating to super users
  - name: Organisation Admin Users
    description: all operations relating to organisation admins
  - name: Organisation Domain Users
    description: all operations relating to organisation domain users
  - name: Docusign
    description: all operations utilising docusign
  - name: Organisations
    description: all operations relating to organisations
  - name: Deprecated
    description: all depreciated operations
  - name: Conformance Suite
    description: all operations involving the conformance suite
  - name: Reference Data
    description: all operations relating to reference data
  - name: Authorities
    description: all operations relating to authorities
  - name: Authorisation Domains
    description: all operations relating to authorisation domains
  - name: Authorisation Domain Roles
    description: all operations relating to authorisation domain roles
  - name: Authorisation Domain Role Metadata
    description: all operations relating to authorisation domain role metadata
  - name: Authority Domain Mappings
    description: all operations relating to the mapping between authorities and authorisation domains
  - name: Terms and Conditions
    description: all operations relating to directory terms and conditions
  - name: Authority Domain Claims
    description: all operations relating to authority domain claims attached to an organisation
  - name: Authority Claims
    description: all operations relating to roles attached to an organisation
  - name: Authority Claims Authorisations
    description: all operations relating to authority claim authorisations
  - name: Contacts
    description: all operations relating to contacts
  - name: Authorisation Servers
    description: all operations relating to authorisation servers
  - name: API Resources
    description: all operations relating to api resources
  - name: API Discovery Endpoints
    description: all operations relating to api discovery endpoints listed on an api resource
  - name: Certifications
    description: all operations relating to the certifying of a directory resource
  - name: Software Statements
    description: all operations relating to software statements
  - name: Software Authority Claims
    description: all operations relating to authority claims attached to a software statement
  - name: Certificates
    description: all operations relating to certificates
  - name: Assertion
    description: all operations relating to the software statement assertion
  - name: Software Statement Metadata
    description: all operations relating to software statement metadata
  - name: OpenID Provider
    description: all operations relating to the openid provider
  - name: Client Registration
    description: all operations relating to the clients endpoint
  - name: Audit History
    description: all operations relating to fetching audit history
  - name: Federation
    description: all operations relating to federation
  - name: Certification Type
    description: all operations relating to certification types
  - name: Certification Type Variant
    description: all operations relating to certification type variants
  - name: Flags
    description: all endpoints relating to resource flags
  - name: Contact Types
    description: all endpoints relating to contact types
  - name: Api Families
    description: all endpoints relating to api family configurations
paths:
  /audit:
    get:
      tags:
        - Audit History
      summary: Fetches audit history based on query parameters
      description: Fetches audit history and parses based on query parameters
      operationId: getAuditDetails
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/ActionType'
        - $ref: '#/components/parameters/OrganisationIdQueryParameter'
        - $ref: '#/components/parameters/ResourceType'
        - $ref: '#/components/parameters/ResourceId'
        - $ref: '#/components/parameters/ParentResourceId'
        - $ref: '#/components/parameters/PerformedBy'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/endDate'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/AuditHistoryPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "501":
          $ref: '#/components/responses/NotImplemented'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - godir-authorizer: []
        - oAuth:
            - directory:website
  /clients:
    get:
      tags:
        - Software Statements
        - Client Registration
      summary: Get all registered clients
      description: get all ecosystem clients
      operationId: getEcosystemClients
      responses:
        "200":
          $ref: '#/components/responses/RegisteredClientsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Software Statements
        - Client Registration
      summary: Refresh/rebuild the registered clients data
      description: rebuild all ecosystem clients
      operationId: rebuildEcosystemClients
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "201":
          $ref: '#/components/responses/Ok'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/startDate'
      - $ref: '#/components/parameters/endDate'
      - $ref: '#/components/parameters/clientRole'
      - $ref: '#/components/parameters/clientStatus'
      - $ref: '#/components/parameters/clientName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /clients/{ClientId}:
    get:
      tags:
        - Software Statements
        - Client Registration
      summary: Get details for one client
      description: get specifc ecosystem client by id
      operationId: getEcosystemClientsById
      parameters:
        - $ref: '#/components/parameters/ClientId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/RegisteredClient'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
  /organisations:
    get:
      tags:
        - Organisations
      summary: Get all organisations that the logged in user is authorised to retrieve from trusted services
      description: get all organisations the token is authorised to retrieve
      operationId: getOrganisations
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: displayMine
          in: query
          description: Deprecated - use 'member' instead
          required: false
          deprecated: true
          schema:
            type: string
            default: ""
        - name: filterBy
          in: query
          description: Will return organisations with data like the provided value
          required: false
          schema:
            type: string
            default: ""
        - name: hideInactive
          in: query
          description: Will return only active organisations
          schema:
            type: boolean
            default: false
        - name: authority
          in: query
          description: Will return only organisations with active authority configurations
          schema:
            type: boolean
            default: false
        - name: member
          in: query
          description: When set to true, filters the results to only those organisations that the current user is a member of.
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationsPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
      summary: Post a new organisation in the directory.
      description: creates a new organisation
      operationId: createOrganisation
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/Organisation'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationResponse'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /organisations/{OrganisationId}:
    get:
      tags:
        - Organisations
      summary: Get the given organisations details
      description: Get specific organisation with tnc details
      operationId: getOrganisationById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationWithTnc'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
      summary: Amend the given organisations details
      description: Updates an organisation
      operationId: updateOrganisationById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationUpdate'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
      summary: Delete an organisation by changing its status to "Withdrawn"
      description: deletes a specific organisation setting its status to "Withdrawn"
      operationId: deleteOrganisationById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/{AuthorisationDomainName}/users:
    get:
      tags:
        - Users
        - Organisation Domain Users
      summary: All users for the given authorisation domain
      description: Get all organisation authorisation domain users
      operationId: getOrganisationAuthorisationDomainUsers
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/QueryAuthorisationDomainRoleName'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUsersPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:servicedesk
    post:
      tags:
        - Users
        - Organisation Domain Users
      summary: Create an authorisation domain user
      description: creates an organisation authorisation domain user
      operationId: createOrganisationAuthorisationDomainUser
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainUserCreateRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationDomainUser'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/{AuthorisationDomainName}/users/{UserID}:
    get:
      tags:
        - Users
        - Organisation Domain Users
      summary: Authorisation Domain user details
      description: Gets a specific authorisation domain users details
      operationId: getOrganisationAuthorisationDomainUserById
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUsersPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:servicedesk
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/{AuthorisationDomainName}/users/{UserID}/{AuthorisationDomainUserId}:
    put:
      tags:
        - Users
        - Organisation Domain Users
      summary: Update an authorisation domain user record by the unique identifier
      description: updates an organisation authorisation domain user
      operationId: updateOrganisationAuthorisationDomainUserById
      requestBody:
        $ref: '#/components/requestBodies/UserUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUser'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/AuthorisationDomainUserId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/adminusers:
    get:
      tags:
        - Users
        - Organisation Admin Users
      summary: All admin users for the given organisation
      description: Lists all organisation admins
      operationId: getOrganisationAdmins
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAdminUsers'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:servicedesk
    post:
      tags:
        - Users
        - Organisation Admin Users
      summary: Create an organisation admin user
      description: Creates a new organisation admin
      operationId: createOrganisationAdmin
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrgAdminUserCreateRequest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationAdminUser'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/adminusers/{UserID}:
    get:
      tags:
        - Users
        - Organisation Admin Users
      summary: Gets details of an organisation admin user by their user id
      description: Gets a specific organisation admin
      operationId: getOrganisationAdminById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAdminUser'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:servicedesk
    put:
      tags:
        - Users
        - Organisation Admin Users
      summary: reactivate or deactivate an organisation admin user by their user id
      description: reactivate or deactivate an organisation admin user
      operationId: updateOrganisationAdmin
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/UserUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAdminUser'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers:
    get:
      tags:
        - Organisations
        - Authorisation Servers
      summary: Get all Authorisation Servers for the given organisation
      description: get all authorisation servers attached to the specified organisation
      operationId: getOrganisationAuthorisationServers
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/ContainsOpenIdDiscoveryDocument'
        - $ref: '#/components/parameters/OmitFromEcosystem'
        - $ref: '#/components/parameters/Status'
        - $ref: '#/components/parameters/FilterBy'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServers'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authorisation Servers
      summary: Create an Authorisation Server for the given organisation
      description: creates a new authorisation server
      operationId: createOrganisationAuthorisationServer
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationServerCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationServerResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}:
    get:
      tags:
        - Organisations
        - Authorisation Servers
      summary: Get an authorisation server by Id
      description: get a specific authorisation server
      operationId: getOrganisationAuthorisationServerById
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServer'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authorisation Servers
      summary: Update an authorisation server
      description: updates an existing authorisation server
      operationId: updateOrganisationAuthorisationServerById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationServerUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServerResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
      summary: Delete an Authorisation Server
      description: deletes an authorisation server. Note we hard delete this resource - no inactive state
      operationId: deleteOrganisationAuthorisationServerbyId
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/apiresources:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Get all Api Resources for the given Authorisation Server
      description: gets all api resources attached to the given organisation authorisation server
      operationId: getOrganisationAuthorisationServerApiResources
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: status
          in: query
          description: The status of the api resource
          schema:
            type: string
      responses:
        "200":
          $ref: '#/components/responses/ApiResources'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Create an Api Resource for the given organisation and Authorisation Server
      description: creates a new api resource attached to the specified authorisation server
      operationId: createOrganisationAuthorisationServerApiResource
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ApiResourceRequest'
      responses:
        "201":
          $ref: '#/components/responses/ApiResource'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/apiresources/{ApiResourceId}:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Get an authorisation server API resource by Id
      description: gets a specific api resource
      operationId: getOrganisationAuthorisationServerApiResourceById
      responses:
        "200":
          $ref: '#/components/responses/ApiResource'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Update an Api Resource for the given organisation and Authorisation Server
      description: updates a specific api resource
      operationId: updateOrganisationAuthorisationServerApiResourceById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ApiResourceUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/ApiResource'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Delete an authorisation server API resource by Id
      description: deletes a specific api resource
      operationId: deleteOrganisationAuthorisationServerApiResourceById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/ApiResourceId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/apiresources/{ApiResourceId}/apidiscoveryendpoints:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
        - API Discovery Endpoints
      summary: Get all Api Discovery Endpoints for the given Authorisation Server and Api Version
      description: get all api discovery endpoints listed for a specific api resource
      operationId: getOrganisationAuthorisationServerApiResourceApiDiscoveryEndpoints
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/ApiDiscoveryEndpoints'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
        - API Discovery Endpoints
      summary: Create an Api Discovery Endpoint for the given organisation and Authorisation Server and Api Version
      description: adds a new api discovery endpoint to an existing api resource
      operationId: createOrganisationAuthorisationServerApiResourceApiDiscoveryEndpoints
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ApiDiscoveryEndpointRequest'
      responses:
        "201":
          $ref: '#/components/responses/ApiDiscoveryEndpointFamilyResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/ApiResourceId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  ? /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/apiresources/{ApiResourceId}/apidiscoveryendpoints/{ApiDiscoveryEndpointId}
  : get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
        - API Discovery Endpoints
      summary: Get an authorisation server API discovery endpoint by Id
      description: gets a specific api discovery endpoint
      operationId: getOrganisationAuthorisationServerApiResourceApiDiscoveryEndpointsById
      responses:
        "200":
          $ref: '#/components/responses/ApiDiscoveryEndpoint'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
        - API Discovery Endpoints
      summary: Update an Api Discovery Endpoint for the given organisation, Authorisation Server and Api Version
      description: updates an api discovery endpoint
      operationId: updateOrganisationAuthorisationServerApiResourceApiDiscoveryEndpointsById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ApiDiscoveryEndpointRequest'
      responses:
        "200":
          $ref: '#/components/responses/ApiDiscoveryEndpointFamilyResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
        - API Discovery Endpoints
      summary: Delete an Api Discovery Endpoint for the given organisation, Authorisation Server and Api Version
      description: deletes an api discovery endpoint
      operationId: deleteOrganisationAuthorisationServerApiResourceApiDiscoveryEndpointsById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/ApiResourceId'
      - $ref: '#/components/parameters/ApiDiscoveryEndpointId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/apiresources/{ApiResourceId}/metadata:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Get an authorisation server API resource metadata
      description: Gets a specific api resources metadata
      operationId: getOrganisationAuthorisationServerApiResourceMetadata
      responses:
        "200":
          $ref: '#/components/responses/ApiResourceMetadataItemResponse'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Edit an api resource metadata entry for the given api resource
      description: Edit an api resource metadata entry for the given api resource
      operationId: editOrganisationAuthorisationServerApiResourceMetadata
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ApiResourceMetadataRequest'
      responses:
        "201":
          $ref: '#/components/responses/ApiResourceMetadataItemResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/ApiResourceId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/authorityclaims:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - Authority Claims
      summary: Get the authority claims for the given server
      description: gets all authority claims attached to this server
      operationId: getOrganisationServerAuthorityClaims
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/ServerAuthorityClaimPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - Authority Claims
      summary: Post an authority claim for a server
      description: attaches an authority claim to a server from the list of authority claims attached to the organisation
      operationId: createOrganisationServerAuthorityClaim
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ServerAuthorityClaimCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/ServerAuthorityClaim'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/authorityclaims/{ServerAuthorityClaimID}:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - Authority Claims
      summary: Get an server authority claim by Id
      description: gets a specific server authority claim
      operationId: getOrganisationServerAuthorityClaimById
      responses:
        "200":
          $ref: '#/components/responses/ServerAuthorityClaim'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - Authority Claims
      summary: Update a server authority claim for the given Id
      description: Updates a given servers authority claim
      operationId: updateOrganisationServerAuthorityClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/ServerAuthorityClaimUpdateRequest'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - Authority Claims
      summary: Delete a server authority claim
      description: Deletes a specific server authority claim
      operationId: deleteOrganisationServerAuthorityClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/ServerAuthorityClaimID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/certifications:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - Certifications
      summary: Get all certifications for given authorisation server
      description: lists all certifications attached to a specific authorisation server
      operationId: getOrganisationAuthorisationServerCertifications
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServerCertifications'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - Certifications
      summary: Post a certification for the given authorisation server
      description: creates a certification record for an authorisation server
      operationId: createOrganisationAuthorisationServerCertification
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationServerCertificationRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationServerCertification'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/certifications/{AuthorisationServerCertificationId}:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - Certifications
      summary: Get a certification by Id
      description: get specific authorisation server certification
      operationId: getOrganisationAuthorisationServerCertificationsById
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServerCertification'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - Certifications
      summary: Update the given certification
      description: updates a specific authorisation server certification
      operationId: updateOrganisationAuthorisationServerCertificationsById
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationServerCertificationRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationServerCertification'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - Certifications
      summary: Remove a certification with the given certification Id
      description: deletes a certification record from an authorisation server
      operationId: deleteOrganisationAuthorisationServerCertificationsById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/AuthorisationServerCertificationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/familystatus:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - API Resources
      summary: Get an authorisation server API resource by Id and returns the latest family status
      description: refreshes the family status of all api resources attached to this authorisation server
      operationId: refreshOrganisationAuthorisationServerApiResourceFamilyStatus
      responses:
        "200":
          $ref: '#/components/responses/ApiResources'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/sso-configuration:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Retrieves all instances of sso configuration for a given authorisation server.
      description: '''Retrieves all instances of sso configuration for a given authorisation server. While a server is unlikely to have multiple in production, it can be a useful mechanism for deprecating an old service'''
      operationId: getAllAuthorisationServerSsoConfiguration
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationObjectPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Creates an instance of sso configuration for a given authorisation server.
      description: '''Creates an instance of sso configuration for a given authorisation server. When combined with an approved `SSO Configuration Version` the subject authorisation server is able to act as an SSO provider to the platform'''
      operationId: createAuthorisationServerSsoConfiguration
      requestBody:
        $ref: '#/components/requestBodies/SsoConfigurationCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/SsoConfigurationObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/sso-configuration/{ssoConfigurationId}:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Retrieves a specific instance of sso configuration for a given authorisation server.
      description: '''Retrieves a specific instance of sso configuration for a given authorisation server'''
      operationId: getAuthorisationServerSsoConfiguration
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationObject'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Updates a specific instance of sso configuration for a given authorisation server.
      description: '''Updates a specific instance of sso configuration for a given authorisation server.'''
      operationId: updateAuthorisationServerSsoConfiguration
      requestBody:
        $ref: '#/components/requestBodies/SsoConfigurationUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Deletes a specific instance of sso configuration for a given authorisation server.
      description: '''Deletes a specific instance of sso configuration for a given authorisation server. Only possible for authorisation servers who have never had any approved configuration versions. For servers that have historically had approved configuration versions deletion is no longer possible and instead the resource should be deactivated '''
      operationId: deleteAuthorisationServerSsoConfiguration
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/SsoConfigurationIdPathParameter'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/sso-configuration/{ssoConfigurationId}/versions:
    get:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Retrieves all historical configuration of a given sso configuration for a given authorisation server.
      description: '''Retrieves all historical configuration of a given sso configuration for a given authorisation server. The response will by default by ordered by version in descending order '''
      operationId: getAllAuthorisationServerSsoConfigurationVersions
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/ApprovalFlowStatusEnumQueryParameter'
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationVersionObjectPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Creates a new version of sso configuration for a given authorisation server.
      description: '''Creates a new version of sso configuration for a given sso configured authorisation server. The new version will need approval before being considered active. A newly created unapproved version is suspended until approval.'''
      operationId: createAuthorisationServerSsoConfigurationVersion
      requestBody:
        $ref: '#/components/requestBodies/SsoConfigurationVersionCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/SsoConfigurationVersionObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/SsoConfigurationIdPathParameter'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  ? /organisations/{OrganisationId}/authorisationservers/{AuthorisationServerId}/sso-configuration/{ssoConfigurationId}/versions/{versionId}
  : get:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Retrieves a specific version of sso configuration for a given sso configured authorisation server.
      description: '''Retrieves a specific version of sso configuration for a given sso configured authorisation server'''
      operationId: getAuthorisationServerSsoConfigurationVersion
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationVersionObject'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Updates a specific instance of sso configuration for a given authorisation server.
      description: '''Updates a specific version of configuration for a given sso enabled authorisation server. Once approved, changes to any field beyond status are no longer possible. Approval of a configuration version will set the status of a prior version to suspended automatically. Setting any approved version to active status suspends the currently active version. Only approved versions may be active. '''
      operationId: updateAuthorisationServerSsoConfigurationVersion
      requestBody:
        $ref: '#/components/requestBodies/SsoConfigurationVersionUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/SsoConfigurationVersionObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authorisation Servers
        - SSO
      summary: Deletes a specific version of configuration for a given sso-enabled authorisation server.
      description: '''Deletes a specific version of sso configuration for a given sso-enabled authorisation server. Only possible for versions that are unapproved. For approved versions, deactivate instead.'''
      operationId: deleteAuthorisationServerSsoConfigurationVersion
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorisationServerId'
      - $ref: '#/components/parameters/SsoConfigurationIdPathParameter'
      - $ref: '#/components/parameters/SsoConfigurationVersionIdPathParameter'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authority-configuration:
    post:
      tags:
        - Organisations
      summary: Configures a given organisation as an authority
      description: Configures a given organisation to be able to act as an authority
      operationId: createOrganisationAuthorityConfiguration
      requestBody:
        $ref: '#/components/requestBodies/AuthorityCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorityObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authority-configuration/{AuthorityId}:
    get:
      tags:
        - Organisations
      summary: Retrieves the authority configuration for a given organisation
      description: Retrieves the authority configuration for a given organisation
      operationId: getOrganisationAuthorityConfiguration
      responses:
        "200":
          $ref: '#/components/responses/AuthorityObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
      summary: Updates a given organisations authority configuration
      description: Updates the information of a given organisations authority configuration
      operationId: updateOrganisationAuthorityConfiguration
      requestBody:
        $ref: '#/components/requestBodies/AuthorityUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorityObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/AuthorityId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorityclaims:
    get:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
      summary: Get the authority claims for the given organisation
      description: get all authorisation domain roles an organisation has made claim to
      operationId: getOrganisationAuthorityClaims
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainRoleClaims'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
      summary: Post an authority claim
      description: create a mapping between an organisation and an authorisation domain role
      operationId: createOrganisationAuthorityClaim
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationAuthorityDomainRoleClaimCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationAuthorityDomainRoleClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorityclaims/{OrganisationAuthorityClaimId}:
    get:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
      summary: Get an authority claim by Id
      description: get a specific authority claim object
      operationId: getOrganisationAuthorityClaimById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainRoleClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
      summary: Update an organisation authority domain role claim for the given Id
      description: You can only add unique technical identifiers, nothing else can be updated
      operationId: updateOrganisationAuthorityDomainRoleClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationAuthorityDomainRoleClaimUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainRoleClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
      summary: Delete an authority claim
      description: Deactivates a mapping between an organisation and an authorisation domain role
      operationId: deleteOrganisationAuthorityClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/OrganisationAuthorityClaimId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorityclaims/{OrganisationAuthorityClaimId}/authorisations:
    get:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
        - Authority Claims Authorisations
      summary: Get an authority claims authorisations
      description: gets all authorisations connecting to an authority claim
      operationId: getOrganisationAuthorityClaimAuthorisations
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityClaimAuthorisations'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
        - Authority Claims Authorisations
      summary: Post an authority claims authorisations
      description: creates a new authority claim authorisation
      operationId: createOrganisationAuthorityClaimAuthorisation
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationAuthorityClaimAuthorisationRequest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationAuthorityClaimAuthorisation'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/OrganisationAuthorityClaimId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authorityclaims/{OrganisationAuthorityClaimId}/authorisations/{OrganisationAuthorisationId}:
    get:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
        - Authority Claims Authorisations
      summary: Get a claim authorisation
      description: gets a specific authority claim authorisation
      operationId: getOrganisationAuthorityClaimAuthorisationById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityClaimAuthorisation'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    delete:
      tags:
        - Organisations
        - Authority Claims
        - Authority Domain Claims
        - Authorisation Domain Roles
        - Authorisation Domains
        - Authorities
        - Authority Claims Authorisations
      summary: Remove an authorisation from authority claims
      description: deletes an authority claim authorisation
      operationId: deleteOrganisationAuthorityClaimAuthorisationById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/OrganisationAuthorityClaimId'
      - $ref: '#/components/parameters/OrganisationAuthorisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authoritydomainclaims:
    get:
      tags:
        - Organisations
        - Authority Domain Claims
        - Authorisation Domains
        - Authorities
      summary: Get the authority domain claims for the given organisation
      description: get all authority domains claimed by this organisation
      operationId: getOrganisationAuthorityDomainClaims
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainClaimsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Authority Domain Claims
        - Authorisation Domains
        - Authorities
      summary: Post an authority domain claim
      description: creates a new mapping between an authority / authorisation domain mapping and an organisation
      operationId: createOrganisationAuthorityDomainClaim
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationAuthorityDomainClaimCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationAuthorityDomainClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/authoritydomainclaims/{OrganisationAuthorityDomainClaimId}:
    get:
      tags:
        - Organisations
        - Authority Domain Claims
        - Authorisation Domains
        - Authorities
      summary: Get an authority domain claim by Id
      description: gets a specific authority domain claim
      operationId: getOrganisationAuthorityDomainClaimById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Authority Domain Claims
        - Authorisation Domains
        - Authorities
      summary: Update an authority domain claim by Id
      description: updates the details of an organisations claim to an authority / authorisation domain mapping
      operationId: updateOrganisationAuthorityDomainClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/OrganisationAuthorityDomainClaimUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationAuthorityDomainClaimObject'
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Authority Domain Claims
        - Authorisation Domains
        - Authorities
      summary: Deactivate an authority domain claim by Id
      description: deactivate an organisations claim to an authority / authorisation domain mapping
      operationId: deleteOrganisationAuthorityDomainClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/OrganisationAuthorityDomainClaimId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/certificates:
    get:
      tags:
        - Organisations
        - Certificates
      summary: Get the certificates for the given organisation
      description: get all certificates attached to the specified organisation
      operationId: getOrganisationCertificates
      parameters:
        - $ref: '#/components/parameters/AlgFilter'
        - $ref: '#/components/parameters/UseFilter'
        - $ref: '#/components/parameters/X5tHashS256Filter'
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKeys'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
  /organisations/{OrganisationId}/certificates/{OrganisationCertificateType}:
    get:
      tags:
        - Organisations
        - Certificates
      summary: Get the certificates of the given OrganisationCertificateType for the given organisation
      description: get all organisation certificates of a specific type
      operationId: getOrganisationCertificatesByType
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKeys'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Certificates
      summary: Store or create a new certificate of the given OrganisationCertificateType for the given organisation
      description: create an organisation certificate
      operationId: createOrganisationCertificate
      requestBody:
        $ref: '#/components/requestBodies/CSROrKey'
      responses:
        "201":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/OrganisationCertificateType'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/certificates/kid/{CertificateOrKeyId}:
    get:
      tags:
        - Organisations
        - Certificates
      summary: Retrieve a certificate with the given CertificateOrKeyId
      description: get a specific organisation certificate
      operationId: getOrganisationCertificateById
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Certificates
      summary: Revoke or remove a certificate with the given CertificateOrKeyId providing a revoke reason
      description: revokes an organisation level certificate and allows a revocation reason to be specified
      operationId: updateOrganisationCertificateById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AmendCertificateRequest'
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/CertificateOrKeyId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/conformancetest:
    post:
      tags:
        - Organisations
        - Conformance Suite
      summary: Create and execute a Conformance Suite test plan for the given organisation
      description: creates and runs a conformance suite test based on the configuration document
      operationId: createConformanceSuiteRunByOrganisationId
      requestBody:
        $ref: '#/components/requestBodies/OrganisationConformanceTest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationConformanceTestResult'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/contacts:
    get:
      tags:
        - Organisations
        - Contacts
      summary: Get the contacts for the given organisation
      description: get all contacts for an organisations
      operationId: getOrganisationContacts
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/ContactsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Contacts
      summary: Post a contact for the given organisation
      description: creates a contact for an organisation
      operationId: createOrganisationContact
      requestBody:
        $ref: '#/components/requestBodies/ContactRequest'
      responses:
        "201":
          $ref: '#/components/responses/Contact'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/contacts/{ContactId}:
    get:
      tags:
        - Organisations
        - Contacts
      summary: Get a contact by Id
      description: get a specific contact
      operationId: getOrganisationContactById
      responses:
        "200":
          $ref: '#/components/responses/Contact'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Contacts
      summary: Update the contacts for the given organisation
      description: udpate a specific contact
      operationId: updateOrganisationContactById
      requestBody:
        $ref: '#/components/requestBodies/ContactRequest'
      responses:
        "200":
          $ref: '#/components/responses/Contact'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Contacts
      summary: Remove a contact in an organisation with the given contact id
      description: delete a specific contact
      operationId: deleteOrganisationContactById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/ContactId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/documents:
    get:
      tags:
        - Organisations
      summary: Get all documents for a given organisation
      description: Get all regulatory documents for an organisation
      operationId: getOrganisationDocuments
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationDocuments'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Organisations
      summary: Create a document for an organisation
      description: Create a new regulatory document for a given organisation
      operationId: createOrganisationDocument
      requestBody:
        $ref: '#/components/requestBodies/OrganisationDocumentRequest'
      responses:
        "201":
          $ref: '#/components/responses/OrganisationDocument'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/documents/{DocumentID}:
    get:
      tags:
        - Organisations
      summary: Get a given document for an organisation
      description: Get a specific regulatory document for an organisation
      operationId: getOrganisationDocumentById
      responses:
        "200":
          $ref: '#/components/responses/OrganisationDocument'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Organisations
      summary: Amend the given organisation document
      description: Updates an organisation regulatory document
      operationId: updateOrganisationDocumentById
      requestBody:
        $ref: '#/components/requestBodies/OrganisationDocumentUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/OrganisationDocument'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
      summary: Delete an organisation document
      description: deletes a specific organisation document
      operationId: deleteOrganisationDocumentById
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/DocumentID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/ess/initiatesigning:
    post:
      tags:
        - Organisations
        - Docusign
      summary: This API initiates ESS signing process by an org admin
      description: initiate signing of a tnc document
      operationId: initiateOrganisationTncSigning
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/EssSignRequest'
      responses:
        "200":
          $ref: '#/components/responses/OrgTermsAndConditionsDetail'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /organisations/{OrganisationId}/ess/reissue/{ExternalSigningServiceEnvelopeId}:
    post:
      tags:
        - Organisations
        - Docusign
      summary: This API marks the current envelope as reissued and allows a new one to be started
      description: mark envelope as reissued
      operationId: reissueEnvelope
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ExternalSigningServiceEnvelopeId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/EssPollResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /organisations/{OrganisationId}/key-material:
    get:
      summary: List key material for a given organisation
      description: Retrieves all key material available for use within the organisation
      operationId: listOrganisationKeyMaterial
      parameters:
        - $ref: '#/components/parameters/AlgFilter'
        - $ref: '#/components/parameters/UseFilter'
        - $ref: '#/components/parameters/X5tHashS256Filter'
        - $ref: '#/components/parameters/AttachedToFilter'
        - $ref: '#/components/parameters/HasPurposeFilter'
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:software:organisation:cert:management
    post:
      summary: Creates new key material under an organisation
      description: Creates new key material under a given organisation making it available for assignment to sub-resources
      operationId: createOrganisationKeyMaterial
      requestBody:
        $ref: '#/components/requestBodies/KeyMaterialCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/KeyMaterialObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software:organisation:cert:management
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
  /organisations/{OrganisationId}/key-material/{KeyMaterialID}:
    get:
      summary: Get key material for a given organisation
      description: Retrieves a specific item of key material available for use within the organisation
      operationId: getOrganisationKeyMaterial
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:software:organisation:cert:management
    put:
      summary: Updates given key material
      description: Updates a specified key material object available under a given organisation
      operationId: updateOrganisationKeyMaterial
      requestBody:
        $ref: '#/components/requestBodies/KeyMaterialUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software:organisation:cert:management
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/KeyMaterialID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
  /organisations/{OrganisationId}/key-material/{KeyMaterialID}/attachments:
    get:
      summary: List attachments for a given item of key material
      description: Retrieves all attachments associated with a specific item of key material under the organisation
      operationId: listOrganisationKeyMaterialAttachments
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialAttachmentPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:software:organisation:cert:management
    post:
      summary: Create a new attachment for an item of key material
      description: Attaches a specific item of key material to an entity under the given organisation
      operationId: createOrganisationKeyMaterialAttachment
      requestBody:
        $ref: '#/components/requestBodies/KeyMaterialAttachmentCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/KeyMaterialAttachmentObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software:organisation:cert:management
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/KeyMaterialID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
  /organisations/{OrganisationId}/key-material/{KeyMaterialID}/attachments/{KeyMaterialAttachmentID}:
    get:
      summary: Get a key material attachment for a given organisation
      description: Retrieves a specific attachment of an item of key material under the organisation
      operationId: getOrganisationKeyMaterialAttachment
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialAttachmentObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
            - directory:software:organisation:cert:management
    put:
      summary: Update a given key material attachment
      description: Updates a specified key material attachment under the given organisation
      operationId: updateOrganisationKeyMaterialAttachment
      requestBody:
        $ref: '#/components/requestBodies/KeyMaterialAttachmentUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/KeyMaterialAttachmentObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software:organisation:cert:management
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/KeyMaterialID'
      - $ref: '#/components/parameters/KeyMaterialAttachmentID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
  /organisations/{OrganisationId}/softwarestatements:
    get:
      tags:
        - Organisations
        - Software Statements
      summary: Get all software statements for the given organisation
      description: get all software statements
      operationId: getOrganisationSoftwareStatements
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/SoftwareStatementStatus'
        - name: filterBy
          in: query
          description: Filters software statements by the provided value doing a best-case match against client name and software statement ID
          required: false
          schema:
            type: string
            default: ""
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatements'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Software Statements
        - OpenID Provider
      summary: Create a software statement
      description: Creates a software statement. Note that you can add roles as part of this update for a more convenient batch addition
      operationId: createOrganisationSoftwareStatement
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/SoftwareStatementRequest'
      responses:
        "201":
          $ref: '#/components/responses/SoftwareStatementResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}:
    get:
      tags:
        - Organisations
        - Software Statements
      summary: Get a specific software statement
      description: gets a specific software statements
      operationId: getOrganisationSoftwareStatementById
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatement'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Software Statements
        - OpenID Provider
      summary: Update a software statement by Id.
      description: Can update all fields till an SSA is generated for statement. This is reflected on the 'locked' field. Once locked, you can only add new 'redirect uris'. Can also suspend/unsuspend a software statement with the status field. Note you cannot update roles via a PUT by design
      operationId: updateOrganisationSoftwareStatementById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/SoftwareStatementUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatementResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    delete:
      tags:
        - Organisations
        - Software Statements
        - OpenID Provider
      summary: Delete or revoke a software statement with the given softwarestatementID
      description: revokes a software statement and sets the status to inactive
      operationId: deleteOrganisationSoftwareStatementById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/assertion:
    get:
      tags:
        - Organisations
        - Software Statements
        - Assertion
      summary: Get a Software Statement Assertion for the given SoftwareStatementID.
      description: |
        The response body is a signed JWT and the values found in the header and the payload of the SSA are specified below
        # Terminology
          This specification uses the terms "access token", "authorization code", "authorization endpoint", "authorization grant", "authorization server", "client", "client identifier", "client secret", "grant type", "protected resource", "redirection URI", "refresh token", "resource owner", "resource server", "response type", and "token endpoint" defined by OAuth 2.0 [RFC6749] and uses the term "Claim" defined by JSON Web Token (JWT) [RFC7519].
          * __Organisation__ -- An organisation managing customer accounts (and operating banking APIs).
          * __Primary Technical Contact__ -- The person at the org who creates an SSA and invokes a registration mechanism. This is an example of an [RFC7591] Client Developer.
          * __Organisation ID__ -- The unique identifier for each directory participant.
          * __Role__ -- An implementation of an authority; acts as an Identity Provider, certificate authority, and registry governing the participants in the UK API scheme.
          * __Registration Endpoint__ -- OAuth 2.0 & [RFC7591] compliant endpoint
          * __Software Statement Assertion (SSA)__ -- An implementation of an [RFC7591] software statement, signed by the Directory.
          * __Trusted Third Party__ -- An organization working to initiate payments or consume account information.
          * __Client Software__ -- software implementing an OAuth2 client, interacting with an org's registration endpoint.
        # Software Statement Assertion (SSA)
          The SSA is a JSON Web Token (JWT) containing client metadata about an instance of client software. The JWT is issued and signed by the Directory.
        ## SSA Payload
          The payload of the SSA MUST be a compliant software statement according to [RFC7591]. The SSA MUST also be a compliant JWT according to [RFC7519]. The following metadata profiles the metadata in [RFC7591] and [RFC7519]:
          | Metadata | Description | Source Specification |
          |----------|-------------|----------------------|
          |`softwareid`|Unique Identifier for Client Software|[RFC7591]|
          |`iss`|SSA Issuer|[RFC7519]|
          |`iat`|Time SSA issued|[RFC7519]|
          |`jti`|JWT ID|[RFC7519]|
          The following software metadata is additionally defined for this profile:
          |Metadata |Description |Field Size |Default values |
          |---------|------------|-----------|---------------|
          |`SoftwareClientId`|The Client ID Registered in Directory services used to access directory resources|Base62 GUID (22 chars)| |
          |`SoftwareClientDescription`|Human-readable detailed description of the client|Max256Text| |
          |`SoftwareClientName`|Human-readable Software statement Name|Max40Text| |
          |`SoftwareClientUri`|The website or resource root uri|Max256Text| |
          |`SoftwareVersion`|The version number of the software should an org choose to register and / or maintain it|decimal| |
          |`SoftwareEnvironment`|Requested additional field to avoid certificate check|Max256Text| |
          |`softwareJwksUri`|Contains all active signing and network certs for the software|Max256Text| |
          |`SoftwareJwksRevokedUri`|Contains all revoked signing and network certs for the software|Max256Text| |
          |`SoftwareLogoUri`|Link to the Org logo. |Max256Text| |
          |`SoftwareMode`|Org Requested additional field to indicate that this software is `Test` or `Live` the default is `Live`. Impact and support for `Test` software is up to the Org.|Max40Text| |
          |`SoftwareOnBehalfOf`|A reference to fourth party organisation resource on the Directory if the registering app is acting on behalf of another.|Max40Text| |
          |`SoftwarePolicyUri`|A link to the software's policy page|Max256Text| |
          |`SoftwareRedirectUris`|Registered client callback endpoints as registered with RTS|A string array of Max256Text items|
          |`SoftwareAuthorityClaims`|A multi value list of roles that this software is authorized to perform.|A string array of authority claims items| |
          |`SoftwareTosUri`|A link to the software's terms of service page|Max256Text| |
          The following Organisational metadata is defined for this profile:
          |Metadata |Description |Field Size | Default values |
          |---------|------------|-----------|----------------|
          |`OrganisationAuthorityClaims`|Claims object for the organisation detailing all the authorisation roles| |
          |`OrgStatus`|Included to cater for voluntary withdrawal from directory scenarios|`Active`, `Revoked`, or `Withdrawn`| |
          |`OrgId`|The Unique Organisation Id.|Max35Text| |
          |`OrgName`|Legal Entity Identifier or other known organisation name|Max140Text| |
          |`OrgContacts`|JSON array of objects containing a triplet of name, email, and phone number|Each item Max256Text| |
          |`OrgJwksUri`|Contains all active signing and network certs for the organisation|Max256Text| |
          |`OrgJwksRevokedUri`|Contains all revoked signing and network certs for the organisation|Max256Text| |
        ## SSA header
          The SSA header MUST comply with [RFC7519].
          |Metadata |Description |Comments |
          |---------|------------|---------|
          |`typ`|MUST be set to `JWT`| |
          |`alg`|MUST be set to `ES256` or `PS256` note the majority of ecosystems use RSA keys so support for PS256 is critical| |
          |`kid`|The kid will be kept the same as the `x5t` parameter. (X.509 Certificate SHA-1 Thumbprint) of the signing certificate.| |
          ### Example SSA
          The elements defined in the software statement will consist of the following values.
          *Note that there are inconsistent applications of booleans or "Active" strings in the current data model.*
          *Note that there are inconsistent applications of status flags case sensitivity.*
          *The attributes required to be displayed by Orgs.*
        ```
        {
          "typ": "JWT",
          "alg": "ES256",
          "kid": "ABCD1234"
        }
        {
          "iss": "Example Ltd",
          "iat": 1492756331,
          "jti": "id12345685439487678",
          "SoftwareEnvironment": "production",
          "SoftwareMode": "live",
          "SoftwareId": "65d1f27c-4aea-4549-9c21-60e495a7a86f",
          "SoftwareClientId": "xClient Unique ID",
          "SoftwareClientName": "Amazon Prime Movies",
          "SoftwareClientDescription": "Amazon Prime Movies is a moving streaming service",
          "SoftwareVersion": "2.2",
          "SoftwareClientUri": "https://prime.amazon.com",
          "SoftwareRedirectUris": [
            "https://prime.amazon.com/cb",
            "https://prime.amazon.co.uk/cb"
          ],
          "SoftwareAuthorityClaims": {
            "AuthorisationDomains": [
              {
                "AuthorisationDomain": "PDS2",
                "Roles": [
                  {
                    "Role": "ASPSP",
                    "Status": "Active"
                  }
                ]
              },
              {
                "AuthorisationDomain": "Pensions",
                "Roles": [
                  {
                    "Role": "TPP",
                    "Status": "Active"
                  },
                  {
                    "Role": "ASPSP",
                    "Status": "Active"
                  }
                ]
              }
            ]
          },
          "OrganisationAuthorityClaims": [
            {
              "AuthorityId": "123",
              "RegistrationId": "111111",
              "AuthorisationDomains": [
                {
                  "AuthorisationDomain": "PDS2",
                  "Roles": [
                    {
                      "Role": "ASPSP",
                      "Authorisations": [
                        {
                          "Status": "Active",
                          "MemberState": "GB"
                        },
                        {
                          "Status": "Active",
                          "MemberState": "IL"
                        }
                      ]
                    },
                    {
                      "Role": "AISP",
                      "Authorisations": [
                        {
                          "Status": "Active",
                          "MemberState": "GB"
                        },
                        {
                          "Status": "Active",
                          "MemberState": "IL"
                        }
                      ]
                    }
                  ]
                },
                {
                  "AuthorisationDomain": "Pensions",
                  "Roles": [
                    {
                      "Role": "ASPSP",
                      "Authorisations": [
                        {
                          "Status": "Active",
                          "MemberState": "GB"
                        },
                        {
                          "Status": "Active",
                          "MemberState": "IL"
                        }
                      ]
                    },
                    {
                      "Role": "TPP",
                      "Authorisations": [
                        {
                          "Status": "Active",
                          "MemberState": "GB"
                        },
                        {
                          "Status": "Active",
                          "MemberState": "IL"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ],
          "SoftwareLogoUri": "https://mycompanyprofile.com/logo.png",
          "OrgStatus": "Active",
          "OrgId": "My Company's ID",
          "OrgName": "Registered Name",
          "OrgContacts": [
            {
              "name": "contact name",
              "email": "contact@contact.com",
              "phone": "+447890130558",
              "type": "business"
            },
            {
              "name": "contact name",
              "email": "contact@contact.com",
              "phone": "+447890130558",
              "type": "technical"
            }
          ],
          "OrgJwksUri": "https://jwks.raidiam.ts.uk/org_id/org_id.jkws",
          "OrgJwksRevokedUri": "https://jwks.raidiam.ts.uk/org_id/revoked/org_id.jkws",
          "SoftwareJwksUri": "https://jwks.raidiam.ts.uk/org_id/software_id.jkws",
          "SoftwareJwksRevokedUri": "https://jwks.raidiam.ts.uk/org_id/revoked/software_id.jkws",
          "SoftwarePolicyUri": "https://myapp.com/policy.html",
          "SoftwareTosUri": "https://myapp.com/tos.html",
          "SoftwareOnBehalfOf": "A Mediator Ltd"
        }
        {
          Signature
        }
        ```
        # Automated Client Registration
        An organisation MAY use automated client registration to submit an SSA in exchange for client credentials for use as a client against an OAuth 2.0 Authorization Server. It is RECOMMENDED for Orgs to support the automated client registration mechanism. A large number of claims that OpenID Connect OPs could support as part of the RFC7591 request are detailed [https://openid.net/specs/openid-connect-registration-1_0.html#ClientMetadata](https://openid.net/specs/openid-connect-registration-1_0.html#ClientMetadata) and should be followed if not explicitly referenced in the Software Statement Assertion claim set.
        ## Request Validation
        Prior to issuing a client registration response, the Orgs MUST perform the following checks
        * The Org SHOULD check whether the initiated TLS connection is the same Org as listed in the SSA.
        * In the case where a gateway or other piece of infrastructure pre-terminates the MATLS channel in front of the registration endpoint, the certificate used to initiate the connection or some part of that certificate (such as DN & Issuer) SHOULD be made available to the Org for validation against the claims in the SSA.
        * The registration request MUST be signed with a key contained in the JWKS referenced in the SSA included with the request. This ensures that a holder-of-key proof-of-possession is performed proving that the app was the originally intended recipient of the SSA when the directory services issued it.
        * The SSA MUST be validated according to [RFC7519], including validation of the signature and validity window.
        JWT signature must be validated, this involves retrieving the jwks keyset for both the directory and the app. The keystore location will be published as part of the directory specification, The App's will be included in the software statement.
        ### SSA Lifetime
        The SSA's Lifetime / Validity period is not defined by RTS. Orgs in the directory ecosystem are required to implement pragmatic time ranges in which to accept an SSA. For example, an Org that has implemented Dynamic Client Registration may choose to accept SSA's that were issued no earlier than 1 minute prior to their presentation however Orgs that only support manual registration may need to accept SSAs that were issued 30 minutes prior as the elapsed time period between generation and use between these two flows is expected to differ significantly.
      operationId: getOrganisationSoftwareStatementAssertion
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatementAssertion'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/authorityclaims:
    get:
      tags:
        - Organisations
        - Software Statements
        - Authority Claims
        - Software Authority Claims
      summary: Get the authority claims for the given software statement
      description: gets all authority claims attached to this software statement
      operationId: getOrganisationSoftwareStatementAuthorityClaims
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/SoftwareAuthorityClaims'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Software Statements
        - Authority Claims
        - Software Authority Claims
        - OpenID Provider
      summary: Post an authority claim for a software statement
      description: attaches an authority claim to a software statement from the list of authority claims attached to the organisation
      operationId: createOrganisationSoftwareStatementAuthorityClaim
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/SoftwareAuthorityClaimCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/SoftwareAuthorityClaim'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/authorityclaims/{SoftwareAuthorityClaimId}:
    get:
      tags:
        - Organisations
        - Software Statements
        - Authority Claims
        - Software Authority Claims
      summary: Get an authority claim by Id
      description: gets a specific software authority claim
      operationId: getOrganisationSoftwareStatementAuthorityClaimById
      responses:
        "200":
          $ref: '#/components/responses/SoftwareAuthorityClaim'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Software Statements
        - Authority Claims
        - Software Authority Claims
        - OpenID Provider
      summary: Update an authority claim for the given Id
      description: You can edit the claim till an SSA is generated on the software statement. Once generated, you cannot deactivate the claim. If parent software statement is revoked/deactivated then this claim cannot be activated
      operationId: updateOrganisationSoftwareStatementAuthorityClaimById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/SoftwareAuthorityClaimUpdateRequest'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/SoftwareAuthorityClaimId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/certificates:
    get:
      tags:
        - Organisations
        - Software Statements
        - Certificates
      summary: Get certificates for the given software statement
      description: gets all certificates related to the software statement
      operationId: getOrganisationSoftwareStatementCertificates
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKeys'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageSort'
      - name: showOrgLevelCertificates
        in: query
        description: Will return the organisation level certificates as well
        schema:
          type: boolean
          default: false
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/certificates/{SoftwareStatementCertificateOrKeyType}:
    post:
      tags:
        - Organisations
        - Software Statements
        - Certificates
      summary: Add a key or create a new certificate for the given software statement
      description: creates a new key or certificate on the specified software statement
      operationId: createOrganisationSoftwareStatementCertificate
      requestBody:
        $ref: '#/components/requestBodies/CSROrKey'
      responses:
        "201":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/SoftwareStatementCertificateOrKeyType'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  ? /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/certificates/{SoftwareStatementCertificateOrKeyType}/{CertificateOrKeyId}
  : get:
      tags:
        - Organisations
        - Software Statements
        - Certificates
      summary: Get the certificate of the given type and ID for the given software statement
      description: gets a specific certificate attached to a software statement
      operationId: getOrganisationSoftwareStatementCertificateById
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Software Statements
        - Certificates
      summary: Update a software statement certificate with the given CertificateOrKeyId e.g. revoke reason
      description: revokes a software statement certificate with a specified reason
      operationId: updateOrganisationSoftwareStatementCertificateById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AmendCertificateRequest'
      responses:
        "200":
          $ref: '#/components/responses/CertificatesOrKey'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/SoftwareStatementCertificateOrKeyType'
      - $ref: '#/components/parameters/CertificateOrKeyId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/certifications:
    get:
      tags:
        - Organisations
        - Software Statements
        - Certifications
      summary: Get all certifications for given Software Statement.
      description: get all certifications for the software statement
      operationId: getOrganisationSoftwareStatementCertifications
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatementCertifications'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Organisations
        - Software Statements
        - Certifications
      summary: Post a certification for the given Software Statement
      description: creates a new certification record for the software statement
      operationId: createOrganisationSoftwareStatementCertification
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/SoftwareStatementCertificationRequest'
      responses:
        "201":
          $ref: '#/components/responses/SoftwareStatementCertification'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/certifications/{SoftwareStatementCertificationId}:
    get:
      tags:
        - Organisations
        - Software Statements
        - Certifications
      summary: Get a certification by Id
      description: Get a certification by Id
      operationId: getOrganisationSoftwareStatementCertificationById
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatementCertification'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Organisations
        - Software Statements
        - Certifications
      summary: Update the given certification
      description: updates the state of a software statement certification
      operationId: updateOrganisationSoftwareStatementCertificationById
      requestBody:
        $ref: '#/components/requestBodies/SoftwareStatementCertificationRequest'
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatementCertification'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Organisations
        - Software Statements
        - Certifications
      summary: Remove a certification with the given certification Id
      description: deletes a software statement certification
      operationId: deleteOrganisationSoftwareStatementCertificationById
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/SoftwareStatementCertificationId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/custom-claims:
    get:
      summary: Get a list of custom claims for the given Software Statement.
      description: Retrieve a list of custom claims associated with a specific software statement.
      operationId: getOrganisationSoftwareStatementCustomClaims
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/CustomClaimList'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    post:
      summary: Create a custom claim for the given Software Statement.
      description: Create a new custom claim for a specific software statement.
      operationId: createOrganisationSoftwareStatementCustomClaim
      requestBody:
        $ref: '#/components/requestBodies/CustomClaimCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/CustomClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/custom-claims/{CustomClaimID}:
    get:
      summary: Get a custom claim for the given Software Statement.
      description: Retrieve a specific custom claim associated with a specific software statement.
      operationId: getOrganisationSoftwareStatementCustomClaim
      responses:
        "200":
          $ref: '#/components/responses/CustomClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    put:
      summary: Update a custom claim for the given Software Statement.
      description: Modify an existing custom claim for a specific software statement.
      operationId: updateOrganisationSoftwareStatementCustomClaim
      requestBody:
        $ref: '#/components/requestBodies/CustomClaimUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/CustomClaimObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    delete:
      summary: Delete a custom claim for the given Software Statement.
      description: Remove a custom claim associated with a specific software statement.
      operationId: deleteOrganisationSoftwareStatementCustomClaim
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/CustomClaimID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/metadata:
    get:
      tags:
        - Organisations
        - Software Statements
        - Authority Claims
        - Authorisation Domain Role Metadata
        - Software Statement Metadata
      summary: Get all metadata associated with a software statement
      description: get all metadata from the roles attached to a software statement
      operationId: getOrganisationSoftwareStatementMetadata
      parameters:
        - name: type
          in: query
          description: Get all metadata of a specific type
          required: false
          schema:
            type: string
            default: ""
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/MetadataList'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/SoftwareStatementId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /organisations/{OrganisationId}/softwarestatements/{SoftwareStatementId}/unlock:
    put:
      tags:
        - Organisations
        - Software Statements
      summary: Unlock a software statement.
      description: Ecosystem administrator should be able to unlock a software statement.
      operationId: unlockOrganisationSoftwareStatementById
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SoftwareStatementId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/UnlockSoftwareStatementRequest'
      responses:
        "200":
          $ref: '#/components/responses/SoftwareStatement'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
  /organisations/{OrganisationId}/tnchistory:
    get:
      tags:
        - Organisations
      summary: Get all TnC data of the given organisation
      description: returns all tnc data for a specific organisation
      operationId: getTncHistoryByOrganisationId
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/OrgTermsAndConditionsPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
  /references/apifamilies:
    get:
      tags:
        - Reference Data
        - Api Families
      summary: Returns all api families configured at a reference data level
      description: get all api families
      operationId: getApiFamilies
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/ApiFamilyName'
        - $ref: '#/components/parameters/ApiFamilyConformanceTest'
        - $ref: '#/components/parameters/ApiFamilyVersion'
        - $ref: '#/components/parameters/ApiFamilyStatus'
      responses:
        "200":
          $ref: '#/components/responses/ApiFamiliesPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Api Families
      summary: Create a new api family
      description: Creates a new api family configuration
      operationId: createApiFamily
      requestBody:
        $ref: '#/components/requestBodies/ApiFamilyRequest'
      responses:
        "201":
          $ref: '#/components/responses/ApiFamily'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/apifamilies/{ApiFamilyID}:
    get:
      tags:
        - Reference Data
        - Api Families
      summary: Returns a specific api family configured at a reference data level
      description: get api family
      operationId: getApifamily
      responses:
        "200":
          $ref: '#/components/responses/ApiFamily'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Api Families
      summary: Updates an existing api family
      description: Updates an existing configuration
      operationId: updateApiFamily
      requestBody:
        $ref: '#/components/requestBodies/ApiFamilyUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/ApiFamily'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Api Families
      summary: Delete an existing api family
      description: Delete an existing api family
      operationId: deleteApiFamily
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/ApiFamilyID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/apifamilies/{ApiFamilyID}/conformanceconfigurations:
    get:
      tags:
        - Reference Data
        - Api Families
      summary: Returns all conformance configurations linked to the given api family
      description: get all conformance configurations
      operationId: getConformanceConfigurations
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/ConformanceConfigurationsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Api Families
      summary: Create a new conformance configuration
      description: Creates a new conformance configuration
      operationId: createConformanceConfiguration
      requestBody:
        $ref: '#/components/requestBodies/ConformanceConfigurationRequest'
      responses:
        "201":
          $ref: '#/components/responses/ConformanceConfiguration'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/ApiFamilyID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/apifamilies/{ApiFamilyID}/conformanceconfigurations/{ConformanceConfigurationID}:
    get:
      tags:
        - Reference Data
        - Api Families
      summary: Returns a specific conformance configuration for the given api family
      description: get conformance configuration
      operationId: getConformanceConfiguration
      responses:
        "200":
          $ref: '#/components/responses/ConformanceConfiguration'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Api Families
      summary: Updates an existing conformance configuration
      description: Updates an existing configuration
      operationId: updateConforanceConfiguration
      requestBody:
        $ref: '#/components/requestBodies/ConformanceConfigurationRequest'
      responses:
        "200":
          $ref: '#/components/responses/ConformanceConfiguration'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Api Families
      summary: Delete an existing configuration
      description: Delete an existing configuration
      operationId: deleteConformanceConfiguration
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/ApiFamilyID'
      - $ref: '#/components/parameters/ConformanceConfigurationID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/apifamilies/init:
    post:
      tags:
        - Reference Data
        - Api Families
      summary: Initialize api families in a fresh environment
      description: instantiate api families based on /config/apiresources
      operationId: instantiateApiFamilies
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/authorisationdomainroles:
    get:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Reference data of all authorisation domain roles
      description: get all authorisation domain roles
      operationId: getAuthorisationdomainRoles
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: domainRole
          in: query
          description: Will return authorisation domain roles with data like the provided authorisationDomainRole
          required: false
          schema:
            type: string
            default: ""
        - name: status
          in: query
          description: Will return roles matching the provided status
          required: false
          schema:
            type: string
            default: ""
        - name: domain
          in: query
          description: Will return authorisation domain roles with data like the provided authorisationDomain
          required: false
          schema:
            type: string
            default: ""
        - name: type
          in: query
          description: Will return authorisation domain roles with data like the provided roletype
          required: false
          schema:
            type: string
            default: ""
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainRolesPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
      summary: Reference data of all authorisation domains
      description: get all authorisation domains
      operationId: getAuthorisationDomains
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: domainName
          in: query
          description: Will return authorisation domains with data like the provided authorisationDomainName
          required: false
          schema:
            type: string
            default: ""
        - name: domainRegion
          in: query
          description: Will return authorisation domains with data like the provided authorisationDomainRegion
          required: false
          schema:
            type: string
            default: ""
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Authorisation Domains
      summary: Create an authorisation domain
      description: creates an authorisation domain
      operationId: createAuthorisationDomain
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains/{AuthorisationDomainName}:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
      summary: Get an authorisation domain by Name
      description: gets a specific authorisation domain
      operationId: getAuthorisationDomainByAuthorisationDomainName
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorisation Domains
      summary: Update an authorisation domain by Name
      description: updates an authorisation domain
      operationId: updatesAuthorisationDomainByAuthorisationDomainName
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains/{AuthorisationDomainName}/authorisationdomainroles:
    get:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Reference data of all authorisation domain roles
      description: get all authorisation domain roles
      operationId: getAuthorisationdomainRolesByDomain
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: domainRole
          in: query
          description: Will return authorisation domain roles with data like the provided authorisationDomainRole
          required: false
          schema:
            type: string
            default: ""
        - name: status
          in: query
          description: Will return roles matching the provided status
          required: false
          schema:
            type: string
            default: ""
        - name: domain
          in: query
          description: Will return authorisation domain roles with data like the provided authorisationDomain
          required: false
          schema:
            type: string
            default: ""
        - name: type
          in: query
          description: Will return authorisation domain roles with data like the provided roletype
          required: false
          schema:
            type: string
            default: ""
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainRolesPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Create an authorisation domain role
      description: creates a new authorisation domain role
      operationId: createAuthorisationDomainRoleByDomain
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainRoleRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationDomainRole'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains/{AuthorisationDomainName}/authorisationdomainroles/{AuthorisationDomainRoleIdentifier}:
    get:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Get an authorisation domain role by name
      description: get a specific authorisation domain role
      operationId: getAuthorisationdomainRoleByDomainAndName
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainRole'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Update an authorisation domain role by name
      description: Updates a specific authorisation domain role
      operationId: updateAuthorisationDomainRoleByDomainAndName
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainRoleUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainRole'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Authorisation Domain Roles
      summary: Deactivate an authorisation domain role by Name
      description: deactivates an authorisation domain role
      operationId: deleteAuthorisationDomainRoleByDomainAndName
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains/{AuthorisationDomainName}/authorisationdomainroles/{AuthorisationDomainRoleIdentifier}/metadata:
    get:
      tags:
        - Reference Data
        - Authorisation Domain Role Metadata
      summary: Get metadata associated with an authorisation domain role
      description: get all metadata associated with an authorisation domain role
      operationId: getAuthorisationDomainRoleMetadataByDomain
      parameters:
        - name: type
          in: query
          description: Get all of a specific type of metadata
          required: false
          schema:
            type: string
            default: ""
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/MetadataList'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    post:
      tags:
        - Reference Data
        - Authorisation Domain Role Metadata
      summary: Create a metadata record associated with an authorisation domain role
      description: creates a new metadata object attached to a role. Note this cascades to the client endpoint / directory clients depending on role type
      operationId: createAuthorisationDomainRoleMetadataByDomain
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/MetadataRequest'
      responses:
        "201":
          $ref: '#/components/responses/Metadata'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  ? /references/authorisationdomains/{AuthorisationDomainName}/authorisationdomainroles/{AuthorisationDomainRoleIdentifier}/metadata/{MetadataId}
  : get:
      tags:
        - Reference Data
        - Authorisation Domain Role Metadata
      summary: Get metadata associated with an authorisation domain role
      description: get specific authorisation domain role metadata object
      operationId: getAuthorisationDomainRoleMetadataByIdAndDomain
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/MetadataId'
        - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/Metadata'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:software
            - directory:website
    put:
      tags:
        - Reference Data
        - Authorisation Domain Role Metadata
      summary: Change the status of a metadata object that is associated with an authorisation domain role
      description: update a specific metadata object
      operationId: updateAuthorisationDomainRoleMetadataByIdAndDomain
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/MetadataId'
        - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/MetadataRequest'
      responses:
        "200":
          $ref: '#/components/responses/Metadata'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Authorisation Domain Role Metadata
        - Deprecated
      deprecated: true
      summary: Delete a metadata object that is associated with an authorisation domain role
      description: delete a specific metadata object
      operationId: deleteAuthorisationDomainRoleMetadataByIdAndDomain
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainName'
        - $ref: '#/components/parameters/MetadataId'
        - $ref: '#/components/parameters/AuthorisationDomainRoleIdentifier'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/authorisationdomains/{AuthorisationDomainName}/sub-domains:
    get:
      summary: List all sub-domains
      description: Lists all sub-domains for a given authorisation domain
      operationId: listSubDomains
      responses:
        "200":
          $ref: '#/components/responses/SubDomainList'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      summary: Register a sub domain
      description: Register an existing authorisation domain as a child domain of the subject domain
      operationId: registerSubDomain
      requestBody:
        $ref: '#/components/requestBodies/SubDomainCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/SubDomainObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorisationdomains/{AuthorisationDomainName}/sub-domains/{SubDomainID}:
    get:
      summary: Retrieve a given sub-domain
      description: Retrieves information for a given sub-domain
      operationId: getSubDomain
      responses:
        "200":
          $ref: '#/components/responses/SubDomainObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      summary: Update a sub-domain registration
      description: Updates information on a sub-domain registration
      operationId: updateSubDomain
      requestBody:
        $ref: '#/components/requestBodies/SubDomainUpdateRequest'
      responses:
        "201":
          $ref: '#/components/responses/SubDomainObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/SubDomainID'
      - $ref: '#/components/parameters/AuthorisationDomainName'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorities:
    get:
      tags:
        - Reference Data
        - Authorities
      summary: Reference Data of all authorities
      description: get all authorities
      operationId: getAuthorities
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/OrganisationIdQueryParameter'
        - $ref: '#/components/parameters/Status'
        - name: omitLegacy
          in: query
          description: Filters the response to only include authorities configured under organisations
          required: false
          schema:
            type: boolean
            default: false
        - name: authorityName
          in: query
          description: Will return authorities with names similar to the provided authorityName
          required: false
          schema:
            type: string
            default: ""
        - name: authorityCountry
          in: query
          description: Will return authorities with countries similar to the provided authorityCountry
          required: false
          schema:
            type: string
            default: ""
      responses:
        "200":
          $ref: '#/components/responses/AuthoritiesPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
  /references/authorities/{AuthorityId}:
    get:
      tags:
        - Reference Data
        - Authorities
      deprecated: true
      summary: Get a reference authority by Id
      description: get details of a specific authority
      operationId: getAuthoritiesByAuthorityId
      responses:
        "200":
          $ref: '#/components/responses/AuthorityObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorities
      deprecated: true
      summary: Update a reference authority by Id
      description: updates a specific authority
      operationId: updateAuthorityByAuthorityId
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorityUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorityObject'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorityId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorityauthorisationdomains:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Authorities
        - Authority Domain Mappings
      summary: Reference data of all authority authorisation domain mappings
      description: get all authority authorisation domains mappings
      operationId: getAuthorityAuthorisationDomainMappings
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/AuthorityIdQuery'
        - $ref: '#/components/parameters/AuthorisationDomainIdQuery'
      responses:
        "200":
          $ref: '#/components/responses/AuthorityAuthorisationDomainsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Authorisation Domains
        - Authorities
        - Authority Domain Mappings
      summary: Map an authorisation domain to an authority
      description: creates a new mapping linking an authority to an authorisation domain
      operationId: createAuthorityDomainMappings
      requestBody:
        $ref: '#/components/requestBodies/AuthorityAuthorisationDomainRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorityAuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/authorityauthorisationdomains/{AuthorityAuthorisationDomainId}:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Authorities
        - Authority Domain Mappings
      summary: Get an authority authorisation domain by Id
      description: get a specific mapping between an authority and authorisation domain
      operationId: getAuthorityDomainMappingById
      responses:
        "200":
          $ref: '#/components/responses/AuthorityAuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorisation Domains
        - Authorities
        - Authority Domain Mappings
      summary: Activate an authority authorisation domain mapping by Id
      description: update a mapping between an authority and authorisation domain
      operationId: updateAuthorityDomainMappingById
      requestBody:
        $ref: '#/components/requestBodies/AuthorityAuthorisationDomainRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorityAuthorisationDomain'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Authorisation Domains
        - Authorities
        - Authority Domain Mappings
      summary: Deactivate an authority authorisation domain by Id
      description: delete a mapping between an authority and authorisation domain
      operationId: deleteAuthorityDomainMappingById
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/AuthorityAuthorisationDomainId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/certificationtypes:
    get:
      tags:
        - Reference Data
        - Certification Type
      summary: Get certification types
      description: Get certification types
      operationId: getCertificationTypes
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: resourceType
          in: query
          description: The resource type to filter by
          schema:
            type: string
        - name: typeName
          in: query
          description: The type name to search by
          schema:
            type: string
        - name: status
          in: query
          description: The status to filter by
          schema:
            type: string
      responses:
        "200":
          $ref: '#/components/responses/CertificationTypes'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Certification Type
      summary: Set certification types
      description: Set certification types
      operationId: createCertificationType
      requestBody:
        $ref: '#/components/requestBodies/CertificationTypeRequest'
      responses:
        "201":
          $ref: '#/components/responses/CertificationType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/certificationtypes/{TypeID}:
    get:
      tags:
        - Reference Data
        - Certification Type
      summary: Get a specific certification type by ID
      description: Get a specific certification type by ID
      operationId: getCertificationType
      responses:
        "200":
          $ref: '#/components/responses/CertificationType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Certification Type
      summary: Update certification types
      description: Update certification types
      operationId: updateCertificationType
      requestBody:
        $ref: '#/components/requestBodies/CertificationTypeRequest'
      responses:
        "200":
          $ref: '#/components/responses/CertificationType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Certification Type
      summary: Delete a certification type
      description: Delete a certification type
      operationId: deleteCertificationType
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/TypeID'
  /references/certificationtypes/{TypeID}/variants:
    get:
      tags:
        - Reference Data
        - Certification Type
        - Certification Type Variant
      summary: Get certification type variants
      description: Get certification type variants
      operationId: getCertificationTypeVariants
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: resourceType
          in: query
          description: The resource type to filter by
          schema:
            type: string
        - name: status
          in: query
          description: The status to filter by
          schema:
            type: string
      responses:
        "200":
          $ref: '#/components/responses/CertificationTypeVariantPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Certification Type
        - Certification Type Variant
      summary: Set certification type variant
      description: Set certification type variant
      operationId: createCertificationTypeVariant
      requestBody:
        $ref: '#/components/requestBodies/CertificationTypeVariantRequest'
      responses:
        "201":
          $ref: '#/components/responses/CertificationTypeVariant'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/TypeID'
  /references/certificationtypes/{TypeID}/variants/{VariantID}:
    get:
      tags:
        - Reference Data
        - Certification Type
        - Certification Type Variant
      summary: Get certification type variant by ID
      description: Get certification type variant by ID
      operationId: getCertificationTypeVariant
      responses:
        "200":
          $ref: '#/components/responses/CertificationTypeVariant'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Certification Type
        - Certification Type Variant
      summary: Update certification type variant by ID
      description: Update certification type variant by ID
      operationId: updateCertificationTypeVariant
      requestBody:
        $ref: '#/components/requestBodies/CertificationTypeVariantUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/CertificationTypeVariant'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Certification Type
        - Certification Type Variant
      summary: Delete a certification type variant
      description: Delete a certification type variant
      operationId: deleteCertificationTypeVariant
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
      - $ref: '#/components/parameters/TypeID'
      - $ref: '#/components/parameters/VariantID'
  /references/contacttypes:
    get:
      tags:
        - Reference Data
        - Contact Types
      summary: Returns all contact types configured at a reference data level
      description: get all contact types
      operationId: getContactTypes
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/ContactTypeName'
        - $ref: '#/components/parameters/ContactTypesAccessLevel'
        - $ref: '#/components/parameters/ContactTypeStatus'
      responses:
        "200":
          $ref: '#/components/responses/ContactTypesPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Contact Types
      summary: Create a new contact type
      description: Creates a new contact type configuration
      operationId: createContactType
      requestBody:
        $ref: '#/components/requestBodies/ContactTypeRequest'
      responses:
        "201":
          $ref: '#/components/responses/ContactType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/contacttypes/{ContactTypeID}:
    get:
      tags:
        - Reference Data
        - Contact Types
      summary: Returns a specific contact type configured at a reference data level
      description: get a specific contact type
      operationId: getContactType
      responses:
        "200":
          $ref: '#/components/responses/ContactType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Contact Types
      summary: Updates an existing contact type
      description: Updates an existing configuration
      operationId: updateContactType
      requestBody:
        $ref: '#/components/requestBodies/ContactTypeUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/ContactType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Contact Types
      summary: Delete an existing contact type
      description: Delete an existing contact type
      operationId: deleteContactType
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/ContactTypeID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/document-types:
    get:
      tags:
        - Reference Data
      summary: Get all regulatory document types
      description: Get all regulatory document types
      operationId: getRegulatoryDocumentTypes
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/RegulatoryDocumentTypes'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
      summary: Create a regulatory document type
      description: Create a new regulatory document type
      operationId: createRegulatoryDocumentType
      requestBody:
        $ref: '#/components/requestBodies/RegulatoryDocumentTypeRequest'
      responses:
        "201":
          $ref: '#/components/responses/RegulatoryDocumentType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/document-types/{DocumentTypeID}:
    get:
      tags:
        - Reference Data
      summary: Get a given regulatory document type
      description: Get a specific regulatory document type
      operationId: getRegulatoryDocumentTypeById
      responses:
        "200":
          $ref: '#/components/responses/RegulatoryDocumentType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
      summary: Amend the given regulatory document type
      description: Updates an regulatory regulatory document type
      operationId: updateRegulatoryDocumentTypeById
      requestBody:
        $ref: '#/components/requestBodies/RegulatoryDocumentTypeUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/RegulatoryDocumentType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
      summary: Delete a regulatory document type
      description: deletes a specific regulatory document type
      operationId: deleteRegulatoryDocumentTypeById
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/DocumentTypeID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /references/federations:
    get:
      tags:
        - Reference Data
        - Federation
      summary: Get all federations
      description: get all federations
      operationId: getFederations
      parameters:
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
      responses:
        "200":
          $ref: '#/components/responses/FederationsPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Federation
      summary: Create a new federation
      description: create a new federation
      operationId: createFederation
      requestBody:
        $ref: '#/components/requestBodies/FederationRequest'
      responses:
        "201":
          $ref: '#/components/responses/FederationItem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/federations/{FederationId}:
    get:
      tags:
        - Reference Data
        - Federation
      summary: Get a federation by id
      description: get a federation by id
      operationId: getFederationById
      responses:
        "200":
          $ref: '#/components/responses/FederationItem'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Federation
      summary: Update a federation
      description: update a federation
      operationId: updateFederation
      requestBody:
        $ref: '#/components/requestBodies/FederationRequest'
      responses:
        "200":
          $ref: '#/components/responses/FederationItem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Federation
      summary: Delete a federation
      description: delete a federation
      operationId: deleteFederation
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/FederationId'
  /references/federations/{FederationId}/metadata-policy:
    get:
      tags:
        - Reference Data
        - Federation
      summary: Get the metadata policy for a federation
      description: get the metadata policy for a federation
      operationId: getFederationMetadataPolicies
      parameters:
        - $ref: '#/components/parameters/MetadataPolicyType'
        - $ref: '#/components/parameters/PolicyApprovalStatusEnum'
        - $ref: '#/components/parameters/MetadataPolicyVersion'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/FederationMetadataPolicyPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Federation
      summary: Create a new metadata policy
      description: create a new metadata policy
      operationId: createFederationMetadataPolicy
      requestBody:
        $ref: '#/components/requestBodies/FederationMetadataPolicyRequest'
      responses:
        "201":
          $ref: '#/components/responses/FederationMetadataPolicyItem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/FederationId'
  /references/federations/{FederationId}/metadata-policy/{MetadataPolicyId}:
    get:
      tags:
        - Reference Data
        - Federation
      summary: Get a metadata policy
      description: get a metadata policy
      operationId: getFederationMetadataPolicy
      responses:
        "200":
          $ref: '#/components/responses/FederationMetadataPolicyItem'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Federation
      summary: Update a metadata policy
      description: update a metadata policy
      operationId: updateFederationMetadataPolicy
      requestBody:
        $ref: '#/components/requestBodies/FederationMetadataPolicyRequest'
      responses:
        "200":
          $ref: '#/components/responses/FederationMetadataPolicyItem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "409":
          $ref: '#/components/responses/Conflict'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Federation
      summary: Delete a metadata policy
      description: delete a metadata policy
      operationId: deleteFederationMetadataPolicy
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/FederationId'
      - $ref: '#/components/parameters/MetadataPolicyId'
  /references/flags:
    get:
      tags:
        - Reference Data
        - Flags
      summary: Returns all flags configured at a reference data level
      description: get all flags
      operationId: getFlags
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - $ref: '#/components/parameters/FlagName'
        - $ref: '#/components/parameters/FlagType'
        - $ref: '#/components/parameters/FlagStatus'
      responses:
        "200":
          $ref: '#/components/responses/FlagsPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Reference Data
        - Flags
      summary: Create a new flag
      description: Creates a new flag configuration
      operationId: createFlag
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/FlagRequest'
      responses:
        "201":
          $ref: '#/components/responses/Flag'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/flags/{FlagID}:
    get:
      tags:
        - Reference Data
        - Flags
      summary: Returns a specific flag configured at a reference data level
      description: get all flags
      operationId: getFlag
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/Flag'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Flags
      summary: Updates an existing flag
      description: Updates an existing configuration
      operationId: updateFlag
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/FlagUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/Flag'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Flags
      summary: Delete an existing flag
      description: Delete an existing flag
      operationId: deleteFlag
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/FlagID'
  /references/termsandconditions:
    get:
      tags:
        - Reference Data
        - Terms and Conditions
      summary: All terms and conditions
      description: Return all terms and conditions configured on the platform
      operationId: getTermsAndConditions
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/TermsAndConditionsPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Terms and Conditions
      summary: Create TnC
      description: creates a new terms and conditions object available to be signed by organisation admins on the directory
      operationId: createTermsAndConditions
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/TermsAndConditionsCreateRequest'
      responses:
        "201":
          $ref: '#/components/responses/TermsAndConditionsItem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/termsandconditions/{TnCId}:
    get:
      tags:
        - Reference Data
        - Terms and Conditions
      summary: Get details for a TnC document
      description: get a specific terms and conditions object
      operationId: getTermsAndConditionsById
      parameters:
        - $ref: '#/components/parameters/TnCId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/TermsAndConditionsItem'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    put:
      tags:
        - Reference Data
        - Terms and Conditions
      summary: Update the content of a TnC document
      description: When a template ID is updated, the corresponding version will auto increment. This results in an alert to the org admin to sign the new version of the template
      operationId: updateTermsAndConditionsById
      parameters:
        - $ref: '#/components/parameters/TnCId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/TermsAndConditionsUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/TermsAndConditionsItem'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Terms and Conditions
      summary: Deactivate a TnC document
      description: deactivates a terms and conditions object
      operationId: deleteTermsAndConditionsById
      parameters:
        - $ref: '#/components/parameters/TnCId'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/users/authorisationdomain/systems:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Reference Data of all authorisation domain systems
      description: get all authorisation domain systems
      operationId: getAuthorisationDomainSystems
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainSystemsPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Create Reference Data for a new authorisation domain system
      description: create an authorisation system type
      operationId: createAuthorisationDomainSystem
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainSystemRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationDomainSystem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/users/authorisationdomain/systems/{AuthorisationDomainSystemID}:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Get specific record for authorisation domain system
      description: get specific authorisation domain system
      operationId: getAuthorisationDomainSystem
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainSystemID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainSystem'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Update Reference Data for a new authorisation domain system
      description: update authorisation domain system
      operationId: updateAuthorisationDomainSystem
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainSystemID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainSystemRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainSystem'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Remove Reference Data for a new authorisation domain system
      description: delete an authorisation domain system
      operationId: deleteAuthorisationDomainSystem
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainSystemID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/users/authorisationdomain/usertypes:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Reference Data of all authorisation domain user types
      description: get all authorisation domain user types
      operationId: getAuthorisationDomainUserTypes
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
        - name: parentRole
          in: query
          description: The parent role of this domain role
          schema:
            type: string
        - name: systemID
          in: query
          description: The ID of the system to pair it with
          schema:
            type: string
        - name: status
          in: query
          description: The status of the user types
          schema:
            type: string
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUserTypesPage'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    post:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Create Reference Data for a new authorisation domain user type
      description: create all authorisation domain user type
      operationId: createAuthorisationDomainUserType
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainUserTypeRequest'
      responses:
        "201":
          $ref: '#/components/responses/AuthorisationDomainUserType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /references/users/authorisationdomain/usertypes/{AuthorisationDomainUserTypeID}:
    get:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Get specific record for authorisation domain user type
      description: get specific authorisation domain user type
      operationId: getAuthorisationDomainUserType
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainUserTypeID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUserType'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
            - directory:software
    put:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Update Reference Data for a new authorisation domain user type
      description: update authorisation domain user type
      operationId: updateAuthorisationDomainUserType
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainUserTypeID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/AuthorisationDomainUserTypeRequest'
      responses:
        "200":
          $ref: '#/components/responses/AuthorisationDomainUserType'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "409":
          $ref: '#/components/responses/Conflict'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    delete:
      tags:
        - Reference Data
        - Authorisation Domains
        - Users
      summary: Remove Reference Data for a new authorisation domain user type
      description: delete an authorisation domain user type
      operationId: deleteAuthorisationDomainUserType
      parameters:
        - $ref: '#/components/parameters/AuthorisationDomainUserTypeID'
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "204":
          $ref: '#/components/responses/NoContent'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /search:
    get:
      tags:
        - Global Search
      summary: Get the top 10 results based on a partial/full match of identifier
      description: Get the top 10 results based on a partial/full match of identifier
      operationId: search
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/Identifier'
        - $ref: '#/components/parameters/ResourceTypes'
        - $ref: '#/components/parameters/GlobalSearchStatus'
      responses:
        "200":
          $ref: '#/components/responses/GlobalSearchResponse'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /users/data-administrator:
    get:
      tags:
        - Users
      summary: All data administrators
      description: Get all users with the data administrator role
      operationId: getDataAdministrators
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/DataAdministrators'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    post:
      tags:
        - Users
      summary: Create a data administrator
      description: Grants a user the data administrator role
      operationId: createDataAdministrator
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/DataAdministratorCreationRequest'
      responses:
        "201":
          $ref: '#/components/responses/DataAdministrator'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /users/data-administrator/{UserID}:
    put:
      tags:
        - Users
      summary: Toggle active status of users data administrator role
      description: Deactivate or reactivate a users data administrator role
      operationId: updateDataAdministrator
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      requestBody:
        $ref: '#/components/requestBodies/UserUpdateRequest'
      responses:
        "200":
          $ref: '#/components/responses/DataAdministrator'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
    parameters:
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/x-customer-user-agent'
  /users/me:
    get:
      tags:
        - Users
      summary: Details of the user
      description: Get information on the current user
      operationId: getMyUser
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        "200":
          $ref: '#/components/responses/UserDetail'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
  /users/super:
    get:
      tags:
        - Users
        - Super Users
      summary: All super users
      description: Get all super users
      operationId: getSuperUsers
      parameters:
        - $ref: '#/components/parameters/x-fapi-auth-date'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address'
        - $ref: '#/components/parameters/x-fapi-interaction-id'
        - $ref: '#/components/parameters/x-customer-user-agent'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageSort'
      responses:
        "200":
          $ref: '#/components/responses/SuperUsersPage'
        "400":
          $ref: '#/components/responses/BadRequest'
        "401":
          $ref: '#/components/responses/Unauthorized'
        "403":
          $ref: '#/components/responses/Forbidden'
        "404":
          $ref: '#/components/responses/NotFound'
        "406":
          $ref: '#/components/responses/NotAcceptable'
        "429":
          $ref: '#/components/responses/TooManyRequests'
        "500":
          $ref: '#/components/responses/InternalServerError'
        "502":
          $ref: '#/components/responses/BadGateway'
        "504":
          $ref: '#/components/responses/UpstreamTimeout'
      security:
        - authorizer: []
        - oAuth:
            - directory:website
components:
  securitySchemes:
    authorizer:
      type: apiKey
      name: Authorization
      in: header
    godir-authorizer:
      type: apiKey
      name: Authorization
      in: header
    oAuth:
      type: oauth2
      description: This API uses OAUTH 2.0 with client creds for the admin role and auth code for web users
      flows:
        clientCredentials:
          tokenUrl: https://auth.openbanking.raidiam.io/token
          scopes:
            directory:servicedesk: Operations performed by clients respresenting service desk applications
            directory:software: Software statement client operations
        authorizationCode:
          authorizationUrl: https://auth.openbanking.raidiam.io/auth
          tokenUrl: https://auth.openbanking.raidiam.io/token
          refreshUrl: https://auth.openbanking.raidiam.io/token
          scopes:
            directory:website: Web based operations
  schemas:
    AccessEnum:
      enum:
        - Read
        - Write
        - Administrator
        - None
      type: string
      default: Read
    ActionType:
      enum:
        - created
        - updated
        - deleted
      type: string
    AdditionalAuthorisationServerFields:
      type: object
      properties:
        AuthorisationServerId:
          $ref: '#/components/schemas/AuthorisationServerId'
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        NotificationWebhookAddedDate:
          $ref: '#/components/schemas/NotificationWebhookAddedDate'
        NotificationWebhookStatus:
          $ref: '#/components/schemas/NotificationWebhookStatusEnum'
        OrganisationId:
          $ref: '#/components/schemas/DeprecatedOrganisationId'
        SupportsCiba:
          $ref: '#/components/schemas/SupportsCiba'
        SupportsDCR:
          $ref: '#/components/schemas/SupportsDCR'
        SupportsRedirect:
          $ref: '#/components/schemas/SupportsRedirect'
    AdditionalSoftwareMetadata:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Extra metadata defined by the org admins to be loaded into the software statement and made avaiable during introspection
    AmendCertificateRequest:
      type: object
      properties:
        RevokeReason:
          $ref: '#/components/schemas/RevokeReasonEnum'
        Status:
          maxLength: 40
          type: string
    ApiCertificationUri:
      maxLength: 500
      pattern: ^(https://).*
      type: string
      format: uri
      description: Link to the certifation package. Example https://github.com/Open[Domain]/conformance/blob/main/submissions/functional/business/1.0.3/api-business-customer.zip
    ApiDiscoveryEndpoint:
      type: object
      properties:
        ApiDiscoveryId:
          $ref: '#/components/schemas/ApiEndpointId'
        ApiEndpoint:
          $ref: '#/components/schemas/ApiEndpoint'
    ApiDiscoveryEndpointFamilyResponse:
      type: object
      properties:
        ApiDiscoveryEndpoints:
          items:
            $ref: '#/components/schemas/ApiDiscoveryEndpoint'
        FamilyComplete:
          type: boolean
          description: Denotes a completed api family set
    ApiDiscoveryEndpointRequest:
      required:
        - ApiEndpoints
      type: object
      properties:
        ApiEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/ApiDiscoveryEndpointRequestObject'
    ApiDiscoveryEndpointRequestObject:
      required:
        - ApiEndpoint
      type: object
      properties:
        ApiEndpoint:
          $ref: '#/components/schemas/ApiEndpoint'
    ApiDiscoveryEndpoints:
      type: array
      items:
        $ref: '#/components/schemas/ApiDiscoveryEndpoint'
    ApiEndpoint:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      description: A compliant URI
      example: https://raidiam.io/cb
    ApiEndpointId:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: The unique ID of an Api discovery endpoint resource
    ApiFamiliesPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/ApiFamily'
    ApiFamily:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiFamilyRequest'
      properties:
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        ID:
          $ref: '#/components/schemas/ApiFamilyID'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        UpdatedAt:
          $ref: '#/components/schemas/UpdatedAt'
    ApiFamilyCertificationURIRegex:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: regex to validate the cerfification URI
    ApiFamilyConformanceTest:
      type: boolean
      default: false
      description: Whether the conformance testing is required/enabled
    ApiFamilyDeprecationDate:
      type: string
      format: date
      description: Api family support/deprecation end date
      example: "2021-01-30"
    ApiFamilyEndpoints:
      type: array
      items:
        type: string
        example: ^(https:\/\/)(.*?)(\/open-banking\/admin\/v\d+\/metrics)$
      description: List of regexes (as strings) that valid endpoint URLs must match
    ApiFamilyID:
      type: string
      format: uuid
      description: Unique ID of the api family
      nullable: false
      example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
    ApiFamilyMandatory:
      type: boolean
      default: false
      description: Whether implementing this API family is mandatory
    ApiFamilyMetadataSchema:
      type: object
      additionalProperties: true
      description: Raw JSON object containing an OpenAPI Schema definition for the metadata.
    ApiFamilyName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of the api family
    ApiFamilyRequest:
      required:
        - Name
        - Version
        - ConformanceTest
        - Mandatory
        - RequiresWellKnown
        - Endpoints
      type: object
      properties:
        CertificationURIRegex:
          $ref: '#/components/schemas/ApiFamilyCertificationURIRegex'
        ConformanceTest:
          $ref: '#/components/schemas/ApiFamilyConformanceTest'
        DeprecationDate:
          $ref: '#/components/schemas/ApiFamilyDeprecationDate'
        Endpoints:
          $ref: '#/components/schemas/ApiFamilyEndpoints'
        Mandatory:
          $ref: '#/components/schemas/ApiFamilyMandatory'
        MetadataSchema:
          $ref: '#/components/schemas/ApiFamilyMetadataSchema'
        Name:
          $ref: '#/components/schemas/ApiFamilyName'
        RequiresWellKnown:
          $ref: '#/components/schemas/ApiFamilyRequiresWellKnown'
        StartDate:
          $ref: '#/components/schemas/ApiFamilyStartDate'
        Version:
          $ref: '#/components/schemas/ApiFamilyVersion'
    ApiFamilyRequiresWellKnown:
      type: boolean
      default: false
    ApiFamilyStartDate:
      type: string
      format: date
      description: Api family start date
      example: "2021-01-30"
    ApiFamilyType:
      maxLength: 128
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: The type of API this record describes
    ApiFamilyUpdateRequest:
      required:
        - Cascade
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiFamilyRequest'
      properties:
        Cascade:
          $ref: '#/components/schemas/Cascade'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    ApiFamilyVersion:
      pattern: ^[0-9]+([.][0-9]+){0,2}$
      type: string
      description: version of this configuration.
      example: 2.0.0
    ApiResource:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiResourceDetail'
      properties:
        ApiDiscoveryEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/ApiDiscoveryEndpoint'
        ApiMetadata:
          $ref: '#/components/schemas/ApiResourceMetadata'
    ApiResourceDetail:
      type: object
      properties:
        ApiCertificationUri:
          $ref: '#/components/schemas/ApiCertificationUri'
        ApiFamilyID:
          $ref: '#/components/schemas/ApiFamilyID'
        ApiFamilyType:
          $ref: '#/components/schemas/ApiFamilyType'
        ApiResourceId:
          $ref: '#/components/schemas/ApiResourceId'
        ApiVersion:
          pattern: ^([0-9]+\.[0-9]+\.[0-9]+)$|^([0-9]+)$|^([0-9]+\.[0-9]+)$
          type: string
          description: The version number of the API
        CertificationExpirationDate:
          $ref: '#/components/schemas/CertificationExpirationDate'
        CertificationStartDate:
          $ref: '#/components/schemas/CertificationStartDate'
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        FamilyComplete:
          type: boolean
          description: Denotes whether or not the api resource has had all related api endpoints published
        Status:
          $ref: '#/components/schemas/StatusEnum'
    ApiResourceId:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: The unique ID of an Api version resource
    ApiResourceMetadata:
      type: object
    ApiResourceRequest:
      required:
        - Status
      type: object
      properties:
        ApiCertificationUri:
          $ref: '#/components/schemas/ApiCertificationUri'
        ApiEndpoint:
          $ref: '#/components/schemas/ApiEndpoint'
        ApiFamilyID:
          $ref: '#/components/schemas/ApiFamilyID'
        ApiFamilyType:
          maxLength: 128
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The type of API this record describes
          deprecated: true
        ApiVersion:
          pattern: ^([0-9]+\.[0-9]+\.[0-9]+)$|^([0-9]+)$|^([0-9]+\.[0-9]+)$
          type: string
          description: The version number of the API
          deprecated: true
        CertificationStartDate:
          maxLength: 10
          pattern: ^[0-3][0-9]/[0-1][0-9]/2([0-9]{3})$
          type: string
          nullable: true
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    ApiResourceUpdateRequest:
      required:
        - Status
        - CertificationStatus
      type: object
      properties:
        ApiCertificationUri:
          $ref: '#/components/schemas/ApiCertificationUri'
        ApiEndpoint:
          $ref: '#/components/schemas/ApiEndpoint'
        ApiFamilyID:
          $ref: '#/components/schemas/ApiFamilyID'
        ApiFamilyType:
          maxLength: 128
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The type of API this record describes
          deprecated: true
        ApiVersion:
          pattern: ^([0-9]+\.[0-9]+\.[0-9]+)$|^([0-9]+)$|^([0-9]+\.[0-9]+)$
          type: string
          description: The version number of the API
          deprecated: true
        CertificationStartDate:
          maxLength: 10
          pattern: ^[0-3][0-9]/[0-1][0-9]/2([0-9]{3})$
          type: string
          nullable: true
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    ApiResources:
      type: array
      items:
        $ref: '#/components/schemas/ApiResource'
    ApiWebhookUri:
      maxLength: 255
      pattern: ^(https:\/\/[^\s/?#]+(?:\/[^\s\/?#]+)*)$
      type: string
      format: uri
      description: A compliant URI
    ApprovalFlowStatusEnum:
      pattern: ^[^<>]*$
      enum:
        - Active
        - Assignable
        - Pending
        - Rejected
        - Inactive
      type: string
      description: The status of a resource that has an approval flow
    AuditFields:
      type: object
      properties:
        EntryId:
          type: integer
          description: The unique ID of the action
        EntryType:
          $ref: '#/components/schemas/ActionType'
        PerformedBy:
          type: string
          description: The user who performed the action
        ResourceType:
          $ref: '#/components/schemas/ResourceType'
        Timestamp:
          type: string
          format: date
          description: When the action was performed
    AuditHistoryPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        items:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/OrganisationAuthorityClaimDetailsAudit'
              - $ref: '#/components/schemas/SoftwareStatementAudit'
    AuthDeprecatedDate:
      type: string
      format: date
      description: Authorisation Server support/deprecation end date
      example: "2021-01-30"
    AuthRetirementDate:
      type: string
      format: date
      description: Authorisation Server Retirement date
      example: "2023-12-30"
    AuthSupersededById:
      type: string
      format: uuid
      description: Authorisation Server ID which replaces the current auth server
      example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
    AuthenticationPolicyEnum:
      enum:
        - CLICK_TO_ACCEPT_TERMS
        - ESIGNATURE_TERMS
        - RECOVERY_CODES
        - TWO_FACTOR
        - VERIFY_EMAIL_AND_MOBILE
      type: string
    AuthorisationDomain:
      type: object
      properties:
        AuthorisationDomainDescription:
          $ref: '#/components/schemas/AuthorisationDomainDescription'
        AuthorisationDomainID:
          $ref: '#/components/schemas/AuthorisationDomainID'
        AuthorisationDomainName:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRegion:
          $ref: '#/components/schemas/AuthorisationDomainRegion'
        FederationID:
          $ref: '#/components/schemas/FederationId'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainDescription:
      pattern: ^[^<>]*$
      type: string
      description: The authorisation domain description
    AuthorisationDomainID:
      type: string
      format: uuid
      description: Unique identifier for an authorisation domain
      nullable: false
    AuthorisationDomainName:
      maxLength: 30
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Authorisation Domain Name
    AuthorisationDomainRegion:
      minLength: 2
      pattern: ^[^<>]*$
      type: string
      description: The authorisation domain region
    AuthorisationDomainRequest:
      required:
        - AuthorisationDomainName
        - AuthorisationDomainRegion
      type: object
      properties:
        AuthorisationDomainDescription:
          $ref: '#/components/schemas/AuthorisationDomainDescription'
        AuthorisationDomainName:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRegion:
          $ref: '#/components/schemas/AuthorisationDomainRegion'
        FederationID:
          $ref: '#/components/schemas/FederationId'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainRole:
      type: object
      properties:
        AuthorisationDomainName:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRoleDescription:
          $ref: '#/components/schemas/AuthorisationDomainRoleDescription'
        AuthorisationDomainRoleIdentifier:
          $ref: '#/components/schemas/AuthorisationDomainRoleID'
        AuthorisationDomainRoleName:
          $ref: '#/components/schemas/AuthorisationDomainRoleName'
        Exclusive:
          $ref: '#/components/schemas/ExclusiveAuthorisationDomainRole'
        RoleType:
          $ref: '#/components/schemas/RoleTypeEnum'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainRoleDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      default: ""
      description: The authorisation domain role description
    AuthorisationDomainRoleID:
      type: string
      format: uuid
      description: Unique identifier for an authorisation domain role
      nullable: false
    AuthorisationDomainRoleName:
      maxLength: 60
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: The authorisation domain role name
      example: PAGTO
    AuthorisationDomainRoleRequest:
      required:
        - AuthorisationDomainRoleName
      type: object
      properties:
        AuthorisationDomainRoleDescription:
          $ref: '#/components/schemas/AuthorisationDomainRoleDescription'
        AuthorisationDomainRoleName:
          $ref: '#/components/schemas/AuthorisationDomainRoleName'
        Exclusive:
          $ref: '#/components/schemas/ExclusiveAuthorisationDomainRole'
        RoleType:
          $ref: '#/components/schemas/RoleTypeEnum'
    AuthorisationDomainRoleUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthorisationDomainRoleRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainRolesPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainRole'
    AuthorisationDomainSystem:
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/AuthorisationDomainSystemDescription'
        Name:
          $ref: '#/components/schemas/AuthorisationDomainSystemName'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        SystemID:
          $ref: '#/components/schemas/AuthorisationDomainSystemID'
    AuthorisationDomainSystemDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The description of the authorisation domain user type
    AuthorisationDomainSystemID:
      type: string
      format: uuid
      description: Unique authorisation domain system UUID
    AuthorisationDomainSystemName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of the authorisation domain user type
    AuthorisationDomainSystemRequest:
      required:
        - Name
        - Status
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/AuthorisationDomainSystemDescription'
        Name:
          $ref: '#/components/schemas/AuthorisationDomainSystemName'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainSystemsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainSystem'
    AuthorisationDomainUpdateRequest:
      required:
        - AuthorisationDomainName
        - AuthorisationDomainRegion
        - Status
      type: object
      properties:
        AuthorisationDomainDescription:
          $ref: '#/components/schemas/AuthorisationDomainDescription'
        AuthorisationDomainName:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRegion:
          $ref: '#/components/schemas/AuthorisationDomainRegion'
        FederationID:
          $ref: '#/components/schemas/FederationId'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationDomainUser:
      type: object
      allOf:
        - $ref: '#/components/schemas/UserDetails'
      properties:
        AuthorisationDomain:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRole:
          $ref: '#/components/schemas/AuthorisationDomainRoleName'
        AuthorisationDomainUserId:
          $ref: '#/components/schemas/AuthorisationDomainUserId'
        ContactRole:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeName'
        System:
          $ref: '#/components/schemas/AuthorisationDomainSystemName'
        SystemID:
          $ref: '#/components/schemas/AuthorisationDomainSystemID'
        UserTypeID:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
    AuthorisationDomainUserCreateRequest:
      required:
        - Email
        - AuthorisationDomainRole
        - UserTypeID
        - SystemID
      type: object
      allOf:
        - $ref: '#/components/schemas/UserCreationRequest'
      properties:
        AuthorisationDomainRole:
          $ref: '#/components/schemas/AuthorisationDomainRoleName'
        SystemID:
          $ref: '#/components/schemas/AuthorisationDomainSystemID'
        UserTypeID:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
    AuthorisationDomainUserId:
      maxLength: 50
      pattern: ^[^<>]*$
      type: string
      description: Unique record ID to identify Domain user
    AuthorisationDomainUserType:
      type: object
      properties:
        AuthorisationDomainUserTypeID:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
        AuthorisationServerAccess:
          $ref: '#/components/schemas/AccessEnum'
        Description:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeDescription'
        DirectoryAccess:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeDirectoryAccess'
        DomainUserAccess:
          $ref: '#/components/schemas/AccessEnum'
        Name:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeName'
        OrganisationCertificatesAccess:
          $ref: '#/components/schemas/AccessEnum'
        OrganisationContactsAccess:
          $ref: '#/components/schemas/AccessEnum'
        ParentRole:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
        ReceiveEmailNotifications:
          $ref: '#/components/schemas/ReceiveEmailNotifications'
        RegulatoryDocumentAccess:
          $ref: '#/components/schemas/AccessEnum'
        SoftwareStatementAccess:
          $ref: '#/components/schemas/AccessEnum'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        SystemID:
          $ref: '#/components/schemas/AuthorisationDomainSystemID'
        TermsAndConditionsAccess:
          $ref: '#/components/schemas/AccessEnum'
    AuthorisationDomainUserTypeDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The description of the authorisation domain user type
    AuthorisationDomainUserTypeDirectoryAccess:
      type: boolean
      description: If the user type grants read access to the directory
    AuthorisationDomainUserTypeID:
      type: string
      format: uuid
      description: Unique authorisation domain user type UUID
    AuthorisationDomainUserTypeName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of the authorisation domain user type
    AuthorisationDomainUserTypeRequest:
      required:
        - Name
        - SystemID
        - DirectoryAccess
        - ReceiveEmailNotifications
        - OrganisationCertificatesAccess
        - OrganisationContactsAccess
        - DomainUserAccess
        - SoftwareStatementAccess
        - AuthorisationServerAccess
        - TermsAndConditionsAccess
        - Status
      type: object
      properties:
        AuthorisationServerAccess:
          $ref: '#/components/schemas/AccessEnum'
        Description:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeDescription'
        DirectoryAccess:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeDirectoryAccess'
        DomainUserAccess:
          $ref: '#/components/schemas/AccessEnum'
        Name:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeName'
        OrganisationCertificatesAccess:
          $ref: '#/components/schemas/AccessEnum'
        OrganisationContactsAccess:
          $ref: '#/components/schemas/AccessEnum'
        ParentRole:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
        ReceiveEmailNotifications:
          $ref: '#/components/schemas/ReceiveEmailNotifications'
        RegulatoryDocumentAccess:
          $ref: '#/components/schemas/AccessEnum'
        SoftwareStatementAccess:
          $ref: '#/components/schemas/AccessEnum'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        SystemID:
          $ref: '#/components/schemas/AuthorisationDomainSystemID'
        TermsAndConditionsAccess:
          $ref: '#/components/schemas/AccessEnum'
    AuthorisationDomainUserTypesPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainUserType'
    AuthorisationDomainUsersPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainUser'
    AuthorisationDomainsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomain'
    AuthorisationServerCertification:
      type: object
      properties:
        AuthorisationServerId:
          $ref: '#/components/schemas/AuthorisationServerId'
        CertificationExpirationDate:
          $ref: '#/components/schemas/CertificationExpirationDate'
        CertificationId:
          $ref: '#/components/schemas/AuthorisationServerCertificationId'
        CertificationStartDate:
          $ref: '#/components/schemas/CertificationStartDate'
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        CertificationURI:
          $ref: '#/components/schemas/ApiCertificationUri'
        ProfileType:
          $ref: '#/components/schemas/ProfileType'
        ProfileVariant:
          $ref: '#/components/schemas/ProfileVariant'
        ProfileVersion:
          type: number
          description: The version number of the certification
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationServerCertificationId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with the auth server certification
    AuthorisationServerCertificationRequest:
      required:
        - CertificationStartDate
        - CertificationStatus
        - ProfileVariant
        - ProfileType
        - ProfileVersion
        - CertificationURI
      type: object
      properties:
        CertificationStartDate:
          maxLength: 10
          pattern: ^[0-3][0-9]/[0-1][0-9]/2([0-9]{3})$
          type: string
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        CertificationURI:
          $ref: '#/components/schemas/ApiCertificationUri'
        ProfileType:
          $ref: '#/components/schemas/ProfileType'
        ProfileVariant:
          $ref: '#/components/schemas/ProfileVariant'
        ProfileVersion:
          type: number
          description: The version number of the certification
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorisationServerCertifications:
      type: array
      items:
        $ref: '#/components/schemas/AuthorisationServerCertification'
      description: The list of certifications for a given authorisation server
    AuthorisationServerCertificationsPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationServerCertification'
    AuthorisationServerCreationRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseAuthorisationServer'
        - type: object
          properties:
            Flags:
              $ref: '#/components/schemas/FlagIDArray'
    AuthorisationServerId:
      type: string
      format: uuid
    AuthorisationServerResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseAuthorisationServer'
        - $ref: '#/components/schemas/AdditionalAuthorisationServerFields'
        - type: object
          properties:
            ApiResources:
              type: array
              items:
                $ref: '#/components/schemas/ApiResource'
            AuthorisationServerCertifications:
              type: array
              items:
                $ref: '#/components/schemas/AuthorisationServerCertification'
            Flags:
              $ref: '#/components/schemas/FlagArray'
            Status:
              $ref: '#/components/schemas/StatusEnum'
    AuthorisationServerResponseWithWarnings:
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthorisationServerResponse'
        - type: object
          properties:
            OperationWarnings:
              type: array
              items:
                $ref: '#/components/schemas/OperationWarning'
    AuthorisationServerUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthorisationServerCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    AuthorisationServers:
      type: array
      items:
        $ref: '#/components/schemas/AuthorisationServerResponse'
    AuthorisationServersPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationServerResponse'
    AuthoritiesPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorityObject'
    AuthorityAuthorisationDomain:
      allOf:
        - $ref: '#/components/schemas/AuthorityAuthorisationDomainRequest'
        - type: object
          properties:
            AuthorisationDomainName:
              $ref: '#/components/schemas/AuthorisationDomainName'
            AuthorityAuthorisationDomainId:
              pattern: ^[^<>]*$
              type: string
              format: uuid
              description: The UUID of the Authority-Domain mapping
            AuthorityName:
              $ref: '#/components/schemas/AuthorityName'
    AuthorityAuthorisationDomainId:
      maxLength: 50
      pattern: ^[^<>]*$
      type: string
      description: Mapping ID between Authority and Authorisation Domain
    AuthorityAuthorisationDomainRequest:
      required:
        - AuthorityID
        - AuthorisationDomainID
      type: object
      properties:
        AuthorisationDomainID:
          $ref: '#/components/schemas/AuthorisationDomainID'
        AuthorityID:
          pattern: ^[^<>]*$
          type: string
          format: uuid
          description: The GUID of the Authority
        Status:
          $ref: '#/components/schemas/StatusEnum'
    AuthorityAuthorisationDomainsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AuthorityAuthorisationDomain'
    AuthorityCreationRequest:
      required:
        - AuthorityCode
        - AuthorityUri
      type: object
      properties:
        AuthorityCode:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Code of the Authority i.e. GBFCA, etc
        AuthorityUri:
          maxLength: 255
          pattern: ^(https://).*
          type: string
          description: URI of the authority
    AuthorityId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      format: uuid
      description: Unique ID associated with the Authorisation reference schema
    AuthorityName:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Name of the Authority i.e. FCA, etc
    AuthorityObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthorityUpdateRequest'
        - type: object
          properties:
            AuthorityCountry:
              maxLength: 255
              type: string
              description: Country the authority is based in
            AuthorityId:
              $ref: '#/components/schemas/AuthorityId'
            AuthorityName:
              $ref: '#/components/schemas/AuthorityName'
            OrganisationId:
              $ref: '#/components/schemas/OrganisationId'
            OrganisationName:
              $ref: '#/components/schemas/OrganisationName'
    AuthorityUpdateRequest:
      required:
        - AuthorityCode
        - AuthorityUri
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthorityCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    AuthorizationDetailsTypes:
      type: array
      items:
        pattern: ^[^<>]*$
        type: string
      description: Defines whether or not a client is allowed to send RAR requests with authorization_details of specific types
    AutoRegistrationNotificationWebhook:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI to subscribe to the software statement onboarding webhook
    AutoRegistrationSupported:
      type: boolean
      default: false
      description: Flag to denote if this authorisation server supports the automatic onboarding of software statement clients
    BaseAuthorisationServer:
      required:
        - AutoRegistrationSupported
        - CustomerFriendlyName
        - CustomerFriendlyDescription
        - CustomerFriendlyLogoUri
      type: object
      properties:
        AutoRegistrationNotificationWebhook:
          $ref: '#/components/schemas/AutoRegistrationNotificationWebhook'
        AutoRegistrationSupported:
          $ref: '#/components/schemas/AutoRegistrationSupported'
        CustomerFriendlyDescription:
          $ref: '#/components/schemas/CustomerFriendlyDescription'
        CustomerFriendlyLogoUri:
          $ref: '#/components/schemas/LogoUri'
        CustomerFriendlyName:
          $ref: '#/components/schemas/CustomerFriendlyName'
        DeprecatedDate:
          $ref: '#/components/schemas/AuthDeprecatedDate'
        DeveloperPortalUri:
          $ref: '#/components/schemas/DeveloperPortalUri'
        Issuer:
          $ref: '#/components/schemas/Issuer'
        NotificationWebhook:
          $ref: '#/components/schemas/SnsNotificationWebhookUri'
        OmitFromEcosystem:
          $ref: '#/components/schemas/OmitFromEcosystem'
        OpenIDDiscoveryDocument:
          $ref: '#/components/schemas/OpenIDDiscoveryDocument'
        ParentAuthorisationServerId:
          $ref: '#/components/schemas/AuthorisationServerId'
        PayloadSigningCertLocationUri:
          $ref: '#/components/schemas/PayloadSigningCertLocationUri'
        RetirementDate:
          $ref: '#/components/schemas/AuthRetirementDate'
        SupersededByAuthorisationServerId:
          $ref: '#/components/schemas/AuthSupersededById'
        TermsOfServiceUri:
          $ref: '#/components/schemas/TermsOfServiceUri'
    BaseSsoConfigurationRequest:
      required:
        - DisplayName
        - Contacts
      type: object
      properties:
        Contacts:
          maxItems: 10
          minItems: 1
          type: array
          items:
            type: string
            format: email
          description: List of email addresses to act as points of contact for ecosystem administrators
          nullable: false
        DisplayName:
          $ref: '#/components/schemas/SsoConfigurationDisplayName'
      description: Base request object used to manage an SSO Configuration for a given OpenID Connect Authorization Server
    Cascade:
      type: boolean
      default: false
      description: If set to true on an operation that would deactivate the resource, all references to this given resource in other resources will be removed
    CertificateAuthorityID:
      type: string
      format: uuid
      description: Unique identifier for a given Certificate Authority object
      nullable: false
    CertificateAuthorityIntermediateID:
      type: string
      format: uuid
      description: Unique identifier for a given Certificate Authority's Intermediate object
      nullable: false
    CertificateOrKey:
      type: object
      properties:
        ClientName:
          maxLength: 40
          type: string
        Description:
          $ref: '#/components/schemas/CertificateOrKeyDescription'
        ExpiryDateTime:
          maxLength: 30
          type: string
        ID:
          $ref: '#/components/schemas/KeyMaterialID'
        JwkPath:
          maxLength: 255
          type: string
          description: Used to display path to JWKS containing this certificate
        OrgJwkPath:
          maxLength: 255
          type: string
          description: Used to display path to Org JWKS containing org certificates
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        RevokedDateTime:
          maxLength: 30
          type: string
        SignedCertPath:
          maxLength: 255
          type: string
          description: Used to display location of the signed certificate in PEM format
        SoftwareStatementIds:
          type: array
          items:
            $ref: '#/components/schemas/SoftwareStatementId'
        Status:
          maxLength: 40
          type: string
        ValidFromDateTime:
          maxLength: 30
          type: string
        alg:
          type: string
        crv:
          type: string
        e:
          maxLength: 255
          type: string
        keyType:
          maxLength: 255
          type: string
        kid:
          maxLength: 255
          type: string
        kty:
          maxLength: 255
          type: string
        "n":
          maxLength: 255
          type: string
        pub:
          type: string
        use:
          maxLength: 255
          type: string
        x:
          type: string
        x5c:
          type: array
          items:
            maxLength: 255
            type: string
            description: A PKIX certificate [RFC5280]
        x5t:
          maxLength: 255
          type: string
        x5thashS256:
          maxLength: 255
          type: string
        x5u:
          maxLength: 255
          type: string
        "y":
          type: string
    CertificateOrKeyDescription:
      maxLength: 255
      type: string
      description: Information about the certificate
    CertificateOrKeyId:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
    CertificateOrKeyJsonRequest:
      required:
        - KeyMaterial
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/CertificateOrKeyDescription'
        KeyMaterial:
          type: string
          description: The key material in PEM format, URL Encoded
    CertificateOrKeyOrJWT:
      pattern: ^[^<>]*$
      type: string
    CertificatesOrKeys:
      type: array
      items:
        $ref: '#/components/schemas/CertificateOrKey'
    CertificatesOrKeysPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/CertificateOrKey'
    CertificationDurationDays:
      maximum: 36500
      type: integer
      description: The number of days a certification is valid for up to a maximum of 100 years
    CertificationExpirationDate:
      pattern: ^[^<>]*$
      type: string
      description: JSONDatetime of certification expiration date
    CertificationStartDate:
      pattern: ^[0-3][0-9]/[0-1][0-9]/2([0-9]{3})$
      type: string
      description: JSONDatetime of certification start date
    CertificationStatusEnum:
      enum:
        - Awaiting Certification
        - Certified
        - Deprecated
        - Rejected
        - Warning
        - Self-Certified
      type: string
      default: Awaiting Certification
      description: The different types of certification status
    CertificationType:
      type: object
      properties:
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        CreatedBy:
          $ref: '#/components/schemas/CreatedBy'
        Description:
          $ref: '#/components/schemas/Description'
        ResourceType:
          $ref: '#/components/schemas/ResourceType'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        TypeID:
          $ref: '#/components/schemas/TypeID'
        TypeName:
          $ref: '#/components/schemas/TypeName'
    CertificationTypePage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/CertificationType'
    CertificationTypeRequest:
      required:
        - TypeName
        - ResourceType
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/Description'
        ResourceType:
          $ref: '#/components/schemas/ResourceType'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        TypeName:
          $ref: '#/components/schemas/TypeName'
    CertificationTypeVariant:
      type: object
      properties:
        CertificationDurationDays:
          $ref: '#/components/schemas/CertificationDurationDays'
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        CreatedBy:
          $ref: '#/components/schemas/CreatedBy'
        Description:
          $ref: '#/components/schemas/Description'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        TypeID:
          $ref: '#/components/schemas/TypeID'
        VariantID:
          $ref: '#/components/schemas/VariantID'
        VariantName:
          $ref: '#/components/schemas/VariantName'
    CertificationTypeVariantPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/CertificationTypeVariant'
    CertificationTypeVariantRequest:
      required:
        - VariantName
        - CertificationDurationDays
      type: object
      properties:
        CertificationDurationDays:
          $ref: '#/components/schemas/CertificationDurationDays'
        Description:
          $ref: '#/components/schemas/Description'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        VariantName:
          $ref: '#/components/schemas/VariantName'
    CertificationTypeVariantUpdateRequest:
      required:
        - VariantName
        - CertificationDurationDays
      type: object
      allOf:
        - $ref: '#/components/schemas/CertificationTypeVariantRequest'
      properties:
        Cascade:
          $ref: '#/components/schemas/Cascade'
    ClientFlag:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/FlagID'
        name:
          $ref: '#/components/schemas/FlagName'
        value:
          $ref: '#/components/schemas/FlagValue'
    ClientId:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Software Statement client Id
    ClientName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Software Statement client name
    ClientUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: The Software Statement client compliant URI
    CompanyRegister:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Legal company register for the country, i.e. Companies House
    ConformanceConfiguration:
      type: object
      allOf:
        - $ref: '#/components/schemas/ConformanceConfigurationRequest'
      properties:
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        ID:
          $ref: '#/components/schemas/ConformanceConfigurationID'
        UpdatedAt:
          $ref: '#/components/schemas/UpdatedAt'
    ConformanceConfigurationID:
      type: string
      format: uuid
      description: Unique ID of the conformance configuration
      nullable: false
      example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
    ConformanceConfigurationRequest:
      required:
        - ApiFamilyID
        - TestPlanName
      type: object
      properties:
        ApiFamilyID:
          $ref: '#/components/schemas/ApiFamilyID'
        TestPlanName:
          $ref: '#/components/schemas/ConformanceConfigurationTestPlanName'
    ConformanceConfigurationTestPlanName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of the test plan
    ConformanceConfigurationsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/ConformanceConfiguration'
    Contact:
      type: object
      properties:
        AdditionalInformation:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: Any additional user information
        AddressLine1:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 1
        AddressLine2:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 2
        City:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: City
        ContactId:
          pattern: ^[^<>]*$
          type: string
          description: Unique contact ID for the row.
        ContactType:
          $ref: '#/components/schemas/ContactType'
        Country:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Country
        Department:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        EmailAddress:
          maxLength: 255
          pattern: ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
          type: string
        FirstName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        LastName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        PgpPublicKey:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: A PGP Public Key in text form
        PhoneNumber:
          maxLength: 18
          pattern: ^[^<>]*$
          type: string
        Postcode:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Postcode
    ContactId:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
    ContactRequest:
      required:
        - ContactType
        - EmailAddress
        - PhoneNumber
      type: object
      properties:
        AdditionalInformation:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: Any additional user information
        AddressLine1:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 1
        AddressLine2:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 2
        City:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: City
        ContactType:
          $ref: '#/components/schemas/ContactType'
        Country:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Country
        Department:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        EmailAddress:
          maxLength: 255
          pattern: ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
          type: string
        FirstName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        LastName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        PgpPublicKey:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: A PGP Public Key in text form
        PhoneNumber:
          maxLength: 18
          minLength: 1
          pattern: ^[^<>]*$
          type: string
        Postcode:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Postcode
    ContactType:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      default: Business
      description: The type of Contact, default contact type is Business.
    ContactTypeDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The description of this contact type
    ContactTypeID:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      format: uuid
      description: Unique ID of the contact type
      example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
    ContactTypeName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of this contact type
    ContactTypeObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/ContactTypeRequest'
        - type: object
          properties:
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            Id:
              $ref: '#/components/schemas/ContactTypeID'
            Status:
              $ref: '#/components/schemas/StatusEnum'
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
    ContactTypeRequest:
      required:
        - ContactType
        - AccessLevel
      type: object
      properties:
        AccessLevel:
          $ref: '#/components/schemas/ContactTypesAccessLevel'
        ContactType:
          $ref: '#/components/schemas/ContactTypeName'
        Description:
          $ref: '#/components/schemas/ContactTypeDescription'
    ContactTypesAccessLevel:
      type: integer
      description: The access level of a contact type as a number. The higher the number, the more sensitive it is
    ContactTypesPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
        - type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/ContactTypeObject'
    ContactsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
    Country:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Country
    CreatedAt:
      type: string
      format: date-time
      readOnly: true
    CreatedBy:
      pattern: ^[^<>]*$
      type: string
      description: User who created the certification type
    CustomClaimCreationRequest:
      required:
        - Name
        - Path
        - Source
      type: object
      properties:
        Name:
          maxLength: 255
          pattern: ^[A-Za-z0-9_~-]+$
          type: string
          description: Key value for the custom claim as it will appear in the ID Token
        Path:
          maxLength: 255
          pattern: ^\$[.\[].*
          type: string
          default: $.
          description: Valid JSON Path indicating the values in the trust framework profile to be pulled into the claim
        Source:
          enum:
            - TRUST_FRAMEWORK_PROFILE
          type: string
          description: Source from which the custom claim data is to be pulled. Determines the structure of the path
    CustomClaimID:
      type: string
      format: uuid
      description: Unique identifier for a given custom claim object
    CustomClaimList:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
        - type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/CustomClaimObject'
    CustomClaimObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/CustomClaimUpdateRequest'
        - type: object
          properties:
            ClaimKey:
              type: string
              description: The claim key as it will appear in identity responses
              readOnly: true
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            ID:
              $ref: '#/components/schemas/CustomClaimID'
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
    CustomClaimUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/CustomClaimCreationRequest'
    CustomerFriendlyDescription:
      maxLength: 255
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: A customer friendly description
    CustomerFriendlyName:
      maxLength: 255
      minLength: 1
      pattern: ^[^<>]*$
      type: string
    DataAdministrator:
      type: object
      allOf:
        - $ref: '#/components/schemas/UserDetails'
    DataAdministratorsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/DataAdministrator'
    DeprecatedOrganisationId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with the organisation
      deprecated: true
    Description:
      pattern: ^[^<>]*$
      type: string
      description: Description of the certification type
    DeveloperPortalUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI
      nullable: true
    DocumentDescription:
      maxLength: 60
      type: string
      description: The description of the document type
    DocumentID:
      type: string
      format: uuid
      description: Unique ID associated with the organisation regulatory document
    DocumentType:
      maxLength: 255
      type: string
      description: The document type
    DocumentTypeID:
      type: string
      format: uuid
      description: Unique ID associated with the regulatory document type
    DocumentUri:
      maxLength: 1000
      pattern: ^(https://).*
      type: string
      format: uri
      description: The URI of the regulatory document
    DomainRoleDetail:
      type: object
      properties:
        AuthorisationDomainName:
          $ref: '#/components/schemas/AuthorisationDomainName'
        AuthorisationDomainRoleName:
          $ref: '#/components/schemas/AuthorisationDomainRoleName'
        ContactRole:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeName'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        System:
          $ref: '#/components/schemas/AuthorisationDomainSystemName'
        UserTypeID:
          $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
    EnforceIdpUserManagement:
      type: boolean
      default: false
      description: When true, prevents the creation of users directly on the organisation and mandates all users are managed by SSO Configured IDPs
    EssPollResponse:
      type: object
      properties:
        EssEnvelopeId:
          $ref: '#/components/schemas/ExternalSigningServiceEnvelopeId'
        ExternalSigningServiceEnvelopeStatus:
          $ref: '#/components/schemas/ExternalSigningServiceEnvelopeStatus'
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
    EssSignRequest:
      type: object
      properties:
        NoOfSigners:
          type: integer
        TnCId:
          $ref: '#/components/schemas/TnCId'
    ExclusiveAuthorisationDomainRole:
      type: boolean
      description: An organization that claims an exclusive role cannot claim any other roles
    ExternalSigningService:
      type: object
      properties:
        ExternalSigningServiceEmailSubject:
          maxLength: 100
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The Subject of the Email for External Signing Service
        ExternalSigningServiceName:
          $ref: '#/components/schemas/ExternalSigningServiceName'
        ExternalSigningServiceSignerTemplateConfig:
          $ref: '#/components/schemas/ExternalSigningServiceSignerTemplateConfig'
        ExternalSigningServiceSubject:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The Subject of the External Signing Service
    ExternalSigningServiceEnvelopeId:
      pattern: ^[^<>]*$
      type: string
      description: The envelope id of the ess signing request
    ExternalSigningServiceEnvelopeStatus:
      enum:
        - completed
        - created
        - declined
        - deleted
        - delivered
        - processing
        - sent
        - signed
        - template
        - voided
        - expired
        - reissued
    ExternalSigningServiceName:
      enum:
        - DocuSign
      type: string
      description: The Name of the External Signing Service
    ExternalSigningServiceSignerTemplateConfig:
      type: object
      properties:
        Signer1TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 1 signer
        Signer1Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
        Signer2TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 2 signers
        Signer2Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
        Signer3TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 3 signers
        Signer3Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
        Signer4TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 4 signers
        Signer4Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
        Signer5TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 5 signers
        Signer5Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
        Signer6TemplateId:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Template ID for 6 signers
        Signer6Version:
          type: integer
          description: Version of the TnC document
          readOnly: true
    FederationContact:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The contact of the federation
    FederationContacts:
      type: array
      items:
        $ref: '#/components/schemas/FederationContact'
      description: The contacts of the federation
    FederationDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The description of the federation
    FederationFetchEndpoint:
      maxLength: 255
      type: string
      format: uri
      description: The fetch endpoint of the federation
    FederationHomepageUri:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The homepage uri of the federation
    FederationId:
      type: string
      format: uuid
      description: The ID of the federation
    FederationItem:
      type: object
      properties:
        Contacts:
          $ref: '#/components/schemas/FederationContacts'
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        Description:
          $ref: '#/components/schemas/FederationDescription'
        FederationFetchEndpoint:
          $ref: '#/components/schemas/FederationFetchEndpoint'
        FederationListEndpoint:
          $ref: '#/components/schemas/FederationListEndpoint'
        FederationResolveEndpoint:
          $ref: '#/components/schemas/FederationResolveEndpoint'
        FederationTrustMarkListEndpoint:
          $ref: '#/components/schemas/FederationTrustMarkListEndpoint'
        FederationTrustMarkStatusEndpoint:
          $ref: '#/components/schemas/FederationTrustMarkStatusEndpoint'
        HomepageUri:
          $ref: '#/components/schemas/FederationHomepageUri'
        LogoUri:
          $ref: '#/components/schemas/FederationLogoUri'
        Name:
          $ref: '#/components/schemas/FederationName'
        OrganizationName:
          $ref: '#/components/schemas/FederationOrganizationName'
        PolicyUri:
          $ref: '#/components/schemas/FederationPolicyUri'
        ReferenceID:
          $ref: '#/components/schemas/FederationId'
        RemoteTrustAnchor:
          $ref: '#/components/schemas/FederationRemoteTrustAnchor'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    FederationListEndpoint:
      maxLength: 255
      type: string
      format: uri
      description: The list endpoint of the federation
    FederationLogoUri:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The logo uri of the federation
    FederationMetadataPolicyItem:
      type: object
      properties:
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        FederationID:
          $ref: '#/components/schemas/FederationId'
        Policy:
          $ref: '#/components/schemas/MetadataPolicyJson'
        ReferenceID:
          $ref: '#/components/schemas/MetadataPolicyId'
        Status:
          $ref: '#/components/schemas/PolicyApprovalStatusEnum'
        Type:
          $ref: '#/components/schemas/MetadataPolicyTypeEnum'
        Version:
          $ref: '#/components/schemas/MetadataPolicyVersion'
    FederationMetadataPolicyPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/FederationMetadataPolicyItem'
    FederationMetadataPolicyRequest:
      required:
        - Type
        - Policy
        - Status
      type: object
      properties:
        Policy:
          $ref: '#/components/schemas/MetadataPolicyJson'
        Status:
          $ref: '#/components/schemas/PolicyApprovalStatusEnum'
        Type:
          $ref: '#/components/schemas/MetadataPolicyTypeEnum'
    FederationName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of the federation
    FederationOrganizationName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The organization name of the federation
    FederationPolicyUri:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The policy uri of the federation
    FederationRemoteTrustAnchor:
      type: array
      items:
        maxLength: 255
        type: string
        format: uri
        description: The uri for a remote trust anchor
    FederationRequest:
      required:
        - Name
      type: object
      properties:
        Contacts:
          $ref: '#/components/schemas/FederationContacts'
        Description:
          $ref: '#/components/schemas/FederationDescription'
        HomepageUri:
          $ref: '#/components/schemas/FederationHomepageUri'
        LogoUri:
          $ref: '#/components/schemas/FederationLogoUri'
        Name:
          $ref: '#/components/schemas/FederationName'
        OrganizationName:
          $ref: '#/components/schemas/FederationOrganizationName'
        PolicyUri:
          $ref: '#/components/schemas/FederationPolicyUri'
        RemoteTrustAnchor:
          $ref: '#/components/schemas/FederationRemoteTrustAnchor'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    FederationResolveEndpoint:
      maxLength: 255
      type: string
      format: uri
      description: The resolve endpoint of the federation
    FederationTrustMarkListEndpoint:
      maxLength: 255
      type: string
      format: uri
      description: The trust mark list endpoint of the federation
    FederationTrustMarkStatusEndpoint:
      maxLength: 255
      type: string
      format: uri
      description: The trust mark status endpoint of the federation
    FederationsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/FederationItem'
    Flag:
      type: object
      allOf:
        - $ref: '#/components/schemas/FlagRequest'
      properties:
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        Id:
          $ref: '#/components/schemas/FlagID'
        UpdatedAt:
          $ref: '#/components/schemas/UpdatedAt'
    FlagAccessLevel:
      type: integer
      description: The access level of a flag as a number. The higher the number, the more sensitive it is
    FlagArray:
      type: array
      items:
        $ref: '#/components/schemas/Flag'
      readOnly: true
    FlagDescription:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The description of this flag
    FlagID:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: Unique ID of the flag
      example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
    FlagIDArray:
      type: array
      items:
        $ref: '#/components/schemas/FlagID'
      writeOnly: true
    FlagName:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The name of this flag
    FlagRequest:
      required:
        - Status
        - Name
        - Type
        - Value
        - AccessLevel
      type: object
      properties:
        AccessLevel:
          $ref: '#/components/schemas/FlagAccessLevel'
        Description:
          $ref: '#/components/schemas/FlagDescription'
        Name:
          $ref: '#/components/schemas/FlagName'
        Status:
          $ref: '#/components/schemas/StatusEnum'
        Type:
          $ref: '#/components/schemas/FlagType'
        Value:
          $ref: '#/components/schemas/FlagValue'
    FlagType:
      enum:
        - Organisation
        - Software_Statement
        - Authorisation_Server
      type: string
      description: The type of this tag
    FlagUpdateRequest:
      required:
        - Cascade
        - Status
        - Name
        - Type
        - Value
      type: object
      allOf:
        - $ref: '#/components/schemas/FlagRequest'
      properties:
        Cascade:
          $ref: '#/components/schemas/Cascade'
    FlagValue:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The value of this flag
    FlagsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Flag'
    FullStatusEnum:
      enum:
        - Active
        - Inactive
        - Suspended
      type: string
      default: Active
      description: Current status of this resource
    GlobalSearchResourceType:
      enum:
        - organisation
        - softwareStatement
        - authorisationServer
        - certificate
      type: string
    GlobalSearchResourceTypes:
      type: array
      items:
        $ref: '#/components/schemas/GlobalSearchResourceType'
    GlobalSearchResponse:
      type: object
      properties:
        results:
          type: array
          items:
            required:
              - resourceType
              - name
              - identifier
              - status
            type: object
            properties:
              identifier:
                type: string
              legalEntityName:
                type: string
                nullable: true
              name:
                type: string
              organisationId:
                type: string
                nullable: true
              parentRegistrationNumber:
                type: string
                description: Parent Organisation Reference ID of the organisation. Only populated for organisation results that have a parent organisation.
                nullable: true
              registrationNumber:
                type: string
                description: Registration Number of the organisation. Only populated for organisation results.
                nullable: true
              resourceType:
                $ref: '#/components/schemas/GlobalSearchResourceType'
              softwareStatementId:
                $ref: '#/components/schemas/SoftwareStatementId'
              status:
                $ref: '#/components/schemas/GlobalSearchStatusEnum'
    GlobalSearchStatusEnum:
      enum:
        - Active
        - Inactive
        - Suspended
        - Withdrawn
        - Pending
      type: string
      default: Active
      description: Status of the resource
    GlobalSearchStatusEnums:
      type: array
      items:
        $ref: '#/components/schemas/GlobalSearchStatusEnum'
    HomepageUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: The URI for the website with details about the application and its services
    HttpResponseBody:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
          description: Validation Error messages
    IdTokenSignedResponseAlgorithm:
      enum:
        - PS256
        - RS256
      type: string
      default: PS256
      description: Signing algorithm that a client expects the server to return an id_token with. Must be PS256
    Identifier:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: The string to search for
    Issuer:
      pattern: ^(https://).*
      type: string
      format: uri
      description: An issuer value pulled from the well-known endpoint
    JWK:
      type: object
      description: The RFC 7517 representation of a given key
    JwksUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI string referencing the client's JSON Web Key (JWK) Set
    KeyMaterialAttachmentCreationRequest:
      required:
        - EntityType
        - EntityID
        - Purposes
      type: object
      properties:
        EntityID:
          type: string
          format: uuid
        EntityType:
          $ref: '#/components/schemas/KeyMaterialEntityType'
        OverrideKid:
          $ref: '#/components/schemas/Kid'
        Purposes:
          type: array
          items:
            $ref: '#/components/schemas/KeyMaterialPurposeEnum'
          description: A set of purposes for the given attachment
    KeyMaterialAttachmentID:
      type: string
      format: uuid
      description: Unique identifier in UUID format for a given attachement of an item key material to an entity
    KeyMaterialAttachmentObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/KeyMaterialAttachmentUpdateRequest'
        - type: object
          properties:
            ID:
              $ref: '#/components/schemas/KeyMaterialAttachmentID'
            JWK:
              $ref: '#/components/schemas/JWK'
            JWKsURIs:
              type: array
              items:
                $ref: '#/components/schemas/KeyMaterialJWKsURI'
            KeyMaterialID:
              $ref: '#/components/schemas/KeyMaterialID'
            Status:
              $ref: '#/components/schemas/StatusEnum'
    KeyMaterialAttachmentPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
        - type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/KeyMaterialAttachmentObject'
    KeyMaterialAttachmentUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/KeyMaterialAttachmentCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    KeyMaterialCreationRequest:
      required:
        - CryptographicMaterial
        - ProfileName
      type: object
      properties:
        CryptographicMaterial:
          pattern: ^[^<>]*$
          type: string
        Description:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Descriptive text used to indicate the purpose of the key material
        ProfileName:
          $ref: '#/components/schemas/KeyMaterialProfileName'
    KeyMaterialEntityType:
      enum:
        - AUTHORITY
        - SERVER
        - APPLICATION
      type: string
      description: Types of entities that key material can be attached to on raidiam connect
    KeyMaterialID:
      type: string
      format: uuid
      description: Unique identifier in UUID format for a given item of key material
    KeyMaterialJWKsURI:
      type: string
      format: uri
      description: URL pointing at the keystore containing the subject key material
    KeyMaterialObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/KeyMaterialCreationRequest'
        - $ref: '#/components/schemas/KeyMaterialRevokeRequest'
        - type: object
          properties:
            AttachedTo:
              type: array
              items:
                $ref: '#/components/schemas/KeyMaterialEntityType'
              description: A set of entity types this key material is attached to
            CertificateAuthorityID:
              $ref: '#/components/schemas/CertificateAuthorityID'
            CertificateAuthorityIntermediateID:
              $ref: '#/components/schemas/CertificateAuthorityIntermediateID'
            ExpiresAt:
              type: string
              format: date-time
              description: RFC3339 compliant date and time indicating when the certificate expires
              example: "2026-01-27T16:29:00Z"
            ID:
              $ref: '#/components/schemas/KeyMaterialID'
            JWK:
              $ref: '#/components/schemas/JWK'
            JWKsURI:
              $ref: '#/components/schemas/KeyMaterialJWKsURI'
            Kid:
              $ref: '#/components/schemas/Kid'
            RevokedAt:
              type: string
              format: date-time
              description: RFC3339 compliant date and time indicating when the certificate was revoked
              example: "2026-01-27T16:29:00Z"
            Status:
              $ref: '#/components/schemas/FullStatusEnum'
            Type:
              $ref: '#/components/schemas/KeyMaterialType'
            ValidFrom:
              type: string
              format: date-time
              description: RFC3339 compliant date and time indicating when the certificate is valid from
              example: "2026-01-27T16:29:00Z"
    KeyMaterialPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
        - type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/KeyMaterialObject'
    KeyMaterialProfileName:
      pattern: ^[^<>]*$
      type: string
    KeyMaterialPurposeEnum:
      enum:
        - transport
        - oauth-client
        - federation
      type: string
    KeyMaterialRevokeRequest:
      required:
        - RevokeReason
      type: object
      properties:
        RevokeReason:
          $ref: '#/components/schemas/RevokeReasonEnum'
    KeyMaterialType:
      enum:
        - KEY
        - CERTIFICATE
      type: string
      description: Types of key material available on raidiam connect
    KeyMaterialUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/KeyMaterialCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/FullStatusEnum'
      description: Request object used to update an existing Key Material
    KeyMaterialUpdateRequestWrapper:
      type: object
      oneOf:
        - $ref: '#/components/schemas/KeyMaterialUpdateRequest'
        - $ref: '#/components/schemas/KeyMaterialRevokeRequest'
    Kid:
      maxLength: 255
      type: string
      description: A unique identifier for this key material within the organisation keystore.
    LogoUri:
      pattern: ^(http://|https://).*.(svg|png|jpg|jpeg)$|(data:image/[a-zA-Z0-9;+=-]+,[A-Za-z0-9+/]*={0,2})$
      type: string
      format: uri
      description: A compliant URI
    MetadataId:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: Unique Metadata Id
    MetadataListResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/MetadataResponse'
    MetadataPolicyId:
      maxLength: 36
      pattern: ^[^<>]*$
      type: string
      description: The id of the metadata policy
    MetadataPolicyJson:
      pattern: ^[^<>]*$
      type: string
      description: The json of the metadata policy
    MetadataPolicyTypeEnum:
      pattern: ^[^<>]*$
      enum:
        - openid_relying_party
        - openid_provider
        - oauth_authorization_server
        - oauth_client
        - oauth_resource
        - federation_entity
      type: string
      description: The type of the metadata policy
    MetadataPolicyVersion:
      type: integer
      description: The version of the metadata policy
    MetadataRequest:
      required:
        - ClaimName
        - PolicyOperator
        - EntityType
        - DataType
      type: object
      properties:
        ClaimName:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The metadata claim itself i.e. scope, grant_type...
        DataType:
          enum:
            - string
            - boolean
            - number
          type: string
          description: What datatype the subject metadatas value is
        EntityType:
          enum:
            - openid_provider
            - openid_relying_party
            - oauth_authorization_server
            - oauth_client
          type: string
          description: The entity type the metadata should be applied to
        PolicyOperator:
          enum:
            - value
            - add
            - default
            - one_of
            - subset_of
            - superset_of
            - essential
          type: string
          description: The policy operator for the metadata
        Value:
          $ref: '#/components/schemas/MetadataValue'
        Values:
          type: array
          items:
            $ref: '#/components/schemas/MetadataValue'
          description: The values of the claim. Conflicts with Value
    MetadataResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/MetadataRequest'
        - type: object
          properties:
            DomainRoleName:
              $ref: '#/components/schemas/AuthorisationDomainRoleName'
            MetadataId:
              $ref: '#/components/schemas/MetadataId'
    MetadataValue:
      maxLength: 255
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: The value of a metadata claim
    MtlsEndpointAliases:
      type: boolean
      default: true
      description: Is the client required to use endpoints defined in the Authorisation Server Discovery Document, or if non MTLS endpoints can be used
    NotificationWebhookAddedDate:
      type: string
      format: date
      description: Creation date
      example: "2021-01-30"
    NotificationWebhookStatusEnum:
      enum:
        - Pending
        - Confirmed
        - Deactivated
      type: string
      default: Pending
    OmitFromEcosystem:
      type: boolean
      default: false
      description: '''Denotes if the entity should be omitted from the subject ecosystem. For example, an authorisation server with this flag set to true would not appear in the participants endpoint or OpenID Federation offerings'''
      nullable: false
    OpenIDDiscoveryDocument:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      description: A compliant URI
    OpenidFederationEnabled:
      type: boolean
      default: false
      description: Is this software statement enabled for federation
    OpenidFederationEntityManagementType:
      enum:
        - openid_entity_federation_managed
        - openid_entity_self_managed
      type: string
      description: The type of federation management that applies to this software statement
    OperationWarning:
      enum:
        - IMAGE_UPLOAD_FAILURE_PLACEHOLDER_USED
        - IMAGE_VALIDATION_FAILURE_BAD_DATA_ENCODING_PLACEHOLDER_USED
        - IMAGE_VALIDATION_FAILURE_UNSUPPORTED_IMAGE_FORMAT_PLACEHOLDER_USED
        - IMAGE_VALIDATION_CONTENT_FAILURE_PLACEHOLDER_USED
        - IMAGE_VALIDATION_DIMENSIONS_FAILURE_PLACEHOLDER_USED
        - IMAGE_VALIDATION_MAX_SIZE_FAILURE_PLACEHOLDER_USED
        - IMAGE_VALIDATION_FAILURE_SVG_VALIDATION_PLACEHOLDER_USED
        - IMAGE_VALIDATION_CONTENT_WARNING_SUPERUSER_OVERRIDE
        - IMAGE_VALIDATION_DIMENSIONS_WARNING_SUPERUSER_OVERRIDE
      type: string
      description: A warning code that describes a warning condition that occurred during the last operation
    OrgAccessDetail:
      type: object
      properties:
        DomainRoleDetails:
          type: array
          items:
            $ref: '#/components/schemas/DomainRoleDetail'
          description: Array of domain, role and status of domain role mapping
        OrgAdmin:
          type: boolean
          description: Is the user the org admin of the current org
        OrgRegistrationNumber:
          pattern: ^[^<>]*$
          type: string
          description: CNPJ/Registration number of the org
        OrganisationName:
          $ref: '#/components/schemas/OrganisationName'
    OrgAdminUserCreateRequest:
      type: object
      properties:
        Email:
          pattern: ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
          type: string
          description: Admin user email address
        UserEmail:
          pattern: ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
          type: string
          description: Admin user email address, will be used if "Email" is not present
          deprecated: true
    OrgLogoUri:
      pattern: ^(http://|https://).*.(svg|png|jpg|jpeg)$|(data:image/[a-zA-Z0-9;+=-]+,[A-Za-z0-9+/]*={0,2})$
      type: string
      format: uri
      description: A compliant URI
    OrgTermsAndConditionsDetail:
      type: object
      properties:
        InitiatedBy:
          type: string
          description: Email of the user who initiated the External signing for this participant
        Role:
          type: string
          description: Role of the user who initiated the External signing for this participant
        TermsAndConditionsDetail:
          $ref: '#/components/schemas/TermsAndConditionsDetail'
      description: Participant TnC details
    OrgTermsAndConditionsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrgTermsAndConditionsDetail'
    Organisation:
      type: object
      properties:
        AddressLine1:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 1
        AddressLine2:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 2
        Authority:
          type: boolean
          default: false
          description: Indicates if the subject organisation has been configured as an Authority
        City:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: City
        CompanyRegister:
          $ref: '#/components/schemas/CompanyRegister'
        Country:
          $ref: '#/components/schemas/Country'
        CountryOfRegistration:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Country of registration for the org
        CreatedOn:
          maxLength: 30
          type: string
          description: JSONDatetime of organisation creation.
        EnforceIdpUserManagement:
          $ref: '#/components/schemas/EnforceIdpUserManagement'
        Flags:
          $ref: '#/components/schemas/FlagArray'
        LegalEntityName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Legal Entity name for the org. Usually the same as org name
        LogoUri:
          $ref: '#/components/schemas/OrgLogoUri'
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        OrganisationName:
          $ref: '#/components/schemas/OrganisationName'
        ParentOrganisationReference:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: Parent Organisation Reference
        Postcode:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Postcode
        RegisteredName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
        RegistrationId:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Registered ID for the organisation i.e. Legal Entity identifier number
        RegistrationNumber:
          $ref: '#/components/schemas/RegistrationNumber'
        RequiresParticipantTermsAndConditionsSigning:
          type: boolean
          description: true - this organisation requires terms and conditions to be signed. false - this organisation does not require terms and conditions to be signed
        Size:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Size of the organisation
        Status:
          enum:
            - Active
            - Pending
            - Withdrawn
          type: string
          default: Active
          description: Status of the directory registration of an organisation
        TaxRegistrationNumber:
          $ref: '#/components/schemas/TaxRegistrationNumber'
    OrganisationAdminUser:
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationAdminUserDetails'
      properties:
        DomainRoleDetails:
          type: array
          items:
            $ref: '#/components/schemas/DomainRoleDetail'
    OrganisationAdminUserDetails:
      type: object
      allOf:
        - $ref: '#/components/schemas/UserDetails'
      properties:
        UserEmail:
          pattern: ^[^<>]*$
          type: string
          description: Users email address
          deprecated: true
    OrganisationAdminUsers:
      type: array
      items:
        $ref: '#/components/schemas/OrganisationAdminUser'
    OrganisationAdminUsersPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationAdminUser'
    OrganisationAuthorisationId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with authorisations for organisation's authority claims
    OrganisationAuthorityClaimAuthorisation:
      type: object
      properties:
        MemberState:
          maxLength: 10
          pattern: ^[^<>]*$
          type: string
          description: Abbreviated states information i.e. GB, IE, NL etc
        OrganisationAuthorisationId:
          $ref: '#/components/schemas/OrganisationAuthorisationId'
        OrganisationAuthorityClaimId:
          $ref: '#/components/schemas/OrganisationAuthorityClaimId'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    OrganisationAuthorityClaimAuthorisationRequest:
      required:
        - Status
        - MemberState
      type: object
      properties:
        MemberState:
          maxLength: 10
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: Abbreviated states information i.e. GB, IE, NL etc
        Status:
          $ref: '#/components/schemas/StatusEnum'
    OrganisationAuthorityClaimAuthorisations:
      type: array
      items:
        $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisation'
    OrganisationAuthorityClaimAuthorisationsPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisation'
    OrganisationAuthorityClaimDetailsAudit:
      type: object
      allOf:
        - $ref: '#/components/schemas/AuditFields'
        - $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimObject'
    OrganisationAuthorityClaimId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      format: uuid
      description: Unique ID associated with an organisation authority domain role claim
    OrganisationAuthorityDomainClaimCreationRequest:
      required:
        - AuthorityId
      type: object
      properties:
        AuthorisationDomainID:
          $ref: '#/components/schemas/AuthorisationDomainID'
        AuthorisationDomainName:
          maxLength: 30
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: 'The name of the authorisation domain to map to the organisation. NOTE: deprecated in favour of `AuthorisationDomainID`.'
          deprecated: true
        AuthorityId:
          $ref: '#/components/schemas/AuthorityId'
        RegistrationId:
          pattern: ^[^<>]*$
          type: string
          description: The registration ID
    OrganisationAuthorityDomainClaimId:
      maxLength: 50
      pattern: ^[^<>]*$
      type: string
      description: Organisation Authority Domain Claim ID
    OrganisationAuthorityDomainClaimObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationAuthorityDomainClaimUpdateRequest'
        - type: object
          properties:
            AuthorityName:
              pattern: ^[^<>]*$
              type: string
              description: The name of the Authority
            OrganisationAuthorityDomainClaimId:
              type: string
              description: The unique org authority domain claim ID
    OrganisationAuthorityDomainClaimUpdateRequest:
      required:
        - AuthorityId
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationAuthorityDomainClaimCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    OrganisationAuthorityDomainClaimsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationAuthorityDomainClaimObject'
    OrganisationAuthorityDomainRoleClaimCreationRequest:
      required:
        - AuthorityId
      type: object
      properties:
        AuthorisationDomain:
          pattern: ^[^<>]*$
          type: string
          description: Authorisation domain name. Deprecated in favour of providing the ID. Note, when fully deprecated, will still be returned in the response object
          deprecated: true
        AuthorisationDomainID:
          $ref: '#/components/schemas/AuthorisationDomainID'
        AuthorisationDomainRoleIdentifier:
          $ref: '#/components/schemas/AuthorisationDomainRoleID'
        AuthorityId:
          $ref: '#/components/schemas/AuthorityId'
        RegistrationId:
          maxLength: 40
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Registration ID for the organisation
        Role:
          pattern: ^[^<>]*$
          type: string
          description: Authorisation domain role name. Deprecated in favour of providing the ID. Note, when fully deprecated, will still be returned in the response object
          example: PAGTO
          deprecated: true
        UniqueTechnicalIdentifiers:
          $ref: '#/components/schemas/UniqueTechnicalIdentifiers'
    OrganisationAuthorityDomainRoleClaimObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimUpdateRequest'
        - type: object
          properties:
            Authorisations:
              type: array
              items:
                type: object
                properties:
                  MemberState:
                    maxLength: 2
                    pattern: ^[^<>]*$
                    type: string
                    description: Abbreviated states information i.e. GB, IE, NL etc
                  Status:
                    $ref: '#/components/schemas/StatusEnum'
            Exclusive:
              $ref: '#/components/schemas/ExclusiveAuthorisationDomainRole'
            Metadata:
              type: object
              description: Authorisation domain role metadata
            OrganisationAuthorityClaimId:
              $ref: '#/components/schemas/OrganisationAuthorityClaimId'
            OrganisationId:
              $ref: '#/components/schemas/OrganisationId'
            RoleType:
              maxLength: 255
              pattern: ^[^<>]*$
              type: string
              description: Type of authorisation domain role
    OrganisationAuthorityDomainRoleClaimUpdateRequest:
      required:
        - Status
        - AuthorityId
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    OrganisationAuthorityDomainRoleClaims:
      type: array
      items:
        $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimObject'
    OrganisationAuthorityDomainRoleClaimsPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimObject'
    OrganisationCertificateType:
      pattern: ^[^<>]*$
      type: string
    OrganisationConformanceTest:
      required:
        - ResourceUrl
        - ApiFamilyType
        - Version
      type: object
      properties:
        ApiFamilyType:
          pattern: ^[^<>]*$
          type: string
          description: The family type of the resource url to be tested (for example channels_branches)
        ResourceUrl:
          pattern: ^[^<>]*$
          type: string
          description: The url of the API to be tested (for example, https://matls-api.mockbank.poc.raidiam.io/open-banking/products-services/v1/personal-accounts)
        Version:
          pattern: ^[^<>]*$
          type: string
          description: The version of the api family to be tested (for example 1.0.0)
    OrganisationConformanceTestResult:
      type: object
      properties:
        errorCount:
          type: integer
          description: Number of errors found during the execution of the Conformance Suite Test
        errors:
          uniqueItems: true
          type: array
          items:
            pattern: ^[^<>]*$
            type: string
          description: List of distinct errors found during the execution of the Conformance Suite Test
        result:
          type: boolean
          description: Boolean with the result of the execution of the Conformance Suite Test
        testPlanUrl:
          pattern: ^[^<>]*$
          type: string
          description: URL of the published test plan result
      description: a JSON response with the result of the test
    OrganisationDocument:
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationDocumentUpdateRequest'
        - type: object
          properties:
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            DocumentID:
              $ref: '#/components/schemas/DocumentID'
            OrganisationID:
              $ref: '#/components/schemas/OrganisationId'
            TypeName:
              $ref: '#/components/schemas/DocumentType'
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
      description: An Organisation Document object
    OrganisationDocumentRequest:
      required:
        - TypeID
        - Uri
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/DocumentDescription'
        TypeID:
          $ref: '#/components/schemas/DocumentTypeID'
        Uri:
          $ref: '#/components/schemas/DocumentUri'
      description: Request object used to create a regulatory document for an organisation
    OrganisationDocumentUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/OrganisationDocumentRequest'
      description: Request object used to update an existing regulatory document for an organisation
    OrganisationDocuments:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationDocument'
    OrganisationId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with the organisation
    OrganisationName:
      maxLength: 255
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Name of the organisation.
    OrganisationRequest:
      required:
        - OrganisationId
        - OrganisationName
        - CountryOfRegistration
        - CompanyRegister
        - RegistrationNumber
        - LegalEntityName
        - AddressLine1
        - City
        - Postcode
        - Country
      type: object
      properties:
        AddressLine1:
          maxLength: 255
          minLength: 5
          pattern: ^[^<>]*$
          type: string
          description: Address line 1
        AddressLine2:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 2
        City:
          maxLength: 255
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: City
        CompanyRegister:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Legal company register for the country, i.e. Companies House
        Country:
          maxLength: 255
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: Country
        CountryOfRegistration:
          maxLength: 255
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: Country of registration for the org
        EnforceIdpUserManagement:
          $ref: '#/components/schemas/EnforceIdpUserManagement'
        Flags:
          $ref: '#/components/schemas/FlagIDArray'
        LegalEntityName:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Legal Entity name for the org. Usually the same as org name
        LogoUri:
          $ref: '#/components/schemas/OrgLogoUri'
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        OrganisationName:
          $ref: '#/components/schemas/OrganisationName'
        ParentOrganisationReference:
          maxLength: 65535
          pattern: ^[^<>]*$
          type: string
          description: Parent Organisation Reference
        Postcode:
          maxLength: 40
          minLength: 3
          pattern: ^[^<>]*$
          type: string
          description: Postcode
        RegisteredName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Registered legal name
        RegistrationId:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Registered ID for the organisation i.e. Legal Entity identifier number
        RegistrationNumber:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Company registration number from company register i.e. Companies House registration number
        RequiresParticipantTermsAndConditionsSigning:
          type: boolean
          default: true
          description: Participant Terms and Conditions Signing Required
        Size:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Size of the organisation
        Status:
          enum:
            - Active
            - Pending
            - Withdrawn
          type: string
          default: Active
          description: Status of the directory registration of an organisation
        TaxRegistrationNumber:
          $ref: '#/components/schemas/TaxRegistrationNumber'
    OrganisationResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/Organisation'
      properties:
        OperationWarnings:
          type: array
          items:
            $ref: '#/components/schemas/OperationWarning'
    OrganisationUpdateRequest:
      required:
        - OrganisationName
        - CountryOfRegistration
        - CompanyRegister
        - RegistrationNumber
        - LegalEntityName
        - AddressLine1
        - City
        - Postcode
        - Country
      type: object
      properties:
        AddressLine1:
          maxLength: 255
          minLength: 5
          pattern: ^[^<>]*$
          type: string
          description: Address line 1
        AddressLine2:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Address line 2
        City:
          maxLength: 255
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: City
        CompanyRegister:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Legal company register for the country, i.e. Companies House
        Country:
          maxLength: 255
          minLength: 2
          type: string
          description: Country
        CountryOfRegistration:
          maxLength: 255
          minLength: 2
          pattern: ^[^<>]*$
          type: string
          description: Country of registration for the org
        EnforceIdpUserManagement:
          $ref: '#/components/schemas/EnforceIdpUserManagement'
        Flags:
          $ref: '#/components/schemas/FlagIDArray'
        LegalEntityName:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Legal Entity name for the org. Usually the same as org name
        LogoUri:
          $ref: '#/components/schemas/OrgLogoUri'
        OrganisationName:
          $ref: '#/components/schemas/OrganisationName'
        ParentOrganisationReference:
          maxLength: 65535
          type: string
          description: Parent Organisation Reference
        Postcode:
          maxLength: 40
          minLength: 3
          pattern: ^[^<>]*$
          type: string
          description: Postcode
        RegisteredName:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Registered legal name
        RegistrationId:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: Registered ID for the organisation i.e. Legal Entity identifier number
        RegistrationNumber:
          maxLength: 255
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Company registration number from company register i.e. Companies House registration number
        RequiresParticipantTermsAndConditionsSigning:
          type: boolean
          default: true
          description: Participant Terms and Conditions Signing Required
        Size:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Size of the organisation
        Status:
          enum:
            - Active
            - Pending
            - Withdrawn
          type: string
          default: Pending
          description: Status of the directory registration of an organisation
        TaxRegistrationNumber:
          $ref: '#/components/schemas/TaxRegistrationNumber'
    OrganisationWithTnc:
      type: object
      properties:
        OrgDetails:
          $ref: '#/components/schemas/Organisation'
        TncDetails:
          type: object
          properties:
            TnCSigned:
              type: boolean
              description: true - the terms and conditions have been signed. false - the terms and conditions have not been signed
            TnCUpdated:
              type: boolean
              description: true - attached signer template has been updated. false - no tnc present/not updated
            TnCsToBeSigned:
              $ref: '#/components/schemas/TnCsToBeSigned'
    OrganisationsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Organisation'
    OriginUri:
      maxLength: 255
      pattern: ^https:\/\/(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]+(?::\d+)?(?:\/[a-zA-Z0-9-._~!$&'()*+,;=:@\/?%]*)?(?:\?[a-zA-Z0-9-._~!$&'()*+,;=:@\/?%]*)?(?:#[a-zA-Z0-9-._~!$&'()*+,;=:@\/?%]*)?$|(^android:apk-key-hash:[a-zA-Z0-9-]+)|(^ios:bundle-id:[a-zA-Z][-a-zA-Z0-9]*\.([a-zA-Z][-a-zA-Z0-9]*\.?)+)$
      type: string
      format: uri
      description: A compliant URI
    Pageable:
      type: object
      properties:
        mode:
          type: string
          description: Pageable mode. Possible values are OFFSET, CURSOR_NEXT, CURSOR_PREVIOUS
        number:
          type: integer
          description: Page number
        offset:
          type: integer
          description: Offset
        size:
          type: integer
          description: Size of the page
        sort:
          $ref: '#/components/schemas/PageableSort'
        sorted:
          type: boolean
          description: Is the page sorted
        unpaged:
          type: boolean
          description: Is this an unpaged response
    PageableSort:
      type: object
      properties:
        orderBy:
          type: array
          items:
            type: object
            properties:
              ascending:
                type: boolean
                description: Whether ascending
              direction:
                enum:
                  - ASC
                  - DESC
                type: string
                description: Direction of sort, i.e. ascending or descending
              ignoreCase:
                type: boolean
                description: Was the case ignored
              property:
                type: string
                description: Name of the property used for sorting
                example: createdAt
        sorted:
          type: boolean
    PaginationProperties:
      type: object
      properties:
        empty:
          type: boolean
        numberOfElements:
          type: integer
        offset:
          type: integer
        pageNumber:
          type: integer
        pageable:
          $ref: '#/components/schemas/Pageable'
        size:
          type: integer
        totalPages:
          type: integer
        totalSize:
          type: integer
    PayloadSigningCertLocationUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      description: A compliant URI
    PolicyApprovalStatusEnum:
      pattern: ^[^<>]*$
      enum:
        - active
        - assignable
        - pending
        - rejected
      type: string
      description: The status of the policy
    PolicyUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI string that points to a human-readable privacy policy document
    ProfileType:
      pattern: ^[^<>]*$
      type: string
      description: Certification type
      example: Redirect
    ProfileVariant:
      pattern: ^[^<>]*$
      type: string
      description: Certification variant
      example: FAPI Adv. OP w/ MTLS
    RFCCompliantSoftwareVersion:
      maxLength: 40
      type: string
      description: Software Statement version as provided by the organisation's software team
    ReceiveEmailNotifications:
      type: boolean
      description: If the user type should receive organisation update email notifications
    RedirectUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: An RFC-compliant redirect URI. Must use the `http` scheme and must be a valid absolute uri
    RegisteredClient:
      type: object
      properties:
        application_type:
          enum:
            - web
          type: string
          default: web
          description: OIDC application type response
        authorization_details_types:
          $ref: '#/components/schemas/AuthorizationDetailsTypes'
        claims:
          type: array
          items:
            maxLength: 255
            type: string
            description: The claim names aggregated from domain role metadata for this client
        claims_in_verified_claims:
          type: array
          items:
            maxLength: 255
            type: string
            description: The verified claim names aggregated from domain role metadata for this client
        client_description:
          maxLength: 255
          type: string
          description: Client description
        client_id:
          $ref: '#/components/schemas/ClientId'
        client_name:
          $ref: '#/components/schemas/ClientName'
        client_uri:
          $ref: '#/components/schemas/ClientUri'
        grant_types:
          type: array
          items:
            maxLength: 40
            minLength: 1
            type: string
        homepage_uri:
          $ref: '#/components/schemas/HomepageUri'
        jwks_uri:
          $ref: '#/components/schemas/JwksUri'
        last_updated:
          type: string
          format: date-time
          description: JSONDatetime of last updated timestamp
        logo_uri:
          $ref: '#/components/schemas/LogoUri'
        openid_federation_enabled:
          $ref: '#/components/schemas/OpenidFederationEnabled'
        openid_federation_entity_management_type:
          $ref: '#/components/schemas/OpenidFederationEntityManagementType'
        org_id:
          $ref: '#/components/schemas/OrganisationId'
        organisation_company_register:
          $ref: '#/components/schemas/CompanyRegister'
        organisation_country:
          $ref: '#/components/schemas/Country'
        organisation_id:
          $ref: '#/components/schemas/OrganisationId'
        organisation_name:
          $ref: '#/components/schemas/OrganisationName'
        organisation_registration_number:
          $ref: '#/components/schemas/RegistrationNumber'
        policy_uri:
          $ref: '#/components/schemas/PolicyUri'
        post_logout_redirect_uris:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
          description: The Software Statement redirect compliant URI
        redirect_uris:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
          description: The Software Statement redirect compliant URI
        response_types:
          type: array
          items:
            maxLength: 40
            minLength: 1
            type: string
          description: List of response types
        roles:
          type: array
          items:
            maxLength: 255
            type: string
            description: The software authority roles that apply to this client
        scope:
          maxLength: 255
          type: string
          description: String containing a space-separated list of scope values
        sector_identifier_uri:
          $ref: '#/components/schemas/SectorIdentifierUri'
        software_api_webhook_uri:
          type: array
          items:
            $ref: '#/components/schemas/ApiWebhookUri'
        software_flags:
          type: array
          items:
            $ref: '#/components/schemas/ClientFlag'
        software_id:
          $ref: '#/components/schemas/SoftwareStatementId'
        software_version:
          $ref: '#/components/schemas/SoftwareVersion'
        status:
          $ref: '#/components/schemas/FullStatusEnum'
        subject_type:
          type: string
        token_endpoint_auth_method:
          $ref: '#/components/schemas/TokenEndpointAuthMethod'
        tos_uri:
          $ref: '#/components/schemas/TosUri'
        use_mtls_endpoint_aliases:
          $ref: '#/components/schemas/MtlsEndpointAliases'
    RegisteredClients:
      type: array
      items:
        $ref: '#/components/schemas/RegisteredClient'
      description: The list of Registered Clients
    RegisteredClientsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          $ref: '#/components/schemas/RegisteredClients'
    RegistrationNumber:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
      description: Company registration number from company register i.e. Companies House registration number
    RegulatoryDocumentType:
      type: object
      allOf:
        - $ref: '#/components/schemas/RegulatoryDocumentTypeUpdateRequest'
        - type: object
          properties:
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            ID:
              $ref: '#/components/schemas/DocumentTypeID'
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
      description: A Regulatory Document Type object
    RegulatoryDocumentTypeRequest:
      required:
        - Type
      type: object
      properties:
        Description:
          $ref: '#/components/schemas/DocumentDescription'
        Type:
          $ref: '#/components/schemas/DocumentType'
      description: Request object used to create a regulatory document type
    RegulatoryDocumentTypeUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/RegulatoryDocumentTypeRequest'
      properties:
        Status:
          $ref: '#/components/schemas/StatusEnum'
      description: Request object used to update an existing regulatory document type
    RegulatoryDocumentTypes:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/RegulatoryDocumentType'
    RelatedAuthorisationServer:
      type: string
      format: uuid
      description: ID of the Authorisation Server that is connected to this Software Statement
      nullable: true
    RequireSignedRequestObject:
      type: boolean
      default: true
      description: Require a signed request object. If this is set to false, the client will not be FAPI compliant
    ResourceType:
      enum:
        - apiDiscoveryEndpoint
        - apiResource
        - authorisationDomainSystem
        - authorisationDomainUserType
        - authorisationServer
        - authorisationServerCertification
        - authorisationServerFederation
        - authorisationServerFederationPolicy
        - authorisationServerFlag
        - certificateAuthority
        - certificateAuthorityIntermediate
        - certificationType
        - certificationManager
        - certificationTypeVariant
        - contact
        - dataAdministrator
        - domain
        - domainUser
        - federation
        - federationMetadataPolicy
        - flag
        - contactType
        - jwk
        - organisation
        - organisationAdmin
        - organisationAuthorityClaim
        - organisationAuthorityClaimAuthorisations
        - organisationAuthorityDomainClaim
        - organisationCertificate
        - organisationFlag
        - organisationTermsAndConditions
        - organisationDocument
        - authority
        - referenceAuthority
        - referenceAuthorisationDomain
        - referenceAuthorisationDomainRole
        - referenceAuthorisationDomainRoleMetadata
        - referenceAuthorityAuthorisationDomain
        - referenceContactType
        - referenceTermsAndConditions
        - referenceRegulatoryDocumentType
        - registeredClient
        - serverAuthorityAuthorityRoleClaim
        - softwareStatement
        - softwareStatementAuthorityRoleClaim
        - softwareStatementCertification
        - softwareStatementMetadata
        - softwareStatementFlag
        - softwareStatementJwk
        - ssoConfiguration
        - ssoConfigurationVersion
        - superUser
        - user
        - userGroup
        - userGroupIdpBinding
        - userGroupOrganisationBinding
        - userGroupPermissionBinding
        - userGroupUserMapping
        - webhookSubscriptionForDeletion
        - apiFamilies
        - conformanceConfigurations
        - subDomain
        - customClaim
        - keyMaterial
        - keyMaterialAttachment
      type: string
    RevokeReasonEnum:
      enum:
        - unspecified
        - keycompromise
        - superseded
        - cessationofoperation
        - privilegewithdrawn
      type: string
      description: Specify a reason for revocation of the key material.
    RoleTypeEnum:
      enum:
        - Directory
        - Federation
      type: string
      default: Federation
      description: The different types of authorisation domain roles
    SectorIdentifierUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI string referencing the client's sector identifier
    ServerAuthorityClaim:
      type: object
      allOf:
        - $ref: '#/components/schemas/ServerAuthorityClaimUpdateRequest'
        - type: object
          properties:
            AuthorisationDomainName:
              $ref: '#/components/schemas/AuthorisationDomainName'
            AuthorisationDomainRoleName:
              $ref: '#/components/schemas/AuthorisationDomainRoleName'
            AuthorityName:
              $ref: '#/components/schemas/AuthorityName'
            ServerAuthorityClaimId:
              $ref: '#/components/schemas/ServerAuthorityClaimId'
    ServerAuthorityClaimCreationRequest:
      required:
        - OrganisationAuthorisationDomainRoleClaimID
      type: object
      properties:
        OrganisationAuthorisationDomainRoleClaimID:
          $ref: '#/components/schemas/OrganisationAuthorityClaimId'
    ServerAuthorityClaimId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      format: uuid
      description: Unique ID associated with the authority claims for a server
    ServerAuthorityClaimPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/ServerAuthorityClaim'
    ServerAuthorityClaimUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/ServerAuthorityClaimCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    SnsNotificationWebhookUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI
    SoftwareAuthorityClaim:
      type: object
      allOf:
        - $ref: '#/components/schemas/SoftwareAuthorityClaimUpdateRequest'
        - type: object
          properties:
            AuthorisationDomainName:
              $ref: '#/components/schemas/AuthorisationDomainName'
            AuthorisationDomainRoleName:
              $ref: '#/components/schemas/AuthorisationDomainRoleName'
            AuthorityName:
              $ref: '#/components/schemas/AuthorityName'
            SoftwareAuthorityClaimId:
              $ref: '#/components/schemas/SoftwareAuthorityClaimId'
    SoftwareAuthorityClaimCreationRequest:
      type: object
      properties:
        AuthorisationDomain:
          maxLength: 30
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: Authorisation domain for the authority
          deprecated: true
        OrganisationAuthorisationDomainRoleClaimID:
          $ref: '#/components/schemas/OrganisationAuthorityClaimId'
        Role:
          maxLength: 60
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The authorisation domain role name
          example: PAGTO
          deprecated: true
    SoftwareAuthorityClaimId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with the authority claims for a software statement
    SoftwareAuthorityClaimUpdateRequest:
      required:
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/SoftwareAuthorityClaimCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    SoftwareAuthorityClaims:
      type: array
      items:
        $ref: '#/components/schemas/SoftwareAuthorityClaim'
    SoftwareStatement:
      type: object
      allOf:
        - $ref: '#/components/schemas/SoftwareStatementDetail'
      properties:
        SoftwareStatementCertifications:
          type: array
          items:
            $ref: '#/components/schemas/SoftwareStatementCertification'
    SoftwareStatementAssertion:
      maxLength: 4000
      pattern: ^[^<>]*$
      type: string
      description: A signed JWT (JWS)
    SoftwareStatementAudit:
      type: object
      allOf:
        - $ref: '#/components/schemas/AuditFields'
        - $ref: '#/components/schemas/SoftwareStatementAuditRecord'
    SoftwareStatementAuditRecord:
      type: object
      properties:
        AdditionalSoftwareMetadata:
          $ref: '#/components/schemas/AdditionalSoftwareMetadata'
        ApiWebhookUri:
          type: array
          items:
            $ref: '#/components/schemas/ApiWebhookUri'
        ClientId:
          $ref: '#/components/schemas/ClientId'
        ClientName:
          $ref: '#/components/schemas/ClientName'
        ClientUri:
          $ref: '#/components/schemas/ClientUri'
        Description:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Software Statement description
        Environment:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: The additional check for software statement, this field can avoid
        HomepageUri:
          $ref: '#/components/schemas/HomepageUri'
        IdTokenSignedResponseAlgorithm:
          $ref: '#/components/schemas/IdTokenSignedResponseAlgorithm'
        Locked:
          type: boolean
          description: Flag shows if assertion has been generated on the software statement - will be set to true when assertion is generated
        LogoUri:
          $ref: '#/components/schemas/LogoUri'
        Mode:
          maxLength: 8
          enum:
            - Live
            - Test
          type: string
          default: Live
          description: Software Statement mode
        NotificationWebhook:
          $ref: '#/components/schemas/SnsNotificationWebhookUri'
        NotificationWebhookStatus:
          $ref: '#/components/schemas/NotificationWebhookStatusEnum'
        OnBehalfOf:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: A reference to fourth party organisation resource on the RTS Directory if the registering Org is acting on behalf of another
        OpenidFederationEnabled:
          $ref: '#/components/schemas/OpenidFederationEnabled'
        OpenidFederationEntityManagementType:
          $ref: '#/components/schemas/OpenidFederationEntityManagementType'
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        OriginUri:
          type: array
          items:
            $ref: '#/components/schemas/OriginUri'
        PolicyUri:
          $ref: '#/components/schemas/PolicyUri'
        PostLogoutRedirectUris:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
        RedirectUri:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
        RelatedAuthorisationServer:
          $ref: '#/components/schemas/RelatedAuthorisationServer'
        RequireSignedRequestObject:
          $ref: '#/components/schemas/RequireSignedRequestObject'
        RtsClientCreated:
          type: boolean
          description: Client created flag
        SoftwareStatementId:
          $ref: '#/components/schemas/SoftwareStatementId'
        Status:
          $ref: '#/components/schemas/FullStatusEnum'
        TermsOfServiceUri:
          maxLength: 255
          pattern: ^(http://|https://).*
          type: string
          format: uri
          description: The Software Statement terms of service compliant URI
        TlsClientCertificateBoundAccessTokens:
          $ref: '#/components/schemas/TlsClientCertificateBoundAccessTokens'
        TokenEndpointAuthMethod:
          $ref: '#/components/schemas/TokenEndpointAuthMethod'
        UpdateFailed:
          type: boolean
          description: Flag shows if software statement is in failed update state
        UpdateFailedReason:
          pattern: ^[^<>]*$
          type: string
          description: Error message describing why the update failed
        Version:
          $ref: '#/components/schemas/SoftwareVersion'
    SoftwareStatementCertificateOrKeyType:
      pattern: ^[^<>]*$
      type: string
    SoftwareStatementCertification:
      type: object
      properties:
        CertificationExpirationDate:
          $ref: '#/components/schemas/CertificationExpirationDate'
        CertificationId:
          $ref: '#/components/schemas/SoftwareStatementCertificationId'
        CertificationStartDate:
          $ref: '#/components/schemas/CertificationStartDate'
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        CertificationURI:
          $ref: '#/components/schemas/ApiCertificationUri'
        ProfileType:
          $ref: '#/components/schemas/ProfileType'
        ProfileVariant:
          $ref: '#/components/schemas/ProfileVariant'
        ProfileVersion:
          type: number
          description: The version number of the certification
        SoftwareStatementId:
          $ref: '#/components/schemas/SoftwareStatementId'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    SoftwareStatementCertificationId:
      maxLength: 40
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Unique ID associated with the software statement certification
    SoftwareStatementCertificationRequest:
      required:
        - CertificationStartDate
        - CertificationStatus
        - ProfileVariant
        - ProfileType
        - ProfileVersion
        - CertificationURI
      type: object
      properties:
        CertificationStartDate:
          maxLength: 10
          pattern: ^[0-3][0-9]/[0-1][0-9]/2([0-9]{3})$
          type: string
        CertificationStatus:
          $ref: '#/components/schemas/CertificationStatusEnum'
        CertificationURI:
          $ref: '#/components/schemas/ApiCertificationUri'
        ProfileType:
          $ref: '#/components/schemas/ProfileType'
        ProfileVariant:
          $ref: '#/components/schemas/ProfileVariant'
        ProfileVersion:
          type: number
          description: The version number of the certification
        Status:
          $ref: '#/components/schemas/StatusEnum'
    SoftwareStatementCertifications:
      type: array
      items:
        $ref: '#/components/schemas/SoftwareStatementCertification'
    SoftwareStatementDetail:
      type: object
      properties:
        AdditionalSoftwareMetadata:
          $ref: '#/components/schemas/AdditionalSoftwareMetadata'
        ApiWebhookUri:
          type: array
          items:
            $ref: '#/components/schemas/ApiWebhookUri'
        ClientId:
          $ref: '#/components/schemas/ClientId'
        ClientName:
          $ref: '#/components/schemas/ClientName'
        ClientSecret:
          maxLength: 255
          type: string
          description: The client secret, only returned when a client is created/updated to have client_secret_basic auth type
        ClientUri:
          $ref: '#/components/schemas/ClientUri'
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        Description:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Software Statement description
        Environment:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: The additional check for software statement, this field can avoid
        Flags:
          $ref: '#/components/schemas/FlagArray'
        HomepageUri:
          $ref: '#/components/schemas/HomepageUri'
        IdTokenSignedResponseAlgorithm:
          $ref: '#/components/schemas/IdTokenSignedResponseAlgorithm'
        Locked:
          type: boolean
          description: Flag shows if assertion has been generated on the software statement - will be set to true when assertion is generated
        LogoUri:
          $ref: '#/components/schemas/LogoUri'
        Mode:
          $ref: '#/components/schemas/SoftwareStatementMode'
        NotificationWebhook:
          $ref: '#/components/schemas/SnsNotificationWebhookUri'
        NotificationWebhookStatus:
          $ref: '#/components/schemas/NotificationWebhookStatusEnum'
        OnBehalfOf:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: A reference to fourth party organisation resource on the RTS Directory if the registering Org is acting on behalf of another
        OpenidFederationEnabled:
          $ref: '#/components/schemas/OpenidFederationEnabled'
        OpenidFederationEntityManagementType:
          $ref: '#/components/schemas/OpenidFederationEntityManagementType'
        OrganisationId:
          $ref: '#/components/schemas/OrganisationId'
        OriginUri:
          type: array
          items:
            $ref: '#/components/schemas/OriginUri'
        PolicyUri:
          $ref: '#/components/schemas/PolicyUri'
        PostLogoutRedirectUris:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
        RedirectUri:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
        RelatedAuthorisationServer:
          $ref: '#/components/schemas/RelatedAuthorisationServer'
        RequireSignedRequestObject:
          $ref: '#/components/schemas/RequireSignedRequestObject'
        RtsClientCreated:
          type: boolean
          description: Client created flag
        SoftwareStatementId:
          $ref: '#/components/schemas/SoftwareStatementId'
        SoftwareVersion:
          $ref: '#/components/schemas/RFCCompliantSoftwareVersion'
        Status:
          $ref: '#/components/schemas/FullStatusEnum'
        TermsOfServiceUri:
          maxLength: 255
          pattern: ^(http://|https://).*
          type: string
          format: uri
          description: The Software Statement terms of service compliant URI
        TlsClientCertificateBoundAccessTokens:
          $ref: '#/components/schemas/TlsClientCertificateBoundAccessTokens'
        TokenEndpointAuthMethod:
          $ref: '#/components/schemas/TokenEndpointAuthMethod'
        UpdateFailed:
          type: boolean
          description: Flag shows if software statement is in failed update state
        UpdateFailedReason:
          pattern: ^[^<>]*$
          type: string
          description: Error message describing why the update failed
        Version:
          $ref: '#/components/schemas/SoftwareVersion'
    SoftwareStatementId:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: Unique Software Statement Id
    SoftwareStatementMode:
      enum:
        - Live
        - Test
      type: string
      default: Live
      description: Software Statement mode
    SoftwareStatementRequest:
      required:
        - ClientName
        - LogoUri
        - RedirectUri
      type: object
      properties:
        AdditionalSoftwareMetadata:
          $ref: '#/components/schemas/AdditionalSoftwareMetadata'
        ApiWebhookUri:
          type: array
          items:
            $ref: '#/components/schemas/ApiWebhookUri'
        ClientId:
          $ref: '#/components/schemas/ClientId'
        ClientName:
          $ref: '#/components/schemas/ClientName'
        ClientUri:
          $ref: '#/components/schemas/ClientUri'
        Description:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: Software Statement description
        Environment:
          maxLength: 40
          pattern: ^[^<>]*$
          type: string
          description: The additional check for software statement, this field can avoid environment checks.
        Flags:
          $ref: '#/components/schemas/FlagIDArray'
        HomepageUri:
          $ref: '#/components/schemas/HomepageUri'
        IdTokenSignedResponseAlgorithm:
          $ref: '#/components/schemas/IdTokenSignedResponseAlgorithm'
        LogoUri:
          $ref: '#/components/schemas/LogoUri'
        Mode:
          $ref: '#/components/schemas/SoftwareStatementMode'
        NotificationWebhook:
          $ref: '#/components/schemas/SnsNotificationWebhookUri'
        OnBehalfOf:
          maxLength: 255
          pattern: ^[^<>]*$
          type: string
          description: A reference to fourth party organisation resource on the RTS Directory if the registering Org is acting on behalf of another
        OpenidFederationEnabled:
          $ref: '#/components/schemas/OpenidFederationEnabled'
        OpenidFederationEntityManagementType:
          $ref: '#/components/schemas/OpenidFederationEntityManagementType'
        OriginUri:
          type: array
          items:
            $ref: '#/components/schemas/OriginUri'
        PolicyUri:
          $ref: '#/components/schemas/PolicyUri'
        PostLogoutRedirectUris:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
        RedirectUri:
          type: array
          items:
            $ref: '#/components/schemas/RedirectUri'
          description: The Software Statement redirect URIs
        RelatedAuthorisationServer:
          $ref: '#/components/schemas/RelatedAuthorisationServer'
        RequireSignedRequestObject:
          $ref: '#/components/schemas/RequireSignedRequestObject'
        Roles:
          type: array
          items:
            $ref: '#/components/schemas/SoftwareAuthorityClaimCreationRequest'
        SoftwareVersion:
          $ref: '#/components/schemas/RFCCompliantSoftwareVersion'
        TermsOfServiceUri:
          $ref: '#/components/schemas/TermsOfServiceUri'
        TlsClientCertificateBoundAccessTokens:
          $ref: '#/components/schemas/TlsClientCertificateBoundAccessTokens'
        TokenEndpointAuthMethod:
          $ref: '#/components/schemas/TokenEndpointAuthMethod'
        Version:
          $ref: '#/components/schemas/SoftwareVersion'
    SoftwareStatementResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/SoftwareStatement'
      properties:
        OperationWarnings:
          type: array
          items:
            $ref: '#/components/schemas/OperationWarning'
    SoftwareStatementUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/SoftwareStatementRequest'
        - type: object
          properties:
            Status:
              enum:
                - Active
                - Suspended
              type: string
              default: Active
              description: Should this software statement be active or suspended?
    SoftwareStatements:
      type: array
      items:
        $ref: '#/components/schemas/SoftwareStatement'
      description: The list of Software Statements
    SoftwareStatementsPage:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/SoftwareStatement'
      description: The list of Software Statements
    SoftwareVersion:
      type: number
      description: Software Statement version as provided by the organisation's software team
      deprecated: true
    SsoConfigurationCreationRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseSsoConfigurationRequest'
        - type: object
          properties:
            RedirectUriSuffix:
              $ref: '#/components/schemas/SsoConfigurationRedirectUriSuffix'
      description: Request object used to create an SSO Configuration for a given OpenID Connect Authorization Server
    SsoConfigurationDisplayName:
      maxLength: 64
      type: string
      description: Display name for the SSO configuration
      nullable: false
    SsoConfigurationID:
      type: string
      format: uuid
      description: Unique identifier of the given OpenID Connect Provider's SSO Configuration
      nullable: false
    SsoConfigurationObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseSsoConfigurationRequest'
        - type: object
          properties:
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            ID:
              $ref: '#/components/schemas/SsoConfigurationID'
            RedirectUri:
              $ref: '#/components/schemas/RedirectUri'
            ServerID:
              $ref: '#/components/schemas/AuthorisationServerId'
            Status:
              $ref: '#/components/schemas/StatusEnum'
            TextRecord:
              maxLength: 255
              type: string
              description: DNS text record value for the SSO configuration
              nullable: false
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
      description: SSO Configuration for a given OpenID Connect Authorization Server
    SsoConfigurationObjectPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/SsoConfigurationObject'
    SsoConfigurationRedirectUriSuffix:
      maxLength: 40
      minLength: 1
      type: string
      description: DNS text record value for the SSO configuration
    SsoConfigurationUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseSsoConfigurationRequest'
        - required:
            - Status
          type: object
          properties:
            RedirectUriSuffix:
              $ref: '#/components/schemas/SsoConfigurationRedirectUriSuffix'
            Status:
              $ref: '#/components/schemas/StatusEnum'
      description: Request object used to update an existing SSO Configuration for a given OpenID Connect Authorization Server
    SsoConfigurationVersionCreationRequest:
      required:
        - ClientID
        - RestrictedDomains
        - SupportedDomains
        - GroupClaim
        - AuthenticationPolicies
      type: object
      properties:
        AdditionalScopeValues:
          maxLength: 255
          type: string
          default: ""
          description: Additional space-separated scope values that will be requested alongside the default of openid, email and profile
        AuthenticationPolicies:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationPolicyEnum'
          description: List of sign-in policies that are applied during authentication
        ClientID:
          maxLength: 255
          type: string
          description: The Client ID to be used by the Raidiam IDP to retrieve identity claims from the external IDP used for SSO
          nullable: false
        GroupClaim:
          maxLength: 60
          type: string
          description: The name of the claim in the ID Token returned by the external IDP containing the list of user group identifiers
        GroupClaimPath:
          maxLength: 255
          pattern: ^\$[.\[].*
          type: string
          default: $.
          description: Valid JSON Path indicating the location in the ID Token of the group claim
        RestrictedDomains:
          maxItems: 10
          type: array
          items:
            maxLength: 255
            pattern: ^\S*$
            type: string
          description: List of email domains that will be forced to use this IDP for SSO
        SupportedDomains:
          maxItems: 10
          type: array
          items:
            maxLength: 255
            pattern: ^\S*$
            type: string
          description: List email domains that will have the option to use this IDP for SSO
      description: Request object used to create an SSO Configuration Version for a given Authorization Server's SSO Configuration
    SsoConfigurationVersionID:
      type: string
      format: uuid
      description: Unique identifier of the given OpenID Connect Provider's SSO Configuration
      nullable: false
    SsoConfigurationVersionObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/SsoConfigurationVersionUpdateRequest'
        - type: object
          properties:
            CreatedAt:
              $ref: '#/components/schemas/CreatedAt'
            ID:
              $ref: '#/components/schemas/SsoConfigurationVersionID'
            SsoConfigurationID:
              $ref: '#/components/schemas/SsoConfigurationID'
            UpdatedAt:
              $ref: '#/components/schemas/UpdatedAt'
            Version:
              type: integer
              format: int16
              description: Version number of the SSO configuration
              nullable: false
      description: SSO Configuration Version for a given IDP SSO configuration
    SsoConfigurationVersionObjectPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/SsoConfigurationVersionObject'
    SsoConfigurationVersionUpdateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/SsoConfigurationVersionCreationRequest'
        - required:
            - Status
          type: object
          properties:
            Status:
              $ref: '#/components/schemas/ApprovalFlowStatusEnum'
      description: Request object used to update an existing SSO Configuration for a given OpenID Connect Authorization Server
    StatusEnum:
      enum:
        - Active
        - Inactive
      type: string
      default: Active
      description: Current status of this resource
    SubDomainCreationRequest:
      required:
        - AuthorisationDomainID
      type: object
      properties:
        AuthorisationDomainID:
          $ref: '#/components/schemas/AuthorisationDomainID'
    SubDomainID:
      type: string
      format: uuid
      description: Unique identifier for a sub-domain registration
      nullable: false
    SubDomainList:
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
        - type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/SubDomainObject'
    SubDomainObject:
      type: object
      allOf:
        - $ref: '#/components/schemas/SubDomainUpdateRequest'
        - type: object
          properties:
            ID:
              $ref: '#/components/schemas/SubDomainID'
    SubDomainUpdateRequest:
      required:
        - AuthorisationDomainID
        - Status
      type: object
      allOf:
        - $ref: '#/components/schemas/SubDomainCreationRequest'
        - type: object
          properties:
            Status:
              $ref: '#/components/schemas/StatusEnum'
    SuperUser:
      type: object
      allOf:
        - $ref: '#/components/schemas/UserDetails'
    SuperUsersPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/SuperUser'
    SupportsCiba:
      type: boolean
      default: false
      description: Flag to denote if this authorisation server supports Client Initiated Backchannel Authentication
    SupportsDCR:
      type: boolean
      default: false
      description: Flag to denote if this authorisation server supports Dynamic Client Registration
    SupportsRedirect:
      type: boolean
      default: false
      description: Flag to denote if this authorisation server supports redirect
    TaxRegistrationNumber:
      maxLength: 255
      minLength: 1
      pattern: ^[^<>]*$
      type: string
      description: Company tax registration number
    TermsAndConditionsCreateRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/TermsAndConditionsItemDetails'
      properties:
        ExternalSigningService:
          $ref: '#/components/schemas/ExternalSigningService'
    TermsAndConditionsDetail:
      type: object
      properties:
        ExternalSigningServiceEnvelopeId:
          $ref: '#/components/schemas/ExternalSigningServiceEnvelopeId'
        ExternalSigningServiceEnvelopePasscode:
          type: string
          description: Access code for the specifier to fill in the signer details. This will be populated only once, when signing is initiated
        ExternalSigningServiceEnvelopeStatus:
          $ref: '#/components/schemas/ExternalSigningServiceEnvelopeStatus'
        InititatedDate:
          maxLength: 255
          type: string
          description: Terms and Conditions initiated date
        TermsAndConditionsItem:
          $ref: '#/components/schemas/TermsAndConditionsItem'
      description: TnC details Parent
    TermsAndConditionsDetails:
      type: object
      properties:
        RequiresSigning:
          type: boolean
          description: Does the Directory TnC require signing
        TermsAndConditionsItem:
          $ref: '#/components/schemas/TermsAndConditionsItem'
        Updated:
          type: boolean
          description: Has the document updated since the user signed
      description: Details of TnC
    TermsAndConditionsItem:
      type: object
      allOf:
        - $ref: '#/components/schemas/TermsAndConditionsItemDetails'
      properties:
        ExternalSigningService:
          $ref: '#/components/schemas/ExternalSigningService'
        Version:
          type: integer
          description: Version of the TnC
    TermsAndConditionsItemDetails:
      required:
        - Type
        - Content
        - Name
      type: object
      properties:
        Content:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The MarkDown of the TnC
        Name:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The Name of the TnC
        RoleIds:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainRoleID'
          description: Array of Unique identifiers for the Authorisation Domain Roles the Terms and Conditions Item is linked to
        Status:
          $ref: '#/components/schemas/StatusEnum'
        TnCId:
          type: integer
          description: Unique identifier for the Terms and Conditions Item
          readOnly: true
        Type:
          enum:
            - Participant
            - Directory
          type: string
          description: Role for which this TnC applies
    TermsAndConditionsPage:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaginationProperties'
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/TermsAndConditionsItem'
    TermsAndConditionsUpdateRequest:
      required:
        - Content
      type: object
      properties:
        Content:
          minLength: 1
          pattern: ^[^<>]*$
          type: string
          description: The MarkDown of the TnC
        ExternalSigningService:
          $ref: '#/components/schemas/ExternalSigningService'
        RoleIds:
          type: array
          items:
            $ref: '#/components/schemas/AuthorisationDomainRoleID'
        Status:
          $ref: '#/components/schemas/StatusEnum'
    TermsOfServiceUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: A compliant URI
      nullable: true
    TlsClientCertificateBoundAccessTokens:
      type: boolean
      default: true
      description: Are the tokens issued for this client bound to a client tls certificate
    TnCId:
      type: integer
      description: TnC unique identifier
    TnCsToBeSigned:
      type: array
      items:
        $ref: '#/components/schemas/TermsAndConditionsItem'
    TokenEndpointAuthMethod:
      maxLength: 60
      minLength: 1
      enum:
        - private_key_jwt
        - tls_client_auth
        - client_secret_basic
      type: string
      default: tls_client_auth
      description: Token endpoint authentication method
    TosUri:
      maxLength: 255
      pattern: ^(http://|https://).*
      type: string
      format: uri
      description: The Software Statement terms of service compliant URI
    TypeID:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: Type ID of the certification
    TypeName:
      pattern: ^[^<>]*$
      type: string
      description: Type name of the certification
    UniqueTechnicalIdentifier:
      maxLength: 255
      pattern: ^[^<>]*$
      type: string
    UniqueTechnicalIdentifiers:
      maxItems: 16
      uniqueItems: true
      type: array
      items:
        $ref: '#/components/schemas/UniqueTechnicalIdentifier'
    UnlockSoftwareStatementRequest:
      type: object
      properties:
        Unlock:
          type: boolean
          description: Unlock Software Statement
    UpdatedAt:
      type: string
      format: date-time
      readOnly: true
    UserCreationRequest:
      required:
        - Email
      type: object
      properties:
        Email:
          minLength: 1
          pattern: ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
          type: string
          description: The user email address
    UserDetail:
      type: object
      properties:
        BasicInformation:
          type: object
          properties:
            Email:
              pattern: ^[^<>]*$
              type: string
            Status:
              $ref: '#/components/schemas/StatusEnum'
            UserEmail:
              pattern: ^[^<>]*$
              type: string
              deprecated: true
            UserID:
              $ref: '#/components/schemas/UserID'
        CertificationManager:
          type: boolean
          description: Is the user a certification manager
        CreatedAt:
          $ref: '#/components/schemas/CreatedAt'
        DataAdministrator:
          type: boolean
          description: Is the user a data administrator
        DirectoryTermsAndConditionsDetails:
          $ref: '#/components/schemas/TermsAndConditionsDetails'
        OrgAccessDetails:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OrgAccessDetail'
          description: Map Key - OrgId, Map Value - Org Access Detail(containing info about org admin and domain role)
        SuperUser:
          type: boolean
          description: Is the user a super user
        SystemUser:
          type: boolean
          description: Is the user a system user
        UpdatedAt:
          $ref: '#/components/schemas/UpdatedAt'
    UserDetails:
      type: object
      properties:
        Email:
          pattern: ^[^<>]*$
          type: string
          description: Users email address
        Status:
          $ref: '#/components/schemas/StatusEnum'
        UserID:
          $ref: '#/components/schemas/UserID'
    UserID:
      type: string
      format: uuid
      description: The unique ID of a user
    UserUpdateRequest:
      required:
        - Status
      type: object
      properties:
        Status:
          $ref: '#/components/schemas/StatusEnum'
    VariantID:
      maxLength: 40
      pattern: ^[^<>]*$
      type: string
      description: Variant ID of the certification type
    VariantName:
      pattern: ^[^<>]*$
      type: string
      description: Variant Name of the certification type
    xFapiInteractionId:
      maxLength: 100
      minLength: 1
      pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$
      type: string
      description: An RFC4122 UID used as a correlation id.
      example: 73cac523-d3ae-2289-b106-330a6218710d
  parameters:
    ActionType:
      name: actionType
      in: query
      description: The type of action to search for.
      required: false
      schema:
        $ref: '#/components/schemas/ActionType'
    AlgFilter:
      name: Alg
      in: query
      description: Will return only entries whose JWK 'alg' value matches any of the supplied values
      required: false
      schema:
        type: array
        items:
          type: string
    ApiDiscoveryEndpointId:
      name: ApiDiscoveryEndpointId
      in: path
      description: The api discovery endpoint Id
      required: true
      schema:
        $ref: '#/components/schemas/ApiEndpointId'
    ApiFamilyConformanceTest:
      name: certification
      in: query
      description: A boolean that represents api families that have automatic certification
      required: false
      schema:
        type: boolean
    ApiFamilyID:
      name: ApiFamilyID
      in: path
      description: The ID of the api family to target
      required: true
      schema:
        $ref: '#/components/schemas/ApiFamilyID'
    ApiFamilyName:
      name: name
      in: query
      description: The name of the api family
      required: false
      schema:
        $ref: '#/components/schemas/ApiFamilyName'
    ApiFamilyStatus:
      name: status
      in: query
      description: The status of the api family
      required: false
      schema:
        $ref: '#/components/schemas/StatusEnum'
    ApiFamilyVersion:
      name: version
      in: query
      description: A string that represents the version of the api families
      required: false
      schema:
        type: string
    ApiResourceId:
      name: ApiResourceId
      in: path
      description: The api version Id
      required: true
      schema:
        $ref: '#/components/schemas/ApiResourceId'
    ApprovalFlowStatusEnumQueryParameter:
      name: status
      in: query
      description: Filters the response by one or more status values
      required: false
      schema:
        $ref: '#/components/schemas/ApprovalFlowStatusEnum'
    AttachedToFilter:
      name: AttachedTo
      in: query
      description: Will return only key material attached to at least one entity of any of the supplied types
      required: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/KeyMaterialEntityType'
    AuthorisationDomainIdQuery:
      name: AuthorisationDomainID
      in: query
      description: The authorisation domain id
      required: false
      schema:
        $ref: '#/components/schemas/AuthorisationDomainID'
    AuthorisationDomainName:
      name: AuthorisationDomainName
      in: path
      description: Authorisation Domain Name. Eg:PSD2
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationDomainName'
    AuthorisationDomainRoleIdentifier:
      name: AuthorisationDomainRoleIdentifier
      in: path
      description: Authorisation Domain Role Id, a UUID
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationDomainRoleID'
    AuthorisationDomainSystemID:
      name: AuthorisationDomainSystemID
      in: path
      description: a UUID denoting a specific authorisation domain system
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationDomainSystemID'
    AuthorisationDomainUserId:
      name: AuthorisationDomainUserId
      in: path
      description: Unique record Id to identify Domain User
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationDomainUserId'
    AuthorisationDomainUserTypeID:
      name: AuthorisationDomainUserTypeID
      in: path
      description: A UUID denoting a specific authorisation domain user type
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationDomainUserTypeID'
    AuthorisationServerCertificationId:
      name: AuthorisationServerCertificationId
      in: path
      description: Auth server certification Id
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationServerCertificationId'
    AuthorisationServerId:
      name: AuthorisationServerId
      in: path
      description: The authorisation server Id
      required: true
      schema:
        $ref: '#/components/schemas/AuthorisationServerId'
    AuthorityAuthorisationDomainId:
      name: AuthorityAuthorisationDomainId
      in: path
      description: ID of the Authority mapped with Authorisation Domain
      required: true
      schema:
        $ref: '#/components/schemas/AuthorityAuthorisationDomainId'
    AuthorityId:
      name: AuthorityId
      in: path
      description: The reference authority Id
      required: true
      schema:
        $ref: '#/components/schemas/AuthorityId'
    AuthorityIdQuery:
      name: AuthorityID
      in: query
      description: The reference authority Id
      required: false
      schema:
        $ref: '#/components/schemas/AuthorityId'
    CertificateOrKeyId:
      name: CertificateOrKeyId
      in: path
      description: The certificate or key Id
      required: true
      schema:
        $ref: '#/components/schemas/CertificateOrKeyId'
    ClientId:
      name: ClientId
      in: path
      description: Oauth clientId
      required: true
      schema:
        $ref: '#/components/schemas/ClientId'
    ConformanceConfigurationID:
      name: ConformanceConfigurationID
      in: path
      description: The ID of the conformance configuration to target
      required: true
      schema:
        $ref: '#/components/schemas/ConformanceConfigurationID'
    ContactId:
      name: ContactId
      in: path
      description: The contact id
      required: true
      schema:
        $ref: '#/components/schemas/ContactId'
    ContactTypeID:
      name: ContactTypeID
      in: path
      description: The ID of the contact type to target
      required: true
      schema:
        $ref: '#/components/schemas/ContactTypeID'
    ContactTypeName:
      name: contactType
      in: query
      description: The name of the contact type
      required: false
      schema:
        $ref: '#/components/schemas/ContactTypeName'
    ContactTypeStatus:
      name: status
      in: query
      description: The status of the contact type
      required: false
      schema:
        $ref: '#/components/schemas/StatusEnum'
    ContactTypesAccessLevel:
      name: accessLevel
      in: query
      description: the access level of the contact type
      required: false
      schema:
        $ref: '#/components/schemas/ContactTypesAccessLevel'
    ContainsOpenIdDiscoveryDocument:
      name: containsOpenIdDiscoveryDocument
      in: query
      description: Filter responses by whether they contain an Open ID Discovery Document
      required: false
      schema:
        type: boolean
    CustomClaimID:
      name: CustomClaimID
      in: path
      description: a UUID denoting a specific custom claim
      required: true
      schema:
        $ref: '#/components/schemas/CustomClaimID'
    DocumentID:
      name: DocumentID
      in: path
      description: The regulatory Document ID
      required: true
      schema:
        $ref: '#/components/schemas/DocumentID'
    DocumentTypeID:
      name: DocumentTypeID
      in: path
      description: The regulatory Document Type ID
      required: true
      schema:
        $ref: '#/components/schemas/DocumentTypeID'
    ExternalSigningServiceEnvelopeId:
      name: ExternalSigningServiceEnvelopeId
      in: path
      description: The envelope id
      required: true
      schema:
        $ref: '#/components/schemas/ExternalSigningServiceEnvelopeId'
    FederationId:
      name: FederationId
      in: path
      description: The federation id
      required: true
      schema:
        $ref: '#/components/schemas/FederationId'
    FilterBy:
      name: filterBy
      in: query
      description: Query by CustomerFriendlyName or AuthorisationServerId that contain the given string, case insensitive
      required: false
      schema:
        type: string
    FlagID:
      name: FlagID
      in: path
      description: The ID of the flag to target
      required: true
      schema:
        $ref: '#/components/schemas/FlagID'
    FlagName:
      name: name
      in: query
      description: The name of the flag
      required: false
      schema:
        $ref: '#/components/schemas/FlagName'
    FlagStatus:
      name: status
      in: query
      description: The status of the flag
      required: false
      schema:
        $ref: '#/components/schemas/StatusEnum'
    FlagType:
      name: type
      in: query
      description: The type of the flag
      required: false
      schema:
        $ref: '#/components/schemas/FlagType'
    GlobalSearchStatus:
      name: status
      in: query
      description: The status of the resource
      required: false
      schema:
        $ref: '#/components/schemas/GlobalSearchStatusEnums'
    HasPurposeFilter:
      name: HasPurpose
      in: query
      description: Will return only key material with at least one attachment carrying any of the supplied purposes
      required: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/KeyMaterialPurposeEnum'
    Identifier:
      name: identifier
      in: query
      description: The string to search for
      required: true
      schema:
        $ref: '#/components/schemas/Identifier'
    KeyMaterialAttachmentID:
      name: KeyMaterialAttachmentID
      in: path
      description: Unique identifier for an attachment of an item of key material
      required: true
      schema:
        $ref: '#/components/schemas/KeyMaterialAttachmentID'
    KeyMaterialID:
      name: KeyMaterialID
      in: path
      description: Unique identifier for an item of key material
      required: true
      schema:
        $ref: '#/components/schemas/KeyMaterialID'
    MetadataId:
      name: MetadataId
      in: path
      description: The metadata id object
      required: true
      schema:
        $ref: '#/components/schemas/MetadataId'
    MetadataPolicyId:
      name: MetadataPolicyId
      in: path
      description: The metadata policy id
      required: true
      schema:
        $ref: '#/components/schemas/MetadataPolicyId'
    MetadataPolicyType:
      name: type
      in: query
      description: The metadata policy type
      required: false
      schema:
        $ref: '#/components/schemas/MetadataPolicyTypeEnum'
    MetadataPolicyVersion:
      name: version
      in: query
      description: The metadata policy version. Providing a value of '0' returns the latest version
      required: false
      schema:
        $ref: '#/components/schemas/MetadataPolicyVersion'
    OmitFromEcosystem:
      name: omitFromEcosystem
      in: query
      description: Filter responses to those whose 'OmitFromEcosystem' matches the input
      required: false
      schema:
        type: boolean
    OrganisationAuthorisationId:
      name: OrganisationAuthorisationId
      in: path
      description: The authorisation ID for an organisation's authority claims
      required: true
      schema:
        $ref: '#/components/schemas/OrganisationAuthorisationId'
    OrganisationAuthorityClaimId:
      name: OrganisationAuthorityClaimId
      in: path
      description: The Authority claims ID for an organisation
      required: true
      schema:
        $ref: '#/components/schemas/OrganisationAuthorityClaimId'
    OrganisationAuthorityDomainClaimId:
      name: OrganisationAuthorityDomainClaimId
      in: path
      description: Organisation Authority Domain Claim Id
      required: true
      schema:
        $ref: '#/components/schemas/OrganisationAuthorityDomainClaimId'
    OrganisationCertificateType:
      name: OrganisationCertificateType
      in: path
      description: The certificate type
      required: true
      schema:
        $ref: '#/components/schemas/OrganisationCertificateType'
    OrganisationId:
      name: OrganisationId
      in: path
      description: The organisation ID
      required: true
      schema:
        $ref: '#/components/schemas/OrganisationId'
    OrganisationIdQueryParameter:
      name: organisationId
      in: query
      description: The organisation ID. Required if using API as an organisation administrator
      required: false
      schema:
        $ref: '#/components/schemas/OrganisationId'
    PageNumber:
      name: page
      in: query
      description: The page number to return of the result set
      schema:
        type: integer
    PageSize:
      name: size
      in: query
      description: The size of the pages to return
      schema:
        type: integer
    PageSort:
      name: sort
      in: query
      description: The field name to sort
      style: form
      explode: true
      schema:
        oneOf:
          - type: string
          - type: array
            items:
              type: string
    ParentResourceId:
      name: parentResourceId
      in: query
      description: The ID of the parent resource we want to parse by.
      required: false
      schema:
        type: string
    PerformedBy:
      name: performedBy
      in: query
      description: The user email you want to parse by. This will be performed for createdBy and updatedBy based on the revision type
      required: false
      schema:
        type: string
    PolicyApprovalStatusEnum:
      name: policyStatus
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/PolicyApprovalStatusEnum'
    QueryAuthorisationDomainRoleName:
      name: AuthorisationDomainRoleName
      in: query
      description: Authorisation Domain Role Name. Eg:TPP
      required: false
      schema:
        $ref: '#/components/schemas/AuthorisationDomainRoleName'
    ResourceId:
      name: resourceId
      in: query
      description: The ID of the specific resource we want to parse by.
      required: false
      schema:
        type: string
    ResourceType:
      name: resourceType
      in: query
      description: The type of resource to search for.
      required: true
      schema:
        $ref: '#/components/schemas/ResourceType'
    ResourceTypes:
      name: resourceTypes
      in: query
      description: Comma-separated list of resource types to filter by
      required: false
      schema:
        $ref: '#/components/schemas/GlobalSearchResourceTypes'
    ServerAuthorityClaimID:
      name: ServerAuthorityClaimID
      in: path
      description: The server's authority claim ID
      required: true
      schema:
        $ref: '#/components/schemas/ServerAuthorityClaimId'
    SoftwareAuthorityClaimId:
      name: SoftwareAuthorityClaimId
      in: path
      description: The software statement's authority claim ID
      required: true
      schema:
        $ref: '#/components/schemas/SoftwareAuthorityClaimId'
    SoftwareStatementCertificateOrKeyType:
      name: SoftwareStatementCertificateOrKeyType
      in: path
      description: The certificate or key type that can be associated with a software statement
      required: true
      schema:
        $ref: '#/components/schemas/SoftwareStatementCertificateOrKeyType'
    SoftwareStatementCertificationId:
      name: SoftwareStatementCertificationId
      in: path
      description: Software Statement certification Id
      required: true
      schema:
        $ref: '#/components/schemas/SoftwareStatementCertificationId'
    SoftwareStatementId:
      name: SoftwareStatementId
      in: path
      description: The software statement ID
      required: true
      schema:
        $ref: '#/components/schemas/SoftwareStatementId'
    SoftwareStatementStatus:
      name: status
      in: query
      description: Filters software statements by the provided status
      required: false
      schema:
        $ref: '#/components/schemas/FullStatusEnum'
    SsoConfigurationIdPathParameter:
      name: ssoConfigurationId
      in: path
      description: The unique identifier representing a given sso configuration of an authorisation server
      required: true
      schema:
        $ref: '#/components/schemas/SsoConfigurationID'
    SsoConfigurationVersionIdPathParameter:
      name: versionId
      in: path
      description: The unique identifier representing a given version of sso configuration for an sso-enabled authorisation server
      required: true
      schema:
        $ref: '#/components/schemas/SsoConfigurationVersionID'
    Status:
      name: status
      in: query
      description: Filter responses by status
      required: false
      schema:
        $ref: '#/components/schemas/StatusEnum'
    SubDomainID:
      name: SubDomainID
      in: path
      description: The sub-domains unique registration ID
      required: true
      schema:
        $ref: '#/components/schemas/SubDomainID'
    TnCId:
      name: TnCId
      in: path
      description: Terms and Conditions unique identifier
      required: true
      schema:
        $ref: '#/components/schemas/TnCId'
    TypeID:
      name: TypeID
      in: path
      description: The UUID used to denote the certification type in question
      required: true
      schema:
        $ref: '#/components/schemas/TypeID'
    UseFilter:
      name: Use
      in: query
      description: Will return only entries whose JWK 'use' value matches any of the supplied values
      required: false
      schema:
        type: array
        items:
          type: string
    UserID:
      name: UserID
      in: path
      description: UUID of the user
      required: true
      schema:
        $ref: '#/components/schemas/UserID'
    VariantID:
      name: VariantID
      in: path
      description: The UUID used to denote the certification type variant in question
      required: true
      schema:
        $ref: '#/components/schemas/VariantID'
    X5tHashS256Filter:
      name: X5tHashS256
      in: query
      description: Will return only entries whose JWK 'x5t#S256' certificate thumbprint matches any of the supplied values
      required: false
      schema:
        type: array
        items:
          type: string
    clientName:
      name: name
      in: query
      description: 'Search the available clients based on a name match. Match is partial so a search for ''abc'' will return clients ''abc'',''abc1'', ''1abc'' and ''1abc2'' '
      required: false
      schema:
        type: string
      example: A Client
    clientRole:
      name: role
      in: query
      description: A role name, clients that have this role (whether active or inactive) will be returned. Clients with this role in an Inactive state will be returned but will not show the role in their roles array
      required: false
      schema:
        type: string
      example: RP-ROLE
    clientStatus:
      name: status
      in: query
      description: Return clients with a matching status. Available values are Active, Inactive and Suspended
      required: false
      schema:
        type: string
      example: Active
    endDate:
      name: endDate
      in: query
      description: Optional end of date range to constrain the set of results returned. This will restrict the clients returned to those whose metadata was most recently modified before the specified sendDate. The date must be supplied in RFC3339 format. If not supplied, the endDate used will be the current date and time.
      required: false
      schema:
        type: string
        format: date-time
      example: "2022-05-15T23:20:50Z"
    startDate:
      name: startDate
      in: query
      description: Optional start of date range to constrain the set of results returned. This will restrict the clients returned to those whose metadata was most recently modified after the specified startDate. The date must be supplied in RFC3339 format. If not supplied, the startDate used will be the epoch.
      required: false
      schema:
        type: string
        format: date-time
      example: "2022-05-12T23:20:50Z"
    x-customer-user-agent:
      name: x-customer-user-agent
      in: header
      description: Indicates the user-agent that the PSU is using.
      required: false
      schema:
        type: string
    x-fapi-auth-date:
      name: x-fapi-auth-date
      in: header
      description: "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC"
      required: false
      schema:
        pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
        type: string
    x-fapi-customer-ip-address:
      name: x-fapi-customer-ip-address
      in: header
      description: The PSU's IP address if the PSU is currently logged in with the TPP.
      required: false
      schema:
        type: string
    x-fapi-interaction-id:
      name: x-fapi-interaction-id
      in: header
      description: An RFC4122 UID used as a correlation id.
      required: false
      schema:
        type: string
  requestBodies:
    AmendCertificateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AmendCertificateRequest'
      required: true
    ApiDiscoveryEndpointRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiDiscoveryEndpointRequest'
    ApiFamilyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiFamilyRequest'
    ApiFamilyUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiFamilyUpdateRequest'
    ApiResourceMetadataRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResourceMetadata'
      required: true
    ApiResourceRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResourceRequest'
    ApiResourceUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResourceUpdateRequest'
    AuthorisationDomainRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainRequest'
      required: true
    AuthorisationDomainRoleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainRoleRequest'
      required: true
    AuthorisationDomainRoleUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainRoleUpdateRequest'
      required: true
    AuthorisationDomainSystemRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainSystemRequest'
      required: true
    AuthorisationDomainUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUpdateRequest'
      required: true
    AuthorisationDomainUserCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUserCreateRequest'
      required: true
    AuthorisationDomainUserTypeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUserTypeRequest'
      required: true
    AuthorisationServerCertificationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerCertificationRequest'
      required: true
    AuthorisationServerCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerCreationRequest'
      required: true
    AuthorisationServerUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerUpdateRequest'
      required: true
    AuthorityAuthorisationDomainRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityAuthorisationDomainRequest'
      required: true
    AuthorityCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityCreationRequest'
      required: true
    AuthorityUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityUpdateRequest'
      required: true
    CSROrKey:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificateOrKeyJsonRequest'
        application/x-pem-file:
          schema:
            $ref: '#/components/schemas/CertificateOrKeyOrJWT'
      required: true
    CertificationTypeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypeRequest'
    CertificationTypeVariantRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypeVariantRequest'
    CertificationTypeVariantUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypeVariantUpdateRequest'
    ConformanceConfigurationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConformanceConfigurationRequest'
    ContactRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactRequest'
      required: true
    ContactTypeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactTypeRequest'
    ContactTypeUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactTypeRequest'
    CustomClaimCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomClaimCreationRequest'
    CustomClaimUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomClaimUpdateRequest'
    DataAdministratorCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserCreationRequest'
      required: true
    EssSignRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EssSignRequest'
    FederationMetadataPolicyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationMetadataPolicyRequest'
      required: true
    FederationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationRequest'
      required: true
    FlagRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlagRequest'
    FlagUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlagUpdateRequest'
    KeyMaterialAttachmentCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialAttachmentCreationRequest'
    KeyMaterialAttachmentUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialAttachmentUpdateRequest'
    KeyMaterialCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialCreationRequest'
    KeyMaterialUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialUpdateRequestWrapper'
    MetadataRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MetadataRequest'
      required: true
    OrgAdminUserCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrgAdminUserCreateRequest'
    Organisation:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationRequest'
      required: true
    OrganisationAuthorityClaimAuthorisationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisationRequest'
      required: true
    OrganisationAuthorityDomainClaimCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainClaimCreationRequest'
      required: true
    OrganisationAuthorityDomainClaimUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainClaimUpdateRequest'
      required: true
    OrganisationAuthorityDomainRoleClaimCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimCreationRequest'
      required: true
    OrganisationAuthorityDomainRoleClaimUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimUpdateRequest'
      required: true
    OrganisationConformanceTest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationConformanceTest'
      required: true
    OrganisationDocumentRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationDocumentRequest'
      required: true
    OrganisationDocumentUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationDocumentUpdateRequest'
      required: true
    OrganisationUpdate:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationUpdateRequest'
      required: true
    RegulatoryDocumentTypeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegulatoryDocumentTypeRequest'
      required: true
    RegulatoryDocumentTypeUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegulatoryDocumentTypeUpdateRequest'
      required: true
    ServerAuthorityClaimCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerAuthorityClaimCreationRequest'
      required: true
    ServerAuthorityClaimUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerAuthorityClaimUpdateRequest'
      required: true
    SoftwareAuthorityClaimCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareAuthorityClaimCreationRequest'
      required: true
    SoftwareAuthorityClaimUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareAuthorityClaimUpdateRequest'
      required: true
    SoftwareStatementCertificationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementCertificationRequest'
      required: true
    SoftwareStatementRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementRequest'
      required: true
    SoftwareStatementUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementUpdateRequest'
      required: true
    SsoConfigurationCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationCreationRequest'
    SsoConfigurationUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationUpdateRequest'
    SsoConfigurationVersionCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationVersionCreationRequest'
    SsoConfigurationVersionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationVersionUpdateRequest'
    SubDomainCreationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubDomainCreationRequest'
      required: true
    SubDomainUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubDomainUpdateRequest'
      required: true
    TermsAndConditionsCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TermsAndConditionsCreateRequest'
      required: true
    TermsAndConditionsUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TermsAndConditionsUpdateRequest'
      required: true
    UnlockSoftwareStatementRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlockSoftwareStatementRequest'
      required: true
    UserUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserUpdateRequest'
      required: true
  responses:
    ApiDiscoveryEndpoint:
      description: Authorisation server response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiDiscoveryEndpoint'
    ApiDiscoveryEndpointFamilyResponse:
      description: Api endpoint creation response with family complete flag
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiDiscoveryEndpointFamilyResponse'
    ApiDiscoveryEndpoints:
      description: Authorisation server response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiDiscoveryEndpoints'
    ApiFamiliesPage:
      description: Paginated response with all api families
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiFamiliesPage'
    ApiFamily:
      description: Response with for a single api family
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiFamily'
    ApiResource:
      description: Authorisation server Api Resource response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResource'
    ApiResourceMetadataItemResponse:
      description: A response of a given API resource metadata including the status
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResourceMetadata'
    ApiResources:
      description: Authorisation server Api Resources response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResources'
    AuditHistoryPage:
      description: Audit history in paginated form
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuditHistoryPage'
    AuthorisationDomain:
      description: Data of an authorisation domain mapped to an authority
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomain'
    AuthorisationDomainRole:
      description: Role data
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainRole'
    AuthorisationDomainRolesPage:
      description: All data of authorisation domains mapped to an authority
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainRolesPage'
    AuthorisationDomainSystem:
      description: Authorisation domain user system
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainSystem'
    AuthorisationDomainSystemsPage:
      description: All authorisation domain user systems paginated
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainSystemsPage'
    AuthorisationDomainUser:
      description: User data belonging to an authorisation domain
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUser'
    AuthorisationDomainUserType:
      description: Authorisation domain user type
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUserType'
    AuthorisationDomainUserTypesPage:
      description: All authorisation domain user types paginated
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUserTypesPage'
    AuthorisationDomainUsersPage:
      description: All users belonging to an authorisation domain
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainUsersPage'
    AuthorisationDomainsPage:
      description: All data of authorisation domains mapped to an authority
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationDomainsPage'
    AuthorisationServer:
      description: Authorisation server response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerResponse'
    AuthorisationServerCertification:
      description: Authorisation Server certification for the given certification id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerCertification'
    AuthorisationServerCertifications:
      description: Authorisation Server certification for the given certification id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/AuthorisationServerCertifications'
              - $ref: '#/components/schemas/AuthorisationServerCertificationsPage'
    AuthorisationServerResponse:
      description: Authorisation server response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorisationServerResponseWithWarnings'
    AuthorisationServers:
      description: All authorisation servers for the org
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/AuthorisationServersPage'
              - $ref: '#/components/schemas/AuthorisationServers'
    AuthoritiesPage:
      description: |
        Retrieves all organisation authority configurations in the platform
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthoritiesPage'
    AuthorityAuthorisationDomain:
      description: Authority to domain mapping data
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityAuthorisationDomain'
    AuthorityAuthorisationDomainsPage:
      description: All data of authorisation domains mapped to an authority
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityAuthorisationDomainsPage'
    AuthorityObject:
      description: |
        Get a reference authority by Id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthorityObject'
    BadGateway:
      description: Bad Gateway
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    BadRequest:
      description: Bad Request
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpResponseBody'
    CertificatesOrKey:
      description: A certificate object
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/jwk+json:
          schema:
            $ref: '#/components/schemas/CertificateOrKey'
    CertificatesOrKeys:
      description: All certificates for the org
      content:
        application/jwk-set+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/CertificatesOrKeys'
              - $ref: '#/components/schemas/CertificatesOrKeysPage'
    CertificationType:
      description: Certification Type
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationType'
    CertificationTypeVariant:
      description: Certification Type Variant
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypeVariant'
    CertificationTypeVariantPage:
      description: Certification Type Variant page
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypeVariantPage'
    CertificationTypes:
      description: Certification Type
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CertificationTypePage'
    Conflict:
      description: Conflict
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    ConformanceConfiguration:
      description: Response with for a single conformance configuration
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConformanceConfiguration'
    ConformanceConfigurationsPage:
      description: Paginated response with all conformance configurations
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConformanceConfigurationsPage'
    Contact:
      description: A contact object
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Contact'
    ContactType:
      description: Response for a single contact type
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactTypeObject'
    ContactTypesPage:
      description: Paginated response with all contact types
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactTypesPage'
    ContactsPage:
      description: Paged Contacts Snapshot
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ContactsPage'
    CustomClaimList:
      description: List of custom claim objects
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomClaimList'
    CustomClaimObject:
      description: A single custom claim object
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomClaimObject'
    DataAdministrator:
      description: A users with the data administrator role
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataAdministrator'
    DataAdministrators:
      description: A paginated set of all users with the data administrator role in the platform
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataAdministratorsPage'
    EssPollResponse:
      description: External Signing Service Poll response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EssPollResponse'
    FederationItem:
      description: Details of the federation item
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationItem'
    FederationMetadataPolicyItem:
      description: Details of the federation metadata policy item
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationMetadataPolicyItem'
    FederationMetadataPolicyPage:
      description: Paged data of federation metadata policies
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationMetadataPolicyPage'
    FederationsPage:
      description: Paged data of federations
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FederationsPage'
    Flag:
      description: Response with for a single flag
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Flag'
    FlagsPage:
      description: Paginated response with all flags
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlagsPage'
    Forbidden:
      description: Forbidden
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    GlobalSearchResponse:
      description: Global Search response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GlobalSearchResponse'
    InternalServerError:
      description: Internal Server Error
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    KeyMaterialAttachmentObject:
      description: An attachment of an item of key material to an entity
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialAttachmentObject'
    KeyMaterialAttachmentPage:
      description: A set of attachments for a given item of key material
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialAttachmentPage'
    KeyMaterialObject:
      description: An item of key material
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialObject'
    KeyMaterialPage:
      description: A set of key material for a given organisation
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KeyMaterialPage'
    Metadata:
      description: Single metadata object
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MetadataResponse'
    MetadataList:
      description: List of all metadata associated with an object
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MetadataListResponse'
    NoContent:
      description: No Content
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    NotAcceptable:
      description: Not Acceptable
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    NotFound:
      description: Not found
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpResponseBody'
    NotImplemented:
      description: Request is not yet implemented
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpResponseBody'
    Ok:
      description: No Content
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    OrgTermsAndConditionsDetail:
      description: Details of the TnC and external signing service
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrgTermsAndConditionsDetail'
    OrgTermsAndConditionsPage:
      description: Org TnCs history
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrgTermsAndConditionsPage'
    OrganisationAdminUser:
      description: Admin user details
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAdminUser'
    OrganisationAdminUsers:
      description: All admin users for this org
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/OrganisationAdminUsers'
              - $ref: '#/components/schemas/OrganisationAdminUsersPage'
    OrganisationAuthorityClaimAuthorisation:
      description: Authorisations response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisation'
    OrganisationAuthorityClaimAuthorisations:
      description: Authorisations response
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisations'
              - $ref: '#/components/schemas/OrganisationAuthorityClaimAuthorisationsPage'
    OrganisationAuthorityDomainClaimObject:
      description: All authority to domain mappings data
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainClaimObject'
    OrganisationAuthorityDomainClaimsPage:
      description: All data of an organisation's authority domain claims
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainClaimsPage'
    OrganisationAuthorityDomainRoleClaimObject:
      description: A given organisation authority domain role claim with additional details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimObject'
    OrganisationAuthorityDomainRoleClaims:
      description: All authority claims for the organisation
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaims'
              - $ref: '#/components/schemas/OrganisationAuthorityDomainRoleClaimsPage'
    OrganisationConformanceTestResult:
      description: |
        Result of the conformance suite test run
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationConformanceTestResult'
    OrganisationDocument:
      description: Full details of a regulatory document for an organisation
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationDocument'
    OrganisationDocuments:
      description: All regulatory documents for an organisation
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationDocuments'
    OrganisationResponse:
      description: |
        Full details of the organisation including warnings on a create or update operation
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationResponse'
    OrganisationWithTnc:
      description: Full details of the organisation including TnC information
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationWithTnc'
    OrganisationsPage:
      description: All organisations
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationsPage'
    RegisteredClient:
      description: All registered clients
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegisteredClient'
    RegisteredClientsPage:
      description: All clients
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegisteredClientsPage'
    RegulatoryDocumentType:
      description: Full details of a regulatory document type
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegulatoryDocumentType'
    RegulatoryDocumentTypes:
      description: All regulatory documents types
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegulatoryDocumentTypes'
    ServerAuthorityClaim:
      description: Authority claim for the given Id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerAuthorityClaim'
    ServerAuthorityClaimPage:
      description: Page of server authority claim for the given server id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerAuthorityClaimPage'
    SoftwareAuthorityClaim:
      description: Authority claim for the given Id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareAuthorityClaim'
    SoftwareAuthorityClaims:
      description: Authority claim for the given Id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareAuthorityClaims'
    SoftwareStatement:
      description: Get the software statements with the given id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatement'
    SoftwareStatementAssertion:
      description: OK
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementAssertion'
        application/jwt:
          schema:
            $ref: '#/components/schemas/SoftwareStatementAssertion'
    SoftwareStatementCertification:
      description: Software Statement certification for the given certification id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementCertification'
    SoftwareStatementCertifications:
      description: Software Statement certification for the given certification id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementCertifications'
    SoftwareStatementResponse:
      description: Get the software statements with the given id
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SoftwareStatementResponse'
    SoftwareStatements:
      description: All software statements for the org
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/SoftwareStatementsPage'
              - $ref: '#/components/schemas/SoftwareStatements'
    SsoConfigurationObject:
      description: A single sso configuration option for a given authorisation server
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationObject'
    SsoConfigurationObjectPage:
      description: A paginated set of sso configuration options for a given authorisation server
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationObjectPage'
    SsoConfigurationVersionObject:
      description: A single sso configuration version for a given authorisation server's sso configuration
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationVersionObject'
    SsoConfigurationVersionObjectPage:
      description: A paginated set of sso configuration versions for a given authorisation server sso configuration
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SsoConfigurationVersionObjectPage'
    SubDomainList:
      description: All sub-domain registrations for a given domain
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubDomainList'
    SubDomainObject:
      description: A sub-domain registration
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubDomainObject'
    SuperUsersPage:
      description: All super users
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuperUsersPage'
    TermsAndConditionsItem:
      description: Details of the TnC item
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TermsAndConditionsItem'
    TermsAndConditionsPage:
      description: Paged data of TnC items
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TermsAndConditionsPage'
    TooManyRequests:
      description: Too many requests, maximum capacity reached. Requests are now throttled.
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    Unauthorized:
      description: Unauthorized
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    UpstreamTimeout:
      description: Upstream timeout, insufficient capacity to serve request. More capacity being brought online. Please try again.
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
    UserDetail:
      description: Details of the user
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/xFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserDetail'
