{
  "swagger": "2.0",
  "info": {
    "version": "1.4.0",
    "title": "Consumer Data Right (CDR) Register - Participant Discovery APIs"
  },
  "schemes": [
    "https"
  ],
  "basePath": "/cdr-register/v1",
  "paths": {
    "/.well-known/openid-configuration": {
      "get": {
        "tags": [
          "OpenID Connect"
        ],
        "summary": "GetOpenIdProviderConfig",
        "operationId": "GetOpenIdProviderConfig",
        "description": "Endpoint used by participants to discover the CDR Register OpenID configuration and obtain information needed to interact with it, including its OAuth 2.0 endpoint locations.",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "The OpenID Provider Configuration Metadata values",
            "schema": {
              "$ref": "#/definitions/ResponseOpenIDProviderConfigMetadata"
            }
          }
        }
      }
    },
    "/jwks": {
      "get": {
        "tags": [
          "JWKS"
        ],
        "summary": "GetJWKS",
        "operationId": "GetJWKS",
        "description": "JWKS endpoint containing the public keys used by the CDR Register to validate the signature of issued SSAs and authenticate outbound calls to participants in the CDR",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "A JSON object that represents a set of JWKs",
            "schema": {
              "$ref": "#/definitions/ResponseJWKS"
            }
          }
        }
      }
    },
    "/{industry}/data-holders/brands": {
      "get": {
        "tags": [
          "Data Holder Brands"
        ],
        "summary": "GetDataHolderBrands",
        "operationId": "GetDataHolderBrands",
        "description": "Allows Data Recipients to discover data holder brands available in the CDR ecosystem",
        "x-version": "1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/Industry"
          },
          {
            "name": "updated-since",
            "in": "query",
            "description": "query filter returns data holder brands updated since the specified date-time",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "page",
            "in": "query",
            "description": "the page number to return",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "page-size",
            "in": "query",
            "description": "the number of records to return per page",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "$ref": "#/parameters/Authorization"
          },
          {
            "$ref": "#/parameters/XV"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "x-v": {
                "type": "string",
                "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point that the CDR Register has responded with."
              }
            },
            "schema": {
              "$ref": "#/definitions/ResponseRegisterDataHolderBrandList"
            }
          },
          "400": {
            "description": "Bad Request</br>Invalid industry path parameter",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "401": {
            "description": "Invalid Bearer Token"
          },
          "406": {
            "description": "Invalid x-v header</br>Invalid Accept header"
          }
        },
        "x-scopes": [
          "cdr-register:bank:read"
        ]
      }
    },
    "/{industry}/data-recipients/brands/{dataRecipientBrandId}/software-products/{softwareProductId}/ssa": {
      "get": {
        "tags": [
          "Software Statement Assertion"
        ],
        "summary": "GetSoftwareStatementAssertion (SSA)",
        "operationId": "GetSoftwareStatementAssertion",
        "description": "Get a Software Statement Assertion (SSA) for a software product on the CDR Register to be used for Dynamic Client Registration with a Data Holder Brand",
        "x-version": "2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/Industry"
          },
          {
            "name": "dataRecipientBrandId",
            "in": "path",
            "description": "Unique id for the Accredited Data Recipient Brand that the Software Product is associated with in the CDR Register. Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
            "required": true,
            "type": "string"
          },
          {
            "name": "softwareProductId",
            "in": "path",
            "description": "Unique id for the Accredited Data Recipient Software Product in the CDR Register. Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/Authorization"
          },
          {
            "$ref": "#/parameters/XV"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "x-v": {
                "type": "string",
                "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point that the CDR Register has responded with."
              }
            },
            "schema": {
              "type": "string"
            }
          },
          "400": {
            "description": "Invalid industry path parameter</br>Invalid SoftwareProductId",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "401": {
            "description": "Invalid Bearer Token"
          },
          "403": {
            "description": "Invalid BrandId",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "406": {
            "description": "Invalid x-v header</br>Invalid Accept header"
          },
          "422": {
            "description": "SSA fields invalid or incomplete",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          }
        },
        "x-scopes": [
          "cdr-register:bank:read"
        ]
      }
    },
    "/{industry}/data-recipients/brands/software-products/status": {
      "get": {
        "tags": [
          "Software Products Status"
        ],
        "summary": "GetSoftwareProductsStatus",
        "operationId": "GetSoftwareProductsStatus",
        "description": "Endpoint used by participants to discover the statuses for software products from the CDR Register",
        "x-version": "1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/Industry"
          },
          {
            "$ref": "#/parameters/XV"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "x-v": {
                "type": "string",
                "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point that the CDR Register has responded with."
              }
            },
            "schema": {
              "$ref": "#/definitions/SoftwareProductsStatusList"
            }
          },
          "400": {
            "description": "Bad Request</br>Invalid industry path parameter",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "406": {
            "description": "Invalid x-v header</br>Invalid Accept header"
          }
        }
      }
    },
    "/{industry}/data-recipients/status": {
      "get": {
        "tags": [
          "Data Recipients Status"
        ],
        "summary": "GetDataRecipientsStatus",
        "operationId": "GetDataRecipientsStatus",
        "description": "Endpoint used by participants to discover the statuses for Data Recipients from the CDR Register",
        "x-version": "1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/Industry"
          },
          {
            "$ref": "#/parameters/XV"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "x-v": {
                "type": "string",
                "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point that the CDR Register has responded with."
              }
            },
            "schema": {
              "$ref": "#/definitions/DataRecipientsStatusList"
            }
          },
          "400": {
            "description": "Bad Request</br>Invalid industry path parameter",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "406": {
            "description": "Invalid x-v header</br>Invalid Accept header"
          }
        }
      }
    },
    "/{industry}/data-recipients": {
      "get": {
        "tags": [
          "Data Recipients"
        ],
        "summary": "GetDataRecipients",
        "operationId": "GetDataRecipients",
        "description": "Endpoint used by participants to discover data recipients and associated brands and software products, available in the CDR ecosystem",
        "x-version": "2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/Industry"
          },
          {
            "$ref": "#/parameters/XV"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "x-v": {
                "type": "string",
                "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point that the CDR Register has responded with."
              }
            },
            "schema": {
              "$ref": "#/definitions/ResponseRegisterDataRecipientList"
            }
          },
          "400": {
            "description": "Bad Request</br>Invalid industry path parameter",
            "schema": {
              "$ref": "#/definitions/ResponseErrorList"
            }
          },
          "406": {
            "description": "Invalid x-v header</br>Invalid Accept header"
          }
        }
      }
    }
  },
  "parameters": {
    "Authorization": {
      "name": "Authorization",
      "in": "header",
      "required": true,
      "description": "An Authorisation Token as per [RFC6750](https://tools.ietf.org/html/rfc6750)",
      "type": "string"
    },
    "XV": {
      "name": "x-v",
      "in": "header",
      "required": false,
      "description": "The [version](https://consumerdatastandardsaustralia.github.io/standards/#response-headers) of the API end point requested by the client. Must be set to a positive integer.",
      "type": "string"
    },
    "Industry": {
      "name": "industry",
      "in": "path",
      "description": "The industry the participant is retrieving data for (Banking, etc)",
      "required": true,
      "enum": [
        "banking"
      ],
      "type": "string"
    }
  },
  "definitions": {
    "ResponseOpenIDProviderConfigMetadata": {
      "description": "Response containing the Open ID Provider Configuration Metadata",
      "required": [
        "issuer",
        "jwks_uri",
        "token_endpoint",
        "claims_supported",
        "id_token_signing_alg_values_supported",
        "subject_types_supported",
        "code_challenge_methods_supported",
        "scopes_supported",
        "response_types_supported",
        "grant_types_supported",
        "token_endpoint_auth_methods_supported",
        "tls_client_certificate_bound_access_tokens",
        "request_object_signing_alg_values_supported"
      ],
      "type": "object",
      "properties": {
        "issuer": {
          "type": "string",
          "description": "URL using the https scheme with no query or fragment component that the CDR Register asserts as its Issuer Identifier"
        },
        "jwks_uri": {
          "type": "string",
          "description": "URL of the CDR Register's JSON Web Key Set [JWK] document. This contains the signing key(s) used to validate access tokens issued from the CDR Register. Note that this differs from the [JWKS endpoint](https://cdr-register.github.io/register/#getjwks) used to validate SSAs and CDR Register client authentication"
        },
        "token_endpoint": {
          "type": "string",
          "description": "URL of the CDR Register's OAuth 2.0 Token Endpoint"
        },
        "claims_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the Claim Names of the Claims that the CDR Register supplies values for"
        },
        "id_token_signing_alg_values_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the JWS signing algorithms (alg values) supported by the CDR Register for the ID Token to encode the Claims in a JWT. Given the CDR Register does not issue ID tokens, this field can be safely ignored"
        },
        "subject_types_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the Subject Identifier types that the CDR Register supports. Given the CDR Register does not issue ID tokens, this field can be safely ignored"
        },
        "code_challenge_methods_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of Proof Key for Code Exchange (PKCE) [RFC7636] code challenge methods supported by this authorization server. Given the CDR Register does not support PKCE, this field can be safely ignored"
        },
        "scopes_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the OAuth 2.0 [RFC6749] scope values that the CDR Register supports"
        },
        "response_types_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the OAuth 2.0 response_type values that the CDR Registrer supports"
        },
        "grant_types_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the OAuth 2.0 Grant Type values that the CDR Register supports"
        },
        "token_endpoint_auth_methods_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of Client Authentication methods supported by this Token Endpoint"
        },
        "tls_client_certificate_bound_access_tokens": {
          "type": "boolean",
          "description": "Boolean value indicating server support for mutual TLS client certificate bound access tokens"
        },
        "request_object_signing_alg_values_supported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "JSON array containing a list of the JWS signing algorithms (alg values) supported by the CDR Register for Request Objects."
        }
      }
    },
    "ResponseJWKS": {
      "description": "Response containing the JSON Web Key Set",
      "required": [
        "keys"
      ],
      "type": "object",
      "properties": {
        "keys": {
          "type": "array",
          "description": "The value of the \"keys\" parameter is an array of JWK values",
          "items": {
            "$ref": "#/definitions/JWK"
          }
        }
      }
    },
    "JWK": {
      "description": "Object representing a JSON Web Key",
      "required": [
        "alg",
        "e",
        "key_ops",
        "kid",
        "kty",
        "n"
      ],
      "type": "object",
      "properties": {
        "alg": {
          "type": "string",
          "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key"
        },
        "e": {
          "type": "string",
          "description": "The \"e\" RSA public exponent parameter"
        },
        "key_ops": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used"
        },
        "kid": {
          "type": "string",
          "description": "The \"kid\" (key ID) parameter is partially used to match a specific key. Note the \"kid\" parameter is not guaranteed unique and additional parameters should be used to progressively to identify a key within a set"
        },
        "kty": {
          "type": "string",
          "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key"
        },
        "n": {
          "type": "string",
          "description": "The \"n\" RSA public modulus parameter"
        }
      }
    },
    "ResponseRegisterDataHolderBrandList": {
      "description": "Response containing a list of CDR Register Data Holder Brand objects",
      "required": [
        "data",
        "links",
        "meta"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "Response data for the query",
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/RegisterDataHolderBrand"
          }
        },
        "links": {
          "$ref": "#/definitions/LinksPaginated"
        },
        "meta": {
          "$ref": "#/definitions/MetaPaginated"
        }
      }
    },
    "RegisterDataHolderBrand": {
      "required": [
        "dataHolderBrandId",
        "brandName",
        "industry",
        "logoUri",
        "legalEntity",
        "status",
        "endpointDetail",
        "authDetails",
        "lastUpdated"
      ],
      "type": "object",
      "properties": {
        "dataHolderBrandId": {
          "description": "Unique id of the Data Holder Brand issued by the CDR Register. Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "brandName": {
          "description": "The name of Data Holder Brand",
          "type": "string"
        },
        "industry": {
          "description": "The industry the Data Holder brand belongs to (Banking, etc)",
          "enum": [
            "banking"
          ],
          "type": "string"
        },
        "logoUri": {
          "description": "Brand logo URI",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "legalEntity": {
          "$ref": "#/definitions/LegalEntityDetail"
        },
        "status": {
          "enum": [
            "ACTIVE",
            "INACTIVE",
            "REMOVED"
          ],
          "type": "string"
        },
        "endpointDetail": {
          "$ref": "#/definitions/RegisterDataHolderBrandServiceEndpoint"
        },
        "authDetails": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/definitions/RegisterDataHolderAuth"
          }
        },
        "lastUpdated": {
          "description": "The date/time that the Data Holder Brand data was last updated in the Register",
          "type": "string",
          "format": "date-time",
          "x-cds-type": "DateTimeString"
        }
      }
    },
    "SoftwareProductsStatusList": {
      "required": [
        "softwareProducts"
      ],
      "type": "object",
      "properties": {
        "softwareProducts": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "$ref": "#/definitions/SoftwareProductStatus"
          }
        }
      }
    },
    "SoftwareProductStatus": {
      "required": [
        "softwareProductId",
        "softwareProductStatus"
      ],
      "type": "object",
      "properties": {
        "softwareProductId": {
          "description": "Unique id of the software product issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "softwareProductStatus": {
          "description": "Software product status in the CDR Register",
          "enum": [
            "ACTIVE",
            "INACTIVE",
            "REMOVED"
          ],
          "type": "string"
        }
      }
    },
    "DataRecipientsStatusList": {
      "required": [
        "dataRecipients"
      ],
      "type": "object",
      "properties": {
        "dataRecipients": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataRecipientStatus"
          }
        }
      }
    },
    "DataRecipientStatus": {
      "required": [
        "dataRecipientId",
        "dataRecipientStatus"
      ],
      "type": "object",
      "properties": {
        "dataRecipientId": {
          "description": "Unique id of the Data Recipient issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "dataRecipientStatus": {
          "description": "Data Recipient status in the CDR Register",
          "enum": [
            "ACTIVE",
            "SUSPENDED",
            "REVOKED",
            "SURRENDERED"
          ],
          "type": "string"
        }
      }
    },
    "ResponseRegisterDataRecipientList": {
      "description": "Response containing a list of Data Recipients in the CDR Register",
      "required": [
        "data",
        "links",
        "meta"
      ],
      "type": "object",
      "properties": {
        "data": {
          "description": "Response data for the query",
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/RegisterDataRecipient"
          }
        }
      }
    },
    "RegisterDataRecipient": {
      "required": [
        "legalEntityId",
        "legalEntityName",
        "accreditationNumber",
        "industry",
        "logoUri",
        "status",
        "lastUpdated"
      ],
      "type": "object",
      "properties": {
        "legalEntityId": {
          "description": "Unique id of the Data Recipient Legal Entity issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "legalEntityName": {
          "description": "Legal name of the Data Recipient",
          "type": "string"
        },
        "accreditationNumber": {
          "description": "CDR Register issued human readable unique number given to Data Recipients upon accreditation",
          "type": "string"
        },
        "industry": {
          "enum": [
            "banking"
          ],
          "type": "string"
        },
        "logoUri": {
          "description": "Legal Entity logo URI",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "dataRecipientBrands": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataRecipientBrandMetaData"
          }
        },
        "status": {
          "enum": [
            "ACTIVE",
            "SUSPENDED",
            "REVOKED",
            "SURRENDERED"
          ],
          "type": "string"
        },
        "lastUpdated": {
          "format": "date-time",
          "description": "The date/time that the Legal Entity was last updated in the CDR Register",
          "type": "string",
          "x-cds-type": "DateTimeString"
        }
      }
    },
    "DataRecipientBrandMetaData": {
      "description": "Metadata related to Data Recipient Brand",
      "required": [
        "dataRecipientBrandId",
        "brandName",
        "logoUri",
        "status"
      ],
      "type": "object",
      "properties": {
        "dataRecipientBrandId": {
          "description": "Unique id of the Data Recipient brand issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "brandName": {
          "description": "Data Recipient Brand name",
          "type": "string"
        },
        "logoUri": {
          "description": "Data Recipient Brand logo URI",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "softwareProducts": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "$ref": "#/definitions/SoftwareProductMetaData"
          }
        },
        "status": {
          "enum": [
            "ACTIVE",
            "INACTIVE",
            "REMOVED"
          ],
          "type": "string"
        }
      }
    },
    "SoftwareProductMetaData": {
      "description": "Data Recipient Brand Software Products",
      "required": [
        "softwareProductId",
        "softwareProductName",
        "logoUri",
        "status"
      ],
      "type": "object",
      "properties": {
        "softwareProductId": {
          "description": "Unique id of the Data Recipient software product issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "softwareProductName": {
          "description": "Name of the software product",
          "type": "string"
        },
        "softwareProductDescription": {
          "description": "Description of the software product",
          "type": "string"
        },
        "logoUri": {
          "description": "Software product logo URI",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "status": {
          "enum": [
            "ACTIVE",
            "INACTIVE",
            "REMOVED"
          ],
          "type": "string"
        }
      }
    },
    "LegalEntityDetail": {
      "description": "The data that is common to all organisations, regardless of the type (e.g. company, trust, partnership, government)",
      "required": [
        "legalEntityId",
        "legalEntityName",
        "logoUri"
      ],
      "type": "object",
      "properties": {
        "legalEntityId": {
          "description": "Unique id of the organisation issued by the CDR Register.  Refer to [Identifiers](https://cdr-register.github.io/register/#identifiers) for details",
          "type": "string"
        },
        "legalEntityName": {
          "description": "Unique legal name of the organisation",
          "type": "string"
        },
        "logoUri": {
          "description": "Legal Entity logo URI",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "registrationNumber": {
          "description": "Unique registration number (if the company is registered outside Australia)",
          "type": "string"
        },
        "registrationDate": {
          "format": "date",
          "description": "Date of registration (if the company is registered outside Australia)",
          "type": "string",
          "x-cds-type": "DateString"
        },
        "registeredCountry": {
          "description": "Country of registeration (if the company is registered outside Australia)",
          "type": "string"
        },
        "abn": {
          "description": "Australian Business Number for the organisation",
          "type": "string"
        },
        "acn": {
          "description": "Australian Company Number for the organisation",
          "type": "string"
        },
        "arbn": {
          "description": "Australian Registered Body Number.  ARBNs are issued to registrable Australian bodies and foreign companies",
          "type": "string"
        },
        "industryCode": {
          "description": "Industry Code for the organisation. [ANZSIC (2006)](http://www.abs.gov.au/anzsic)",
          "type": "string"
        },
        "organisationType": {
          "description": "Legal organisation type",
          "enum": [
            "SOLE_TRADER",
            "COMPANY",
            "PARTNERSHIP",
            "TRUST",
            "GOVERNMENT_ENTITY",
            "OTHER"
          ],
          "type": "string"
        }
      }
    },
    "RegisterDataHolderBrandServiceEndpoint": {
      "description": "Endpoints related to Data Holder Brand services",
      "required": [
        "version",
        "publicBaseUri",
        "resourceBaseUri",
        "infosecBaseUri",
        "websiteUri"
      ],
      "type": "object",
      "properties": {
        "version": {
          "description": "The major version of the high level standards. This is not the version of the endpoint or the payload being requested but the version of the overall standards being applied. This version number will be \"v\" followed by the major version of the standards as a positive integer (e.g. v1, v12 or v76)",
          "type": "string"
        },
        "publicBaseUri": {
          "description": "Base URI for the Data Holder's Consumer Data Standard public endpoints",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "resourceBaseUri": {
          "description": "Base URI for the Data Holder's Consumer Data Standard resource endpoints",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "infosecBaseUri": {
          "description": "Base URI for the Data Holder's Consumer Data Standard information security endpoints",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "extensionBaseUri": {
          "description": "Base URI for the Data Holder extension endpoints to the Consumer Data Standard (optional)",
          "type": "string",
          "x-cds-type": "URIString"
        },
        "websiteUri": {
          "description": "Publicly available website or web resource URI",
          "type": "string",
          "x-cds-type": "URIString"
        }
      }
    },
    "RegisterDataHolderAuth": {
      "description": "Provides details of authorisation endpoints for Data Holders",
      "type": "object",
      "required": [
        "registerUType",
        "jwksEndpoint"
      ],
      "properties": {
        "registerUType": {
          "type": "string",
          "description": "The type of authentication and authorisation mechanism in use",
          "enum": [
            "SIGNED-JWT"
          ]
        },
        "jwksEndpoint": {
          "description": "JWKS endpoint for private_key_jwt client authentication with Data Recipient",
          "type": "string",
          "x-cds-type": "URIString"
        }
      }
    },
    "LinksPaginated": {
      "required": [
        "self"
      ],
      "type": "object",
      "properties": {
        "first": {
          "description": "URI to the first page of this set. Mandatory if this response is not the first page",
          "type": "string"
        },
        "last": {
          "description": "URI to the last page of this set. Mandatory if this response is not the last page",
          "type": "string"
        },
        "next": {
          "description": "URI to the next page of this set. Mandatory if this response is not the last page",
          "type": "string"
        },
        "prev": {
          "description": "URI to the previous page of this set. Mandatory if this response is not the first page",
          "type": "string"
        },
        "self": {
          "description": "Fully qualified link to this API call",
          "type": "string"
        }
      }
    },
    "MetaPaginated": {
      "required": [
        "totalPages",
        "totalRecords"
      ],
      "type": "object",
      "properties": {
        "totalPages": {
          "format": "int32",
          "description": "The total number of pages in the full set",
          "type": "integer"
        },
        "totalRecords": {
          "format": "int32",
          "description": "The total number of records in the full set",
          "type": "integer"
        }
      }
    },
    "ResponseErrorList": {
      "required": [
        "errors"
      ],
      "type": "object",
      "properties": {
        "errors": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/Error"
          }
        }
      }
    },
    "Error": {
      "required": [
        "code",
        "title",
        "detail"
      ],
      "type": "object",
      "properties": {
        "code": {
          "description": "Error code",
          "type": "string"
        },
        "title": {
          "description": "Error title",
          "type": "string"
        },
        "detail": {
          "description": "Error detail",
          "type": "string"
        },
        "meta": {
          "description": "Optional additional data for specific error types",
          "type": "object"
        }
      }
    }
  },
  "tags": []
}