{
	"openapi": "3.0.0",
	"components": {
		"examples": {},
		"headers": {},
		"parameters": {},
		"requestBodies": {},
		"responses": {},
		"schemas": {
			"RequestEncryption": {
				"properties": {
					"jwks": {
						"description": "REQUIRED. A JSON Web Key Set, as defined in [@!RFC7591], that contains one or more public keys,\nto be used by the Wallet as an input to a key agreement for encryption of the Credential Request.\nEach JWK in the set MUST have a kid (Key ID) parameter that uniquely identifies the key."
					},
					"enc_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array containing a list of the JWE [@!RFC7516] encryption algorithms (`enc` values)\n[@!RFC7518] supported by the Credential Endpoint to decode the Credential Request from a JWT\n[@!RFC7519]."
					},
					"zip_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array containing a list of the JWE [@!RFC7516] compression algorithms (`zip` values)\n[@!RFC7518] supported by the Credential Endpoint to uncompress the Credential Request after\ndecryption. If absent then no compression algorithms are supported. The Wallet may use any of\nthe supported compression algorithm to compress the Credential Request prior to encryption."
					},
					"encryption_required": {
						"type": "boolean",
						"description": "REQUIRED. Boolean value specifying whether the Credential Issuer requires the additional\nencryption on top of TLS for the Credential Requests. If the value is `true`, the Credential\nIssuer requires encryption for every Credential Request. If the value is `false`, the Wallet\nMAY choose whether it encrypts the request or not."
					}
				},
				"required": [
					"jwks",
					"enc_values_supported",
					"encryption_required"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ResponseEncryption": {
				"properties": {
					"alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array containing a list of the JWE [@!RFC7516] encryption algorithms (`alg` values)\n[@!RFC7518] supported by the Credential Endpoint to encode the Credential Response in a JWT\n[@!RFC7519]."
					},
					"enc_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array containing a list of the JWE [@!RFC7516] encryption algorithms (`enc` values)\n[@!RFC7518] supported by the Credential Endpoint to encode the Credential Response in a JWT\n[@!RFC7519]."
					},
					"zip_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array containing a list of the JWE [@!RFC7516] compression algorithms (`zip` values)\n[@!RFC7518] supported by the Credential Endpoint to compress the Credential Response prior to\nencryption. If absent then compression is not supported."
					},
					"encryption_required": {
						"type": "boolean",
						"description": "REQUIRED. Boolean value specifying whether the Credential Issuer requires the additional\nencryption on top of TLS for the Credential Response. If the value is `true`, the Credential\nIssuer requires encryption for every Credential Response and therefore the Wallet MUST provide\nencryption keys in the Credential Request. If the value is `false`, the Wallet MAY choose\nwhether it provides encryption keys or not."
					}
				},
				"required": [
					"alg_values_supported",
					"enc_values_supported",
					"encryption_required"
				],
				"type": "object",
				"additionalProperties": false
			},
			"BatchIssuance": {
				"properties": {
					"batch_size": {
						"type": "number",
						"format": "double",
						"description": "REQUIRED. Integer value specifying the maximum array size for the `proofs` parameter in a\nCredential Request. It MUST be 2 or greater."
					}
				},
				"required": [
					"batch_size"
				],
				"type": "object",
				"additionalProperties": false
			},
			"NameAndLocale": {
				"properties": {
					"name": {
						"type": "string"
					},
					"locale": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": {}
			},
			"ImageInfo": {
				"description": "Important Note: please be aware that these Common interfaces are based on versions v1_0.11 and v1_0.09",
				"properties": {
					"uri": {
						"type": "string"
					},
					"alt_text": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": {}
			},
			"LogoAndColor": {
				"properties": {
					"logo": {
						"$ref": "#/components/schemas/ImageInfo"
					},
					"description": {
						"type": "string"
					},
					"background_color": {
						"type": "string"
					},
					"text_color": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"MetadataDisplay": {
				"allOf": [
					{
						"$ref": "#/components/schemas/NameAndLocale"
					},
					{
						"$ref": "#/components/schemas/LogoAndColor"
					},
					{
						"properties": {
							"name": {
								"type": "string"
							}
						},
						"type": "object"
					}
				]
			},
			"Oid4vcVCFormatType": {
				"description": "Valid VC formats\n\"ldp_vc\" - VC secured using Data Integrity, using JSON-LD, with a proof suite requiring Linked Data canonicalization. (W3C VC DATA MODEL)\n\"mso_mdoc\" - This refers to the Mobile Security Object (MSO) which secures the mdoc data model encoded as CBOR\n\"dc+sd-jwt\" - Selective disclosure JWT\n(NOT SUPPORTED) \"jwt_vc_json\" - VC signed as a JWT, NOT using JSON-LD (W3C VC DATA MODEL)\n(NOT SUPPORTED) \"jwt_vc_json-ld\" - VC signed as a JWT, using JSON-LD. (W3C VC DATA MODEL)",
				"enum": [
					"ldp_vc",
					"jwt_vc_json",
					"jwt_vc_json-ld",
					"mso_mdoc",
					"dc+sd-jwt"
				],
				"type": "string"
			},
			"CredentialSigningAlgValuesSupported": {
				"anyOf": [
					{
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					{
						"items": {
							"type": "number",
							"format": "double"
						},
						"type": "array"
					}
				]
			},
			"KeyAttestationAPR": {
				"enum": [
					"iso_18045_high",
					"iso_18045_moderate",
					"iso_18045_enhanced-basic",
					"iso_18045_basic"
				],
				"type": "string"
			},
			"KeyAttestationsRequired": {
				"properties": {
					"key_storage": {
						"items": {
							"$ref": "#/components/schemas/KeyAttestationAPR"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array defining values specified in (#keyattestation-apr) accepted by the Credential Issuer."
					},
					"user_authentication": {
						"items": {
							"$ref": "#/components/schemas/KeyAttestationAPR"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array defining values specified in (#keyattestation-apr) accepted by the Credential Issuer."
					}
				},
				"required": [
					"key_storage",
					"user_authentication"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcProofTypeSupported": {
				"properties": {
					"di_vp": {
						"properties": {
							"key_attestations_required": {
								"$ref": "#/components/schemas/KeyAttestationsRequired"
							},
							"proof_signing_alg_values_supported": {
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						},
						"required": [
							"proof_signing_alg_values_supported"
						],
						"type": "object"
					},
					"jwt": {
						"properties": {
							"key_attestations_required": {
								"$ref": "#/components/schemas/KeyAttestationsRequired"
							},
							"proof_signing_alg_values_supported": {
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						},
						"required": [
							"proof_signing_alg_values_supported"
						],
						"type": "object"
					},
					"attestation": {
						"properties": {
							"key_attestations_required": {
								"$ref": "#/components/schemas/KeyAttestationsRequired"
							},
							"proof_signing_alg_values_supported": {
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						},
						"required": [
							"proof_signing_alg_values_supported"
						],
						"type": "object"
					}
				},
				"required": [
					"di_vp",
					"jwt",
					"attestation"
				],
				"type": "object"
			},
			"CredentialsSupportedDisplay": {
				"allOf": [
					{
						"$ref": "#/components/schemas/NameAndLocale"
					},
					{
						"$ref": "#/components/schemas/LogoAndColor"
					},
					{
						"properties": {
							"background_image": {
								"$ref": "#/components/schemas/ImageInfo"
							},
							"name": {
								"type": "string"
							}
						},
						"required": [
							"name"
						],
						"type": "object"
					}
				]
			},
			"CredentialConfigurationSupportedClaimDisplay": {
				"properties": {
					"name": {
						"type": "string",
						"description": "OPTIONAL. String value of a display name for the claim."
					},
					"locale": {
						"type": "string",
						"description": "OPTIONAL. String value that identifies language of this object\nrepresented as language tag values defined in BCP47 [@!RFC5646]. There\nMUST be only one object for each language identifier."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CredentialConfigurationSupportedClaim": {
				"properties": {
					"path": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"type": "number",
									"format": "double"
								}
							],
							"nullable": true
						},
						"type": "array",
						"description": "REQUIRED. The value MUST be a non-empty array representing a claims\npath pointer that specifies the path to a claim within the credential, as\ndefined in Appendix C."
					},
					"mandatory": {
						"type": "boolean",
						"description": "OPTIONAL. Boolean which, when set to `true`, indicates that the\nCredential Issuer will always include this claim in the issued Credential.\nIf set to `false`, the claim is not included in the issued Credential if the\nwallet did not request the inclusion of the claim, and/or if the Credential\nIssuer chose to not include the claim. If the `mandatory` parameter is\nomitted, the default value is `false`."
					},
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationSupportedClaimDisplay"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of objects, where each object contains display\nproperties of a certain claim in the Credential for a certain language.\nBelow is a non-exhaustive list of valid parameters that MAY be included."
					}
				},
				"required": [
					"path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcCredentialMetadata": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialsSupportedDisplay"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of objects, where each object contains the display properties of the supported\nCredential for a certain language. Below is a non-exhaustive list of parameters that MAY be included."
					},
					"claims": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationSupportedClaim"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of claims description objects as defined in Appendix B.2."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"BaseCredentialConfigurationSupport": {
				"properties": {
					"format": {
						"$ref": "#/components/schemas/Oid4vcVCFormatType",
						"description": "REQUIRED. A JSON string identifying the format of this Credential, i.e., `ldp_vc`. Depending on the format value,\nthe object contains further elements defining the type and (optionally) particular claims the Credential\nMAY contain and information about how to display the Credential. Appendix A contains Credential Format\nProfiles introduced by this specification."
					},
					"scope": {
						"type": "string",
						"description": "OPTIONAL. A JSON string identifying the scope value that this Credential Issuer supports for this\nparticular Credential. The value can be the same across multiple `credential_configurations_supported`\nobjects. The Authorization Server MUST be able to uniquely identify the Credential Issuer based on the\nscope value. The Wallet can use this value in the Authorization Request as defined in Section 5.1.2.\nScope values in this Credential Issuer metadata MAY duplicate those in the `scopes_supported` parameter\nof the Authorization Server. If `scope` is absent, the only way to request the Credential is using\n`authorization_details` [@!RFC9396] - in this case, the OAuth Authorization Server metadata for one of\nthe Authorization Servers found from the Credential Issuer's Metadata must contain an\n`authorization_details_types_supported` that contains `openid_credential`."
					},
					"credential_signing_alg_values_supported": {
						"$ref": "#/components/schemas/CredentialSigningAlgValuesSupported",
						"description": "OPTIONAL. A non-empty array of algorithm identifiers that identify the algorithms that the Issuer uses to\nsign the issued Credential. Algorithm identifier types and values used are determined by the Credential\nFormat and are defined in Appendix A."
					},
					"cryptographic_binding_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of case sensitive strings that identify the representation of the cryptographic\nkey material that the issued Credential is bound to, as defined in (#credential-binding). It MUST be present\nwhen Cryptographic Key Binding is required for a Credential, and omitted otherwise. If absent, Cryptographic Key Binding is not required\nfor this credential. Support for keys in JWK format [@!RFC7517] is indicated by the value `jwk`. Support for\nkeys expressed as a COSE Key object [@!RFC8152] (for example, used in [@!ISO.18013-5]) is indicated by the\nvalue `cose_key`. When the Cryptographic Key Binding method is a DID, valid values are a `did:` prefix\nfollowed by a method-name using a syntax as defined in Section 3.1 of [@!DID-Core], but without a `:` and\nmethod-specific-id. For example, support for the DID method with a method-name \"example\" would be represented\nby `did:example`."
					},
					"proof_types_supported": {
						"$ref": "#/components/schemas/Oid4vcProofTypeSupported",
						"description": "OPTIONAL. Object that describes specifics of the key proof(s) that the Credential Issuer supports. It MUST\nbe present if `cryptographic_binding_methods_supported` is present, and omitted otherwise. If absent, the\nWallet is not required to supply proofs when requesting this credential. This object contains a list of\nname/value pairs, where each name is a unique identifier of the supported proof type(s). Valid values are\ndefined in Appendix F, other values MAY be used. The Wallet also uses this identifier in the Credential\nRequest as defined in Section 8.2. The value in the name/value pair is an object that contains metadata\nabout the key proof and contains the following parameters defined by this specification:"
					},
					"credential_metadata": {
						"$ref": "#/components/schemas/Oid4vcCredentialMetadata",
						"description": "OPTIONAL. Object containing information relevant to the usage and display of issued Credentials. Credential\nFormat-specific mechanisms can overwrite the information in this object to convey Credential metadata.\nFormat-specific mechanisms, such as SD-JWT VC display metadata are always preferred by the Wallet over the\ninformation in this object, which serves as the default fallback. Below is a non-exhaustive list of\nparameters that MAY be included."
					}
				},
				"required": [
					"format"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcVCFormatType.MSO_MDOC": {
				"enum": [
					"mso_mdoc"
				],
				"type": "string"
			},
			"CredentialConfigurationSupportedMsoMdoc": {
				"properties": {
					"format": {
						"$ref": "#/components/schemas/Oid4vcVCFormatType.MSO_MDOC",
						"description": "REQUIRED. A JSON string identifying the format of this Credential, i.e., `ldp_vc`. Depending on the format value,\nthe object contains further elements defining the type and (optionally) particular claims the Credential\nMAY contain and information about how to display the Credential. Appendix A contains Credential Format\nProfiles introduced by this specification."
					},
					"scope": {
						"type": "string",
						"description": "OPTIONAL. A JSON string identifying the scope value that this Credential Issuer supports for this\nparticular Credential. The value can be the same across multiple `credential_configurations_supported`\nobjects. The Authorization Server MUST be able to uniquely identify the Credential Issuer based on the\nscope value. The Wallet can use this value in the Authorization Request as defined in Section 5.1.2.\nScope values in this Credential Issuer metadata MAY duplicate those in the `scopes_supported` parameter\nof the Authorization Server. If `scope` is absent, the only way to request the Credential is using\n`authorization_details` [@!RFC9396] - in this case, the OAuth Authorization Server metadata for one of\nthe Authorization Servers found from the Credential Issuer's Metadata must contain an\n`authorization_details_types_supported` that contains `openid_credential`."
					},
					"credential_signing_alg_values_supported": {
						"$ref": "#/components/schemas/CredentialSigningAlgValuesSupported",
						"description": "OPTIONAL. A non-empty array of algorithm identifiers that identify the algorithms that the Issuer uses to\nsign the issued Credential. Algorithm identifier types and values used are determined by the Credential\nFormat and are defined in Appendix A."
					},
					"cryptographic_binding_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of case sensitive strings that identify the representation of the cryptographic\nkey material that the issued Credential is bound to, as defined in (#credential-binding). It MUST be present\nwhen Cryptographic Key Binding is required for a Credential, and omitted otherwise. If absent, Cryptographic Key Binding is not required\nfor this credential. Support for keys in JWK format [@!RFC7517] is indicated by the value `jwk`. Support for\nkeys expressed as a COSE Key object [@!RFC8152] (for example, used in [@!ISO.18013-5]) is indicated by the\nvalue `cose_key`. When the Cryptographic Key Binding method is a DID, valid values are a `did:` prefix\nfollowed by a method-name using a syntax as defined in Section 3.1 of [@!DID-Core], but without a `:` and\nmethod-specific-id. For example, support for the DID method with a method-name \"example\" would be represented\nby `did:example`."
					},
					"proof_types_supported": {
						"$ref": "#/components/schemas/Oid4vcProofTypeSupported",
						"description": "OPTIONAL. Object that describes specifics of the key proof(s) that the Credential Issuer supports. It MUST\nbe present if `cryptographic_binding_methods_supported` is present, and omitted otherwise. If absent, the\nWallet is not required to supply proofs when requesting this credential. This object contains a list of\nname/value pairs, where each name is a unique identifier of the supported proof type(s). Valid values are\ndefined in Appendix F, other values MAY be used. The Wallet also uses this identifier in the Credential\nRequest as defined in Section 8.2. The value in the name/value pair is an object that contains metadata\nabout the key proof and contains the following parameters defined by this specification:"
					},
					"credential_metadata": {
						"$ref": "#/components/schemas/Oid4vcCredentialMetadata",
						"description": "OPTIONAL. Object containing information relevant to the usage and display of issued Credentials. Credential\nFormat-specific mechanisms can overwrite the information in this object to convey Credential metadata.\nFormat-specific mechanisms, such as SD-JWT VC display metadata are always preferred by the Wallet over the\ninformation in this object, which serves as the default fallback. Below is a non-exhaustive list of\nparameters that MAY be included."
					},
					"doctype": {
						"type": "string",
						"description": "REQUIRED. String identifying the Credential type, as defined in [@!ISO.18013-5]."
					}
				},
				"required": [
					"format",
					"doctype"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcVCFormatType.LDP_VC": {
				"enum": [
					"ldp_vc"
				],
				"type": "string"
			},
			"CredentialDefinitionLdpVc": {
				"properties": {
					"@context": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"additionalProperties": false,
									"type": "object"
								}
							]
						},
						"type": "array",
						"description": "REQUIRED. Array as defined in [@VC_DATA], Section 4.1."
					},
					"type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. Array designating the types a certain credential type supports,\naccording to [@VC_DATA], Section 4.3."
					}
				},
				"required": [
					"@context",
					"type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialConfigurationSupportedLdpVc": {
				"properties": {
					"format": {
						"$ref": "#/components/schemas/Oid4vcVCFormatType.LDP_VC",
						"description": "REQUIRED. A JSON string identifying the format of this Credential, i.e., `ldp_vc`. Depending on the format value,\nthe object contains further elements defining the type and (optionally) particular claims the Credential\nMAY contain and information about how to display the Credential. Appendix A contains Credential Format\nProfiles introduced by this specification."
					},
					"scope": {
						"type": "string",
						"description": "OPTIONAL. A JSON string identifying the scope value that this Credential Issuer supports for this\nparticular Credential. The value can be the same across multiple `credential_configurations_supported`\nobjects. The Authorization Server MUST be able to uniquely identify the Credential Issuer based on the\nscope value. The Wallet can use this value in the Authorization Request as defined in Section 5.1.2.\nScope values in this Credential Issuer metadata MAY duplicate those in the `scopes_supported` parameter\nof the Authorization Server. If `scope` is absent, the only way to request the Credential is using\n`authorization_details` [@!RFC9396] - in this case, the OAuth Authorization Server metadata for one of\nthe Authorization Servers found from the Credential Issuer's Metadata must contain an\n`authorization_details_types_supported` that contains `openid_credential`."
					},
					"credential_signing_alg_values_supported": {
						"$ref": "#/components/schemas/CredentialSigningAlgValuesSupported",
						"description": "OPTIONAL. A non-empty array of algorithm identifiers that identify the algorithms that the Issuer uses to\nsign the issued Credential. Algorithm identifier types and values used are determined by the Credential\nFormat and are defined in Appendix A."
					},
					"cryptographic_binding_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of case sensitive strings that identify the representation of the cryptographic\nkey material that the issued Credential is bound to, as defined in (#credential-binding). It MUST be present\nwhen Cryptographic Key Binding is required for a Credential, and omitted otherwise. If absent, Cryptographic Key Binding is not required\nfor this credential. Support for keys in JWK format [@!RFC7517] is indicated by the value `jwk`. Support for\nkeys expressed as a COSE Key object [@!RFC8152] (for example, used in [@!ISO.18013-5]) is indicated by the\nvalue `cose_key`. When the Cryptographic Key Binding method is a DID, valid values are a `did:` prefix\nfollowed by a method-name using a syntax as defined in Section 3.1 of [@!DID-Core], but without a `:` and\nmethod-specific-id. For example, support for the DID method with a method-name \"example\" would be represented\nby `did:example`."
					},
					"proof_types_supported": {
						"$ref": "#/components/schemas/Oid4vcProofTypeSupported",
						"description": "OPTIONAL. Object that describes specifics of the key proof(s) that the Credential Issuer supports. It MUST\nbe present if `cryptographic_binding_methods_supported` is present, and omitted otherwise. If absent, the\nWallet is not required to supply proofs when requesting this credential. This object contains a list of\nname/value pairs, where each name is a unique identifier of the supported proof type(s). Valid values are\ndefined in Appendix F, other values MAY be used. The Wallet also uses this identifier in the Credential\nRequest as defined in Section 8.2. The value in the name/value pair is an object that contains metadata\nabout the key proof and contains the following parameters defined by this specification:"
					},
					"credential_metadata": {
						"$ref": "#/components/schemas/Oid4vcCredentialMetadata",
						"description": "OPTIONAL. Object containing information relevant to the usage and display of issued Credentials. Credential\nFormat-specific mechanisms can overwrite the information in this object to convey Credential metadata.\nFormat-specific mechanisms, such as SD-JWT VC display metadata are always preferred by the Wallet over the\ninformation in this object, which serves as the default fallback. Below is a non-exhaustive list of\nparameters that MAY be included."
					},
					"credential_definition": {
						"$ref": "#/components/schemas/CredentialDefinitionLdpVc",
						"description": "REQUIRED. Object containing the detailed description of the Credential type."
					}
				},
				"required": [
					"format",
					"credential_definition"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcVCFormatType.SD_JWT": {
				"enum": [
					"dc+sd-jwt"
				],
				"type": "string"
			},
			"CredentialConfigurationSupportedSdJwt": {
				"properties": {
					"format": {
						"$ref": "#/components/schemas/Oid4vcVCFormatType.SD_JWT",
						"description": "REQUIRED. A JSON string identifying the format of this Credential, i.e., `ldp_vc`. Depending on the format value,\nthe object contains further elements defining the type and (optionally) particular claims the Credential\nMAY contain and information about how to display the Credential. Appendix A contains Credential Format\nProfiles introduced by this specification."
					},
					"scope": {
						"type": "string",
						"description": "OPTIONAL. A JSON string identifying the scope value that this Credential Issuer supports for this\nparticular Credential. The value can be the same across multiple `credential_configurations_supported`\nobjects. The Authorization Server MUST be able to uniquely identify the Credential Issuer based on the\nscope value. The Wallet can use this value in the Authorization Request as defined in Section 5.1.2.\nScope values in this Credential Issuer metadata MAY duplicate those in the `scopes_supported` parameter\nof the Authorization Server. If `scope` is absent, the only way to request the Credential is using\n`authorization_details` [@!RFC9396] - in this case, the OAuth Authorization Server metadata for one of\nthe Authorization Servers found from the Credential Issuer's Metadata must contain an\n`authorization_details_types_supported` that contains `openid_credential`."
					},
					"credential_signing_alg_values_supported": {
						"$ref": "#/components/schemas/CredentialSigningAlgValuesSupported",
						"description": "OPTIONAL. A non-empty array of algorithm identifiers that identify the algorithms that the Issuer uses to\nsign the issued Credential. Algorithm identifier types and values used are determined by the Credential\nFormat and are defined in Appendix A."
					},
					"cryptographic_binding_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of case sensitive strings that identify the representation of the cryptographic\nkey material that the issued Credential is bound to, as defined in (#credential-binding). It MUST be present\nwhen Cryptographic Key Binding is required for a Credential, and omitted otherwise. If absent, Cryptographic Key Binding is not required\nfor this credential. Support for keys in JWK format [@!RFC7517] is indicated by the value `jwk`. Support for\nkeys expressed as a COSE Key object [@!RFC8152] (for example, used in [@!ISO.18013-5]) is indicated by the\nvalue `cose_key`. When the Cryptographic Key Binding method is a DID, valid values are a `did:` prefix\nfollowed by a method-name using a syntax as defined in Section 3.1 of [@!DID-Core], but without a `:` and\nmethod-specific-id. For example, support for the DID method with a method-name \"example\" would be represented\nby `did:example`."
					},
					"proof_types_supported": {
						"$ref": "#/components/schemas/Oid4vcProofTypeSupported",
						"description": "OPTIONAL. Object that describes specifics of the key proof(s) that the Credential Issuer supports. It MUST\nbe present if `cryptographic_binding_methods_supported` is present, and omitted otherwise. If absent, the\nWallet is not required to supply proofs when requesting this credential. This object contains a list of\nname/value pairs, where each name is a unique identifier of the supported proof type(s). Valid values are\ndefined in Appendix F, other values MAY be used. The Wallet also uses this identifier in the Credential\nRequest as defined in Section 8.2. The value in the name/value pair is an object that contains metadata\nabout the key proof and contains the following parameters defined by this specification:"
					},
					"credential_metadata": {
						"$ref": "#/components/schemas/Oid4vcCredentialMetadata",
						"description": "OPTIONAL. Object containing information relevant to the usage and display of issued Credentials. Credential\nFormat-specific mechanisms can overwrite the information in this object to convey Credential metadata.\nFormat-specific mechanisms, such as SD-JWT VC display metadata are always preferred by the Wallet over the\ninformation in this object, which serves as the default fallback. Below is a non-exhaustive list of\nparameters that MAY be included."
					},
					"vct": {
						"type": "string",
						"description": "REQUIRED. String designating the type of a Credential, as defined in [@!I-D.ietf-oauth-sd-jwt-vc]."
					}
				},
				"required": [
					"format",
					"vct"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciCredConfiguration": {
				"allOf": [
					{
						"$ref": "#/components/schemas/BaseCredentialConfigurationSupport"
					},
					{
						"anyOf": [
							{
								"$ref": "#/components/schemas/CredentialConfigurationSupportedMsoMdoc"
							},
							{
								"$ref": "#/components/schemas/CredentialConfigurationSupportedLdpVc"
							},
							{
								"$ref": "#/components/schemas/CredentialConfigurationSupportedSdJwt"
							}
						]
					}
				]
			},
			"Record_string.Oid4vciCredConfiguration_": {
				"properties": {},
				"additionalProperties": {
					"$ref": "#/components/schemas/Oid4vciCredConfiguration"
				},
				"type": "object",
				"description": "Construct a type with a set of properties K of type T"
			},
			"Oid4vciAgentMetadata": {
				"properties": {
					"credential_issuer": {
						"type": "string",
						"description": "REQUIRED. The Credential Issuer's identifier, as defined in Section 11.2.1. The value\nMUST be identical to the Credential Issuer's identifier value into which the well-known\nURI string was inserted to create the URL used to retrieve the metadata. If these values\nare not identical (when compared using a simple string comparison with no normalization),\nthe data contained in the response MUST NOT be used."
					},
					"authorization_servers": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of strings, where each string is an identifier of the OAuth 2.0\nAuthorization Server (as defined in [@!RFC8414]) the Credential Issuer relies on for\nauthorization. If this parameter is omitted, the entity providing the Credential Issuer is\nalso acting as the Authorization Server, i.e., the Credential Issuer's identifier is used to\nobtain the Authorization Server metadata. The actual OAuth 2.0 Authorization Server metadata\nis obtained from the `oauth-authorization-server` well-known location as defined in\nSection 3 of [@!RFC8414]. When there are multiple entries in the array, the Wallet may be\nable to determine which Authorization Server to use by querying the metadata; for example,\nby examining the `grant_types_supported` values, the Wallet can filter the server to use\nbased on the grant type it plans to use. When the Wallet is using `authorization_server`\nparameter in the Credential Offer as a hint to determine which Authorization Server to use\nout of multiple, the Wallet MUST NOT proceed with the flow if the `authorization_server`\nCredential Offer parameter value does not match any of the entries in the\n`authorization_servers` array."
					},
					"credential_endpoint": {
						"type": "string",
						"description": "REQUIRED. URL of the Credential Issuer's Credential Endpoint, as defined in Section 8.2. This\nURL MUST use the `https` scheme and MAY contain port, path, and query parameter components."
					},
					"nonce_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the Credential Issuer's Nonce Endpoint, as defined in Section 7. This URL MUST\nuse the `https` scheme and MAY contain port, path, and query parameter components. If omitted,\nthe Credential Issuer does not require the use of `c_nonce`."
					},
					"deferred_credential_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the Credential Issuer's Deferred Credential Endpoint, as defined in Section 9.\nThis URL MUST use the `https` scheme and MAY contain port, path, and query parameter components.\nIf omitted, the Credential Issuer does not support the Deferred Credential Endpoint."
					},
					"notification_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the Credential Issuer's Notification Endpoint, as defined in Section 10. This\nURL MUST use the `https` scheme and MAY contain port, path, and query parameter components. If\nomitted, the Credential Issuer does not support the Notification Endpoint."
					},
					"credential_request_encryption": {
						"$ref": "#/components/schemas/RequestEncryption",
						"description": "OPTIONAL. Object containing information about whether the Credential Issuer supports encryption\nof the Credential Request on top of TLS."
					},
					"credential_response_encryption": {
						"$ref": "#/components/schemas/ResponseEncryption",
						"description": "OPTIONAL. Object containing information about whether the Credential Issuer supports encryption\nof the Credential Response on top of TLS."
					},
					"batch_credential_issuance": {
						"$ref": "#/components/schemas/BatchIssuance",
						"description": "OPTIONAL. Object containing information about the Credential Issuer's support for issuance of\nmultiple Credentials in a batch in the Credential Endpoint. The presence of this parameter means\nthat the issuer supports more than one key proof in the `proofs` parameter in the Credential\nRequest so can issue more than one Verifiable Credential for the same Credential Dataset in a\nsingle request/response."
					},
					"display": {
						"items": {
							"$ref": "#/components/schemas/MetadataDisplay"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of objects, where each object contains display properties of a Credential\nIssuer for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included."
					},
					"credential_configurations_supported": {
						"$ref": "#/components/schemas/Record_string.Oid4vciCredConfiguration_",
						"description": "REQUIRED. Object that describes specifics of the Credential that the Credential Issuer supports\nissuance of. This object contains a list of name/value pairs, where each name is a unique identifier\nof the supported Credential being described. This identifier is used in the Credential Offer as defined\nin Section 4.1.1 to communicate to the Wallet which Credential is being offered. The value is an object\nthat contains metadata about a specific Credential and contains the following parameters defined by this\nspecification."
					}
				},
				"required": [
					"credential_issuer",
					"credential_endpoint",
					"nonce_endpoint",
					"credential_configurations_supported"
				],
				"type": "object",
				"additionalProperties": false
			},
			"NonceResponseObj": {
				"properties": {
					"c_nonce": {
						"type": "string"
					}
				},
				"required": [
					"c_nonce"
				],
				"type": "object",
				"additionalProperties": false
			},
			"GrantAznCode": {
				"properties": {
					"issuer_state": {
						"type": "string",
						"description": "OPTIONAL. String value created by the Credential Issuer and opaque to the Wallet that is used to bind the\nsubsequent Authorization Request with a context set up during previous process steps. If the Wallet decides\nto use the Authorization Code Flow and received a value for this parameter, it MUST include it in the\nsubsequent Authorization Request to the Authorization Server as the `issuer_state` parameter value.",
						"example": "0d5d7105-f6bb-7132-89d7-bfaeb7fed1c6"
					},
					"authorization_server": {
						"type": "string",
						"description": "OPTIONAL string that the Wallet can use to identify the Authorization Server to use with this grant type when\nauthorization_servers parameter in the Credential Issuer metadata has multiple entries. MUST NOT be used otherwise.\nThe value of this parameter MUST match with one of the values in the authorization_servers array obtained\nfrom the Credential Issuer metadata.",
						"example": "https://host:port/oauth2"
					},
					"client_id": {
						"type": "string",
						"description": "NON STANDARD\nSome implementations might include a client_id in the offer.",
						"example": "s6BhdRkqt3"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"TxCodeInputMode": {
				"type": "string",
				"enum": [
					"numeric",
					"text"
				]
			},
			"TxCode": {
				"properties": {
					"input_mode": {
						"$ref": "#/components/schemas/TxCodeInputMode",
						"description": "OPTIONAL. String specifying the input character set. Possible values are numeric (only digits) and text (any characters). The default is numeric."
					},
					"length": {
						"type": "number",
						"format": "double",
						"description": "OPTIONAL. Integer specifying the length of the Transaction Code. This helps the Wallet to render the input screen and improve the user experience."
					},
					"description": {
						"type": "string",
						"description": "OPTIONAL. String containing guidance for the Holder of the Wallet on how to obtain the Transaction Code, e.g.,\ndescribing over which communication channel it is delivered. The Wallet is RECOMMENDED to display this description\nnext to the Transaction Code input screen to improve the user experience. The length of the string MUST NOT exceed\n300 characters. The description does not support internationalization, however the Issuer MAY detect the Holder's\nlanguage by previous communication or an HTTP Accept-Language header within an HTTP GET request for a Credential Offer URI.",
						"example": "Please provide the one-time code."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"GrantPreAuthCode": {
				"properties": {
					"pre-authorized_code": {
						"type": "string",
						"description": "REQUIRED. The code representing the Credential Issuer's authorization for the Wallet to obtain Credentials of a certain type.",
						"example": "oaKazRN8I0IbtZ0C7JuMn5"
					},
					"tx_code": {
						"$ref": "#/components/schemas/TxCode",
						"description": "OPTIONAL. Object indicating that a Transaction Code is required if present, even if empty. It describes the\nrequirements for a Transaction Code, which the Authorization Server expects the End-User to\npresent along with the Token Request in a Pre-Authorized Code Flow. If the Authorization Server does not expect a\nTransaction Code, this object is absent; this is the default. The Transaction Code is intended to bind the Pre-Authorized\nCode to a certain transaction to prevent replay of this code by an attacker that, for example, scanned the QR code while\nstanding behind the legitimate End-User. It is RECOMMENDED to send the Transaction Code via a separate channel. If the Wallet\ndecides to use the Pre-Authorized Code Flow, the Transaction Code value MUST be sent in the `tx_code` parameter with\nthe respective Token Request as defined in Section 6.1. If no `length`, `description`, or `input_mode` is given, this\nobject MAY be empty."
					},
					"interval": {
						"type": "number",
						"format": "double",
						"description": "OPTIONAL. The minimum amount of time in seconds that the Wallet SHOULD wait between polling requests to the token endpoint\n(in case the Authorization Server responds with error code authorization_pending - see Section 6.3). If no value is provided,\nWallets MUST use 5 as the default.",
						"example": 5
					},
					"authorization_server": {
						"type": "string",
						"description": "OPTIONAL string that the Wallet can use to identify the Authorization Server to use with this grant type when\nauthorization_servers parameter in the Credential Issuer metadata has multiple entries. MUST NOT be used otherwise. The\nvalue of this parameter MUST match with one of the values in the authorization_servers array obtained from the\nCredential Issuer metadata.",
						"example": "https://host:port/oauth2"
					},
					"client_id": {
						"type": "string",
						"description": "NON STANDARD\nSome implementations might include a client_id in the offer.",
						"example": "s6BhdRkqt3"
					}
				},
				"required": [
					"pre-authorized_code"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Grant": {
				"description": "OPTIONAL. Object indicating to the Wallet the Grant Types the Credential Issuer's Authorization\nServer is prepared to process for this Credential Offer. Every grant is represented by a name/value\npair. The name is the Grant Type identifier; the value is an object that contains parameters either\ndetermining the way the Wallet MUST use the particular grant and/or parameters the Wallet MUST\nsend with the respective request(s). If grants is not present or is empty, the Wallet MUST\ndetermine the Grant Types the Credential Issuer's Authorization Server supports using the respective\nmetadata. When multiple grants are present, it is at the Wallet's discretion which one to use.",
				"properties": {
					"authorization_code": {
						"$ref": "#/components/schemas/GrantAznCode"
					},
					"urn:ietf:params:oauth:grant-type:pre-authorized_code": {
						"$ref": "#/components/schemas/GrantPreAuthCode"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciAgentCredOffer": {
				"properties": {
					"credential_issuer": {
						"type": "string",
						"description": "The URL of the Credential Issuer from which the Wallet is requested to obtain one or more Credentials.\nThe Wallet uses it to obtain the Credential Issuer's Metadata.",
						"example": "https://host/oidvc/vci/{agentId}"
					},
					"credential_configuration_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A non-empty array of unique strings that each identify one of the keys in the name/value pairs stored in the\ncredential_configurations_supported Credential Issuer metadata. The Wallet uses these string\nvalues to obtain the respective object that contains information about the Credential\nbeing offered. For example, these string values can be used to obtain scope values to be used in\nthe Authorization Request.",
						"example": [
							"citizen_vc:1.0",
							"org.iso.18013.5.1.mDL"
						]
					},
					"grants": {
						"$ref": "#/components/schemas/Grant",
						"description": "OPTIONAL. Object indicating to the Wallet the Grant Types the Credential Issuer's Authorization\nServer is prepared to process for this Credential Offer. Every grant is represented by a name/value\npair. The name is the Grant Type identifier; the value is an object that contains parameters either\ndetermining the way the Wallet MUST use the particular grant and/or parameters the Wallet MUST\nsend with the respective request(s). If grants is not present or is empty, the Wallet MUST\ndetermine the Grant Types the Credential Issuer's Authorization Server supports using the respective\nmetadata. When multiple grants are present, it is at the Wallet's discretion which one to use."
					}
				},
				"required": [
					"credential_issuer",
					"credential_configuration_ids"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciSessionState": {
				"description": "Convey the Session State",
				"enum": [
					"OfferCreated",
					"CredentialRequestReceived",
					"Error",
					"Expired"
				],
				"type": "string"
			},
			"CredentialValidityDurationUnit": {
				"enum": [
					"seconds",
					"minutes",
					"hours",
					"days",
					"months",
					"years"
				],
				"type": "string"
			},
			"CredentialValidityPeriod": {
				"properties": {
					"duration": {
						"type": "number",
						"format": "double",
						"description": "How long credentials issued via this definition should remain valid for.\nThis value can be overridden by a credential offer."
					},
					"duration_unit": {
						"$ref": "#/components/schemas/CredentialValidityDurationUnit",
						"description": "The unit of measurement for the duration."
					}
				},
				"required": [
					"duration",
					"duration_unit"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OfferCredentialValidityInfo": {
				"properties": {
					"validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "How long credentials issued via this definition should remain valid for, in the provided unit of measurement.\nIf specified, expiry_date should NOT be specified."
					},
					"expiry_date": {
						"type": "string",
						"format": "date-time",
						"description": "The exact date that the offered credential will expire on. If specified, validity_period should NOT be specified."
					},
					"not_before_date": {
						"type": "string",
						"format": "date-time",
						"description": "The exact date that the offered credential will become valid on. If not specified, current time is assumed."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OpenId4vcIssuanceSessionInfo": {
				"properties": {
					"id": {
						"type": "string",
						"description": "Unique id.",
						"example": "5e9ae327-e9db-7217-872a-1302fe0df03a"
					},
					"createdAt": {
						"type": "string",
						"format": "date-time",
						"description": "Creation date"
					},
					"expiresAt": {
						"type": "string",
						"format": "date-time",
						"description": "Offer expiration date"
					},
					"issuerId": {
						"type": "string",
						"description": "Issuer id.",
						"example": "https://host:port/diagency/v1.0/oidvc/vci/30512388-c26d-7923-919c-34a17cce773f"
					},
					"credentialOfferUri": {
						"type": "string",
						"description": "The URI that can be used to initiate the credential issuance process.\nThis URI can be encoded in a QR code or used in a deep link.",
						"example": "https://server.example.com/credential-offer/GkurKxf5T0Y-mnPFCHqWOMiZi4VS138cQO_V7PZHAdM"
					},
					"qrCode": {
						"type": "string",
						"description": "Base64-encoded QR code image representing the credentialOfferUri.\nThis field is only included in responses to the POST endpoint when\n`with_qr_code` is set to true on the request.",
						"example": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
					},
					"credentialOfferPayload": {
						"$ref": "#/components/schemas/Oid4vciAgentCredOffer"
					},
					"state": {
						"$ref": "#/components/schemas/Oid4vciSessionState"
					},
					"errorMessage": {
						"type": "string",
						"description": "Error Message",
						"example": "unsupported"
					},
					"credentialValidityInfo": {
						"$ref": "#/components/schemas/OfferCredentialValidityInfo",
						"description": "Configuration details for setting an expiry date on the offered credential.\nIf not specified, the credential validity config from that credential's definition\nwill be used as the default."
					}
				},
				"required": [
					"id",
					"createdAt",
					"expiresAt",
					"issuerId",
					"credentialOfferUri",
					"credentialOfferPayload",
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciCreateCredOfferResponse": {
				"$ref": "#/components/schemas/OpenId4vcIssuanceSessionInfo"
			},
			"Record_string.unknown_": {
				"properties": {},
				"additionalProperties": {},
				"type": "object",
				"description": "Construct a type with a set of properties K of type T"
			},
			"Oid4vciCreateCredOfferRequest": {
				"properties": {
					"credential_configuration_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "List of credential definition ids.\nArray of unique strings that each identify one of the keys in the name/value pairs stored\n in the credential_configurations_supported Credential Issuer metadata.",
						"example": [
							"citizen_vc:1.0"
						]
					},
					"offerTtl": {
						"type": "number",
						"format": "double",
						"description": "The maximum time in seconds the offer shall remain valid"
					},
					"credential_data": {
						"$ref": "#/components/schemas/Record_string.unknown_",
						"description": "The actual credential data that will be minted upon successful presentation of an authorized\naccess token at the \"/credential\" endpoint."
					},
					"credential_offer_scheme": {
						"type": "string",
						"description": "The credential offer URI scheme to use. If undefined, it will default to\nthe issuer profile if one is set. Otherwise, it will default to\n\"openid-credential-offer\"."
					},
					"credential_validity_info": {
						"$ref": "#/components/schemas/OfferCredentialValidityInfo",
						"description": "Configuration details for setting an expiry and/or not-before date on the offered credential.\nIf not specified, the credential validity config from that credential's definition\nwill be used as the default."
					},
					"with_qr_code": {
						"type": "boolean",
						"description": "If true, the QR code to be scanned by the wallet is returned in the\nresponse payload.  Default is false."
					},
					"authorization_provider": {
						"type": "string",
						"description": "Override the default authorization provider for this specific offer.\nThe value must match the 'name' field of a configured auth introspection provider.\nIf not specified, the default from the issuer profile will be used.",
						"example": "oauth-provider-name"
					},
					"client_id": {
						"type": "string",
						"description": "Override the default client ID for this specific offer.\nIf not specified, the default from the issuer profile will be used.",
						"example": "wallet-client-id"
					}
				},
				"required": [
					"credential_configuration_ids"
				],
				"type": "object",
				"additionalProperties": false
			},
			"List_OpenId4vcIssuanceSessionInfo_": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/OpenId4vcIssuanceSessionInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OpenId4vcIssuanceSessionInfoList": {
				"$ref": "#/components/schemas/List_OpenId4vcIssuanceSessionInfo_"
			},
			"QueryStringArgs": {
				"properties": {
					"pagination": {
						"type": "string",
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`"
					},
					"filter": {
						"type": "string",
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"ICredentialContext": {
				"properties": {
					"name": {
						"type": "string"
					},
					"did": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Record_string.any_": {
				"properties": {},
				"additionalProperties": {},
				"type": "object",
				"description": "Construct a type with a set of properties K of type T"
			},
			"AdditionalClaims": {
				"$ref": "#/components/schemas/Record_string.any_"
			},
			"ICredentialContextType": {
				"anyOf": [
					{
						"allOf": [
							{
								"$ref": "#/components/schemas/ICredentialContext"
							},
							{
								"$ref": "#/components/schemas/AdditionalClaims"
							}
						]
					},
					{
						"type": "string"
					}
				]
			},
			"ICredentialSchema": {
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"type": "string"
					}
				},
				"required": [
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ICredentialSchemaType": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/ICredentialSchema"
					},
					{
						"type": "string"
					}
				]
			},
			"IIssuerId": {
				"type": "string"
			},
			"IIssuer": {
				"properties": {
					"id": {
						"type": "string"
					}
				},
				"required": [
					"id"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"ICredentialSubject": {
				"properties": {
					"id": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"ICredentialStatus": {
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"type"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"ICredential": {
				"properties": {
					"@context": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/ICredentialContextType"
							},
							{
								"items": {
									"$ref": "#/components/schemas/ICredentialContextType"
								},
								"type": "array"
							}
						]
					},
					"type": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"credentialSchema": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/ICredentialSchemaType"
							},
							{
								"items": {
									"$ref": "#/components/schemas/ICredentialSchemaType"
								},
								"type": "array"
							}
						]
					},
					"issuer": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/IIssuerId"
							},
							{
								"$ref": "#/components/schemas/IIssuer"
							}
						]
					},
					"issuanceDate": {
						"type": "string"
					},
					"credentialSubject": {
						"anyOf": [
							{
								"allOf": [
									{
										"$ref": "#/components/schemas/ICredentialSubject"
									},
									{
										"$ref": "#/components/schemas/AdditionalClaims"
									}
								]
							},
							{
								"items": {
									"allOf": [
										{
											"$ref": "#/components/schemas/ICredentialSubject"
										},
										{
											"$ref": "#/components/schemas/AdditionalClaims"
										}
									]
								},
								"type": "array"
							}
						]
					},
					"expirationDate": {
						"type": "string"
					},
					"id": {
						"type": "string"
					},
					"credentialStatus": {
						"$ref": "#/components/schemas/ICredentialStatus"
					},
					"description": {
						"type": "string"
					},
					"name": {
						"type": "string"
					}
				},
				"required": [
					"@context",
					"type",
					"issuer",
					"issuanceDate",
					"credentialSubject"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"IProofType": {
				"enum": [
					"Ed25519Signature2018",
					"Ed25519Signature2020",
					"EcdsaSecp256k1Signature2019",
					"EcdsaSecp256k1RecoverySignature2020",
					"JsonWebSignature2020",
					"RsaSignature2018",
					"GpgSignature2020",
					"JcsEd25519Signature2020",
					"BbsBlsSignatureProof2020",
					"BbsBlsBoundSignatureProof2020",
					"JwtProof2020",
					"SdJwtProof2024",
					"MsoMdocProof2024"
				],
				"type": "string"
			},
			"IProofPurpose": {
				"enum": [
					"verificationMethod",
					"assertionMethod",
					"authentication",
					"keyAgreement",
					"contactAgreement",
					"capabilityInvocation",
					"capabilityDelegation"
				],
				"type": "string"
			},
			"IProof": {
				"properties": {
					"type": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/IProofType"
							},
							{
								"type": "string"
							}
						]
					},
					"created": {
						"type": "string"
					},
					"proofPurpose": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/IProofPurpose"
							},
							{
								"type": "string"
							}
						]
					},
					"verificationMethod": {
						"type": "string"
					},
					"challenge": {
						"type": "string"
					},
					"domain": {
						"type": "string"
					},
					"proofValue": {
						"type": "string"
					},
					"jws": {
						"type": "string"
					},
					"jwt": {
						"type": "string"
					},
					"mso_mdoc": {
						"type": "string"
					},
					"nonce": {
						"type": "string"
					},
					"requiredRevealStatements": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"type",
					"created",
					"proofPurpose",
					"verificationMethod"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"IHasProof": {
				"properties": {
					"proof": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/IProof"
							},
							{
								"items": {
									"$ref": "#/components/schemas/IProof"
								},
								"type": "array"
							}
						]
					}
				},
				"required": [
					"proof"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IVerifiableCredential": {
				"allOf": [
					{
						"$ref": "#/components/schemas/ICredential"
					},
					{
						"$ref": "#/components/schemas/IHasProof"
					}
				]
			},
			"CompactJWT": {
				"type": "string",
				"description": "Represents a Json Web Token in compact form."
			},
			"W3CVerifiableCredential": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/IVerifiableCredential"
					},
					{
						"$ref": "#/components/schemas/CompactJWT"
					}
				],
				"description": "Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format.\nSee {@link https://www.w3.org/TR/vc-data-model/#credentials VC data model}\nSee {@link https://www.w3.org/TR/vc-data-model/#proof-formats proof formats}"
			},
			"Oid4vciCredentialType": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/W3CVerifiableCredential"
					},
					{
						"type": "string"
					}
				]
			},
			"Oid4vciCredentialResponseObject": {
				"properties": {
					"credential": {
						"$ref": "#/components/schemas/Oid4vciCredentialType",
						"description": "REQUIRED. Contains one issued Credential. The encoding of the Credential depends on\nthe Credential Format and MAY be a string or an object. Credential Formats expressed\nas binary data MUST be base64url-encoded and returned as a string. More details are\ndefined in the Credential Format Profiles in Appendix A."
					}
				},
				"required": [
					"credential"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciCredentialResponse": {
				"properties": {
					"credentials": {
						"items": {
							"$ref": "#/components/schemas/Oid4vciCredentialResponseObject"
						},
						"type": "array",
						"description": "OPTIONAL. Contains an array of one or more issued Credentials. It MUST NOT be used if\nthe transaction_id parameter is present. The elements of the array MUST be objects.\nThe number of elements in the `credentials` array matches the number of keys that the\nWallet has provided via the `proofs` parameter of the Credential Request, unless the\nIssuer decides to issue fewer Credentials. Each key provided by the Wallet is used to\nbind to, at most, one Credential. This specification defines the following parameters\nto be used inside this object."
					},
					"transaction_id": {
						"type": "string",
						"description": "OPTIONAL. String identifying a Deferred Issuance transaction. This parameter is contained in\nthe response if the Credential Issuer cannot immediately issue the Credential. The value\nis subsequently used to obtain the respective Credential with the Deferred Credential\nEndpoint (see Section 8). It MUST not be used if the credentials parameter is present.\nIt MUST be invalidated after the Credential for which it was meant has been obtained by\nthe Wallet."
					},
					"notification_id": {
						"type": "string",
						"description": "OPTIONAL. String identifying one or more Credentials issued in one Credential Response.\nIt MUST be included in the Notification Request as defined in Section 10.1. It MUST\nnot be used if the `credentials` parameter is not present."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciErrorCode": {
				"enum": [
					"invalid_credential_request",
					"unknown_credential_configuration",
					"unknown_credential_identifier",
					"invalid_proof",
					"invalid_encryption_parameters",
					"credential_request_denied"
				],
				"type": "string"
			},
			"Oid4vciErrorResponse": {
				"description": "For errors related to the Credential Request's payload, such as issues with type,\nformat, proof, encryption parameters, or if the request is denied, the specific error\ncodes from this section MUST be used instead of the generic invalid_request parameter\ndefined in Section 3.1 of [RFC6750].\n\nIf the Wallet is requesting the issuance of a Credential that is not supported by the\nCredential Endpoint, the HTTP response MUST use the HTTP status code 400 (Bad Request)\nand set the content type to application/json with the following parameters in the\nJSON-encoded response body.\n\nNote that Credential Error Responses are never encrypted, even if a valid Credential\nResponse would have been.",
				"properties": {
					"error": {
						"$ref": "#/components/schemas/Oid4vciErrorCode",
						"description": "REQUIRED. The error parameter SHOULD be a single ASCII error code"
					},
					"error_description": {
						"type": "string",
						"description": "OPTIONAL. The error_description parameter MUST be a human-readable ASCII\ntext, providing any additional information used to assist the Client implementers\nin understanding the occurred error. The values for the error_description parameter\nMUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E."
					}
				},
				"required": [
					"error"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciJwtProofTypeList": {
				"description": "Object providing jwt proof of possession(s) of the cryptographic\nkey material to which the issued Credential instance(s) will be bound to.",
				"properties": {
					"jwt": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"jwt"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcSignatureProofType": {
				"enum": [
					"Ed25519Signature2020",
					"BbsBlsSignature2020",
					"sec:BbsBlsSignature2020",
					"EdDSA",
					"EDDSA",
					"DataIntegrityProof"
				],
				"type": "string"
			},
			"Oid4vcProofPurpose": {
				"enum": [
					"assertionMethod",
					"authentication"
				],
				"type": "string"
			},
			"Oid4vcSignature2020Proof": {
				"description": "LD Proof based on Ed25519 and BbsBls 2020 Signature Suite",
				"properties": {
					"@context": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						]
					},
					"type": {
						"$ref": "#/components/schemas/Oid4vcSignatureProofType"
					},
					"created": {
						"type": "string",
						"description": "MUST be an [XMLSCHEMA11-2] formatted date string."
					},
					"verificationMethod": {
						"type": "string",
						"description": "DID or URL.  Dereferencing the verificationMethod MUST\nresult in an object containing a type property with the\nvalue set to Ed25519VerificationKey2020.  \"did:key\" only for\nnow."
					},
					"proofPurpose": {
						"$ref": "#/components/schemas/Oid4vcProofPurpose",
						"description": "MUST be a string, and MUST match the verification relationship\nexpressed by the verification method controller."
					},
					"proofValue": {
						"type": "string",
						"description": "MUST be a detached EdDSA produced according to [RFC8032], encoded\nusing the base-58-btc header and alphabet as described in the\nMultibase section of [VC-DATA-INTEGRITY]"
					},
					"domain": {
						"type": "string",
						"description": "MUST be the Credential Issuer Identifier"
					},
					"challenge": {
						"type": "string",
						"description": "REQUIRED when the Credential Issuer has provided a c_nonce. It MUST NOT\nbe used otherwise. String, where the value is a server-provided c_nonce.\nIt MUST be present when the issuer has a Nonce Endpoint as defined in\nthe Credential Issuer Metadata endpoint."
					},
					"cryptosuite": {
						"type": "string",
						"description": "REQUIRED when type is DataIntegrityProof"
					}
				},
				"required": [
					"type",
					"created",
					"verificationMethod",
					"proofPurpose",
					"proofValue"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OidvcLdpVerifiablePresentation": {
				"properties": {
					"@context": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"type": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"holder": {
						"type": "string"
					},
					"proof": {
						"$ref": "#/components/schemas/Oid4vcSignature2020Proof"
					},
					"termsOfUse": {
						"type": "string"
					},
					"verifiableCredential": {}
				},
				"required": [
					"@context",
					"type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciDivpProofTypeList": {
				"description": "Object providing di_vp proof of possession(s) of the cryptographic\nkey material to which the issued Credential instance(s) will be bound to.",
				"properties": {
					"di_vp": {
						"items": {
							"$ref": "#/components/schemas/OidvcLdpVerifiablePresentation"
						},
						"type": "array"
					}
				},
				"required": [
					"di_vp"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vcJWK": {
				"properties": {
					"kty": {
						"type": "string"
					},
					"crv": {
						"type": "string"
					},
					"x": {
						"type": "string"
					},
					"y": {
						"type": "string"
					},
					"e": {
						"type": "string"
					},
					"n": {
						"type": "string"
					},
					"alg": {
						"type": "string"
					},
					"d": {
						"type": "string"
					},
					"dp": {
						"type": "string"
					},
					"dq": {
						"type": "string"
					},
					"ext": {
						"type": "boolean"
					},
					"k": {
						"type": "string"
					},
					"key_ops": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"kid": {
						"type": "string"
					},
					"oth": {
						"items": {
							"properties": {
								"t": {
									"type": "string"
								},
								"r": {
									"type": "string"
								},
								"d": {
									"type": "string"
								}
							},
							"type": "object"
						},
						"type": "array"
					},
					"p": {
						"type": "string"
					},
					"q": {
						"type": "string"
					},
					"qi": {
						"type": "string"
					},
					"use": {
						"type": "string"
					},
					"x5c": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"x5t": {
						"type": "string"
					},
					"x5t#S256": {
						"type": "string"
					},
					"x5u": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": {}
			},
			"Oid4vciCredResponseEncryption": {
				"properties": {
					"jwk": {
						"$ref": "#/components/schemas/Oid4vcJWK"
					},
					"alg": {
						"type": "string"
					},
					"enc": {
						"type": "string"
					}
				},
				"required": [
					"jwk",
					"alg",
					"enc"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciCredentialRequestCommon": {
				"properties": {
					"credential_identifier": {
						"type": "string",
						"description": "REQUIRED when an Authorization Details of type openid_credential\nwas returned from the Token Response. It MUST NOT be used otherwise.\nA string that identifies a Credential Dataset that is requested for\nissuance. When this parameter is used, the credential_configuration_id\nMUST NOT be present."
					},
					"credential_configuration_id": {
						"type": "string",
						"description": "REQUIRED if a credential_identifiers parameter was not returned from\nthe Token Response as part of the authorization_details parameter. It\nMUST NOT be used otherwise. String that uniquely identifies one of the\nkeys in the name/value pairs stored in the credential_configurations_supported\nCredential Issuer metadata. The corresponding object in the\ncredential_configurations_supported map MUST contain one of the value(s) used\nin the scope parameter in the Authorization Request. When this parameter\nis used, the credential_identifier MUST NOT be present."
					},
					"proofs": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/Oid4vciJwtProofTypeList"
							},
							{
								"$ref": "#/components/schemas/Oid4vciDivpProofTypeList"
							}
						],
						"description": "OPTIONAL. Object providing one or more proof of possessions of the cryptographic key material\nto which the issued Credential instances will be bound to. The proofs parameter contains exactly\none parameter named as the proof type in Appendix F, the value set for this parameter is a\nnon-empty array containing parameters as defined by the corresponding proof type."
					},
					"credential_response_encryption": {
						"$ref": "#/components/schemas/Oid4vciCredResponseEncryption",
						"description": "NOT YET SUPPORTED.\n\nOPTIONAL. Object containing information for encrypting the Credential\nResponse. If this request element is not present, the corresponding\ncredential response returned is not encrypted."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Oid4vciCredentialRequestIgnored": {
				"description": "\"Additional Credential Request parameters MAY be defined and used.\nThe Credential Issuer MUST ignore any unrecognized parameters.\"\n\nhttps://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#section-8.2-8",
				"properties": {},
				"type": "object",
				"additionalProperties": {}
			},
			"Oid4vciCredentialRequest": {
				"allOf": [
					{
						"$ref": "#/components/schemas/Oid4vciCredentialRequestCommon"
					},
					{
						"$ref": "#/components/schemas/Oid4vciCredentialRequestIgnored"
					}
				]
			},
			"OID4VCIHAIPComplianceStatus": {
				"enum": [
					"compliant",
					"noncompliant",
					"not_yet_supported"
				],
				"type": "string"
			},
			"OID4VCIHAIPComplianceCheck": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the check being performed."
					},
					"noncompliant_credential_definition_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "An array of non-compliant credential definition IDs, if relevant."
					},
					"noncompliant_authorization_server_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "An array of non-compliant authorization server IDs, if relevant."
					},
					"status": {
						"$ref": "#/components/schemas/OID4VCIHAIPComplianceStatus",
						"description": "The compliance status of this check. The values of compliant or\nnoncompliant indicate configuration options within the control of the\nconsumer of this service. A check that has a status of not yet\nimplemented will require a future server update to address."
					}
				},
				"required": [
					"name",
					"noncompliant_credential_definition_ids",
					"noncompliant_authorization_server_ids",
					"status"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VCIHAIPComplianceCheckResponse": {
				"properties": {
					"checks": {
						"items": {
							"$ref": "#/components/schemas/OID4VCIHAIPComplianceCheck"
						},
						"type": "array",
						"description": "The compliance checks that have been performed for the current issuer's\nOpenID for Verifiable Credential Issuance configuration."
					}
				},
				"required": [
					"checks"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IsvAccountInfo": {
				"properties": {
					"enabled": {
						"type": "boolean"
					},
					"id": {
						"type": "string"
					},
					"creator_id": {
						"type": "string"
					},
					"max_agents": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"enabled",
					"creator_id",
					"max_agents"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesSettingsArgs": {
				"properties": {
					"message_prefix": {
						"type": "string",
						"example": "https://didcomm.org/"
					},
					"did_exchange": {
						"type": "boolean",
						"description": "DID exchange Occurred",
						"example": true
					},
					"issue_credential_version": {
						"type": "string",
						"example": "2.0"
					},
					"present_proof_version": {
						"type": "string",
						"example": "2.0"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"IsvUpdateAccountArgs": {
				"properties": {
					"enabled": {
						"type": "boolean"
					},
					"pass": {
						"type": "string"
					},
					"seed": {
						"type": "string"
					},
					"default_ledger_name": {
						"type": "string"
					},
					"max_agent_children": {
						"type": "number",
						"format": "double"
					},
					"max_agent_depth": {
						"type": "number",
						"format": "double"
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettingsArgs"
					},
					"issuerId": {
						"type": "string"
					},
					"verifierId": {
						"type": "string"
					}
				},
				"required": [
					"enabled"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgencyMetadata": {
				"properties": {
					"serviceBaseUrl": {
						"type": "string"
					},
					"oauthBaseUrl": {
						"type": "string"
					}
				},
				"required": [
					"serviceBaseUrl",
					"oauthBaseUrl"
				],
				"type": "object",
				"additionalProperties": false
			},
			"VerificationRole": {
				"description": "The role being performed representing the state of the verification.",
				"enum": [
					"verifier",
					"prover"
				],
				"type": "string",
				"example": "verifier"
			},
			"VerificationState": {
				"description": "State of the verification or proof request.",
				"enum": [
					"outbound_verification_request",
					"inbound_verification_request",
					"outbound_proof_request",
					"inbound_proof_request",
					"proof_generated",
					"proof_shared",
					"passed",
					"failed",
					"deleted"
				],
				"type": "string"
			},
			"RequestedAttributes": {
				"description": "Proof Request Attributes.\nAll requested_attributes elements must contain either a `name` field (whose value is a string) or a `names` field (whose value is an array of strings).\nIf the `names` field is used with a `restrictions` field, the value of all attribute names MUST come from a single credential.\n\n `{\"requested_attributes\": [ {\"names\": [\"class\", \"grade\"], \"restrictions\": [{\"cred_def_id\": \"<cred-def-id>\"}]},{ \"name\": \"phone_number\"} ] }`"
			},
			"RequestedPredicates": {
				"description": "Proof Request Predicate. Request a proof pertaining to an attribute without actually knowing the value of the attribute.\nAll requested_predicates must have a `name` field for the attribute name, a `p_type` field which specifies the predicate operation,\nand a `p_value` field which is the value to which to compare the attribute value.\n`{ \"name\": \"Minimum Age\",\"p_type\": \">=\",\"p_value\": \"18\" }`"
			},
			"CredFilter": {
				"description": "Match credentials with filter.\nThe rule is matched if a credential contains the attribute `attr_name` and the value matches any of the regular expressions in the `attr_values` array.",
				"properties": {
					"attr_name": {
						"type": "string",
						"description": "Name of attribute.",
						"example": "class"
					},
					"attr_values": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "An array of regular expression strings.",
						"example": [
							"Math *"
						]
					},
					"proof_request_referent": {
						"type": "string",
						"description": "A specific proof request referent. This field references the original proof request.",
						"example": "Study Class Referent"
					},
					"exclude": {
						"type": "boolean",
						"description": "If a rule matches, the exclude flag determines whether to include or exclude the credential\nfrom the holder's view.",
						"default": false
					}
				},
				"required": [
					"attr_name",
					"attr_values"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Properties": {
				"description": "General Properties used to sort or decorate the object.",
				"properties": {},
				"type": "object",
				"additionalProperties": {}
			},
			"JwtObject": {
				"properties": {
					"alg": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"alg"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LdpObject": {
				"properties": {
					"proof_type": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"proof_type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DiObject": {
				"properties": {
					"proof_type": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"cryptosuite": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"proof_type",
					"cryptosuite"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SdJwtObject": {
				"properties": {
					"undefined": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"MsoMdocObject": {
				"properties": {
					"alg": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"required": [
					"alg"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Format": {
				"properties": {
					"jwt": {
						"$ref": "#/components/schemas/JwtObject"
					},
					"jwt_vc": {
						"$ref": "#/components/schemas/JwtObject"
					},
					"jwt_vc_json": {
						"$ref": "#/components/schemas/JwtObject"
					},
					"jwt_vp": {
						"$ref": "#/components/schemas/JwtObject"
					},
					"jwt_vp_json": {
						"$ref": "#/components/schemas/JwtObject"
					},
					"ldp": {
						"$ref": "#/components/schemas/LdpObject"
					},
					"ldp_vc": {
						"$ref": "#/components/schemas/LdpObject"
					},
					"ldp_vp": {
						"$ref": "#/components/schemas/LdpObject"
					},
					"di": {
						"$ref": "#/components/schemas/DiObject"
					},
					"di_vc": {
						"$ref": "#/components/schemas/DiObject"
					},
					"di_vp": {
						"$ref": "#/components/schemas/DiObject"
					},
					"undefined": {
						"$ref": "#/components/schemas/SdJwtObject"
					},
					"mso_mdoc": {
						"$ref": "#/components/schemas/MsoMdocObject"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Rules": {
				"type": "string",
				"enum": [
					"all",
					"pick"
				]
			},
			"SubmissionRequirement": {
				"properties": {
					"name": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					},
					"rule": {
						"$ref": "#/components/schemas/Rules"
					},
					"count": {
						"type": "number",
						"format": "double"
					},
					"min": {
						"type": "number",
						"format": "double"
					},
					"max": {
						"type": "number",
						"format": "double"
					},
					"from": {
						"type": "string"
					},
					"from_nested": {
						"items": {
							"$ref": "#/components/schemas/SubmissionRequirement"
						},
						"type": "array"
					}
				},
				"required": [
					"rule"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Schema": {
				"properties": {
					"uri": {
						"type": "string"
					},
					"required": {
						"type": "boolean"
					}
				},
				"required": [
					"uri"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Issuance": {
				"properties": {
					"manifest": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": {}
			},
			"Optionality": {
				"type": "string",
				"enum": [
					"required",
					"preferred"
				]
			},
			"Directives": {
				"type": "string",
				"enum": [
					"required",
					"allowed",
					"disallowed"
				]
			},
			"PdStatus": {
				"properties": {
					"directive": {
						"$ref": "#/components/schemas/Directives"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Statuses": {
				"properties": {
					"active": {
						"$ref": "#/components/schemas/PdStatus"
					},
					"suspended": {
						"$ref": "#/components/schemas/PdStatus"
					},
					"revoked": {
						"$ref": "#/components/schemas/PdStatus"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OneOfNumberStringBoolean": {
				"anyOf": [
					{
						"type": "boolean"
					},
					{
						"type": "number",
						"format": "double"
					},
					{
						"type": "string"
					}
				]
			},
			"OneOfNumberString": {
				"anyOf": [
					{
						"type": "number",
						"format": "double"
					},
					{
						"type": "string"
					}
				]
			},
			"FilterV1": {
				"properties": {
					"const": {
						"$ref": "#/components/schemas/OneOfNumberStringBoolean"
					},
					"enum": {
						"items": {
							"$ref": "#/components/schemas/OneOfNumberStringBoolean"
						},
						"type": "array"
					},
					"exclusiveMinimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"exclusiveMaximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"format": {
						"type": "string"
					},
					"minLength": {
						"type": "number",
						"format": "double"
					},
					"maxLength": {
						"type": "number",
						"format": "double"
					},
					"minimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"maximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"not": {
						"additionalProperties": false,
						"type": "object"
					},
					"pattern": {
						"type": "string"
					},
					"type": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"FieldV1": {
				"properties": {
					"id": {
						"type": "string"
					},
					"path": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"purpose": {
						"type": "string"
					},
					"filter": {
						"$ref": "#/components/schemas/FilterV1"
					},
					"predicate": {
						"$ref": "#/components/schemas/Optionality"
					}
				},
				"required": [
					"path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"HolderSubject": {
				"properties": {
					"field_id": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"directive": {
						"$ref": "#/components/schemas/Optionality"
					}
				},
				"required": [
					"field_id",
					"directive"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ConstraintsV1": {
				"properties": {
					"limit_disclosure": {
						"$ref": "#/components/schemas/Optionality"
					},
					"statuses": {
						"$ref": "#/components/schemas/Statuses"
					},
					"fields": {
						"items": {
							"$ref": "#/components/schemas/FieldV1"
						},
						"type": "array"
					},
					"subject_is_issuer": {
						"$ref": "#/components/schemas/Optionality"
					},
					"is_holder": {
						"items": {
							"$ref": "#/components/schemas/HolderSubject"
						},
						"type": "array"
					},
					"same_subject": {
						"items": {
							"$ref": "#/components/schemas/HolderSubject"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"InputDescriptorV1": {
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					},
					"group": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"schema": {
						"items": {
							"$ref": "#/components/schemas/Schema"
						},
						"type": "array"
					},
					"issuance": {
						"items": {
							"$ref": "#/components/schemas/Issuance"
						},
						"type": "array"
					},
					"constraints": {
						"$ref": "#/components/schemas/ConstraintsV1"
					}
				},
				"required": [
					"id",
					"schema"
				],
				"type": "object",
				"additionalProperties": false
			},
			"PresentationDefinitionV1": {
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					},
					"format": {
						"$ref": "#/components/schemas/Format"
					},
					"submission_requirements": {
						"items": {
							"$ref": "#/components/schemas/SubmissionRequirement"
						},
						"type": "array"
					},
					"input_descriptors": {
						"items": {
							"$ref": "#/components/schemas/InputDescriptorV1"
						},
						"type": "array"
					}
				},
				"required": [
					"id",
					"input_descriptors"
				],
				"type": "object",
				"additionalProperties": false
			},
			"FilterV2": {
				"properties": {
					"const": {
						"$ref": "#/components/schemas/OneOfNumberStringBoolean"
					},
					"enum": {
						"items": {
							"$ref": "#/components/schemas/OneOfNumberStringBoolean"
						},
						"type": "array"
					},
					"exclusiveMinimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"exclusiveMaximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"format": {
						"type": "string"
					},
					"formatMaximum": {
						"type": "string"
					},
					"formatMinimum": {
						"type": "string"
					},
					"formatExclusiveMaximum": {
						"type": "string"
					},
					"formatExclusiveMinimum": {
						"type": "string"
					},
					"minLength": {
						"type": "number",
						"format": "double"
					},
					"maxLength": {
						"type": "number",
						"format": "double"
					},
					"minimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"maximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"not": {
						"additionalProperties": false,
						"type": "object"
					},
					"pattern": {
						"type": "string"
					},
					"type": {
						"type": "string"
					},
					"contains": {
						"$ref": "#/components/schemas/FilterV2"
					},
					"items": {
						"$ref": "#/components/schemas/FilterV2Items"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"FilterV2Items": {
				"properties": {
					"const": {
						"$ref": "#/components/schemas/OneOfNumberStringBoolean"
					},
					"enum": {
						"items": {
							"$ref": "#/components/schemas/OneOfNumberStringBoolean"
						},
						"type": "array"
					},
					"exclusiveMinimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"exclusiveMaximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"format": {
						"type": "string"
					},
					"formatMaximum": {
						"type": "string"
					},
					"formatMinimum": {
						"type": "string"
					},
					"formatExclusiveMaximum": {
						"type": "string"
					},
					"formatExclusiveMinimum": {
						"type": "string"
					},
					"minLength": {
						"type": "number",
						"format": "double"
					},
					"maxLength": {
						"type": "number",
						"format": "double"
					},
					"minimum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"maximum": {
						"$ref": "#/components/schemas/OneOfNumberString"
					},
					"not": {
						"additionalProperties": false,
						"type": "object"
					},
					"pattern": {
						"type": "string"
					},
					"type": {
						"type": "string"
					},
					"contains": {
						"$ref": "#/components/schemas/FilterV2"
					},
					"items": {
						"$ref": "#/components/schemas/FilterV2Items"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"FieldV2": {
				"properties": {
					"id": {
						"type": "string"
					},
					"path": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"purpose": {
						"type": "string"
					},
					"filter": {
						"$ref": "#/components/schemas/FilterV2"
					},
					"predicate": {
						"$ref": "#/components/schemas/Optionality"
					},
					"intent_to_retain": {
						"type": "boolean"
					},
					"name": {
						"type": "string"
					},
					"optional": {
						"type": "boolean"
					}
				},
				"required": [
					"path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ConstraintsV2": {
				"properties": {
					"limit_disclosure": {
						"$ref": "#/components/schemas/Optionality"
					},
					"statuses": {
						"$ref": "#/components/schemas/Statuses"
					},
					"fields": {
						"items": {
							"$ref": "#/components/schemas/FieldV2"
						},
						"type": "array"
					},
					"subject_is_issuer": {
						"$ref": "#/components/schemas/Optionality"
					},
					"is_holder": {
						"items": {
							"$ref": "#/components/schemas/HolderSubject"
						},
						"type": "array"
					},
					"same_subject": {
						"items": {
							"$ref": "#/components/schemas/HolderSubject"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"InputDescriptorV2": {
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					},
					"format": {
						"$ref": "#/components/schemas/Format"
					},
					"group": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"issuance": {
						"items": {
							"$ref": "#/components/schemas/Issuance"
						},
						"type": "array"
					},
					"constraints": {
						"$ref": "#/components/schemas/ConstraintsV2"
					}
				},
				"required": [
					"id",
					"constraints"
				],
				"type": "object",
				"additionalProperties": false
			},
			"PresentationDefinitionV2": {
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"purpose": {
						"type": "string"
					},
					"format": {
						"$ref": "#/components/schemas/Format"
					},
					"submission_requirements": {
						"items": {
							"$ref": "#/components/schemas/SubmissionRequirement"
						},
						"type": "array"
					},
					"input_descriptors": {
						"items": {
							"$ref": "#/components/schemas/InputDescriptorV2"
						},
						"type": "array"
					},
					"frame": {
						"additionalProperties": false,
						"type": "object"
					}
				},
				"required": [
					"id",
					"input_descriptors"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IPresentationDefinition": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/PresentationDefinitionV1"
					},
					{
						"$ref": "#/components/schemas/PresentationDefinitionV2"
					}
				]
			},
			"DifPresentationOptions": {
				"description": "A container of additional parameters required for the holder to fulfill the verifier's request.",
				"properties": {
					"challenge": {
						"type": "string",
						"description": "Random seed provided by the verifier."
					},
					"domain": {
						"type": "string",
						"description": "The operational domain of the requested proof."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"DifPresentationRequest": {
				"description": "A presentation request is any transport mechanism used to send a ``PresentationDefinition`` from a verifier to a holder.",
				"properties": {
					"presentation_definition": {
						"$ref": "#/components/schemas/IPresentationDefinition",
						"description": "Presentation Definitions are objects that articulate what proofs a verifier requires.\nThese help the verifier to decide how or whether to interact with a holder."
					},
					"options": {
						"$ref": "#/components/schemas/DifPresentationOptions",
						"description": "A container of additional parameters required for the holder to fulfill the verifier's request."
					}
				},
				"required": [
					"presentation_definition"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofRequest": {
				"description": "Proof Request - Optional.\nDescribes data that could be used to fill out a requested attribute in a proof request.  It's data describes\ninformation from a single credential in the agent's wallet.",
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the proof request.",
						"example": "proof_of_employment"
					},
					"version": {
						"type": "string",
						"description": "The version of the proof.",
						"example": "1.0"
					},
					"requested_attributes": {
						"$ref": "#/components/schemas/RequestedAttributes",
						"description": "Indy specific - All requested attributes elements must contain either a name field\n(whose value is a string) or a names field (whose value is an array of strings).\nIf the names field is used with a restrictions field, the value of all attribute\nnames MUST come from a single credential."
					},
					"requested_predicates": {
						"$ref": "#/components/schemas/RequestedPredicates",
						"description": "Indy specific - Proof pertaining to an attribute without actually knowing the value of the attribute."
					},
					"cred_filter": {
						"items": {
							"$ref": "#/components/schemas/CredFilter"
						},
						"type": "array",
						"description": "Match credentials with filter."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "General properties used to sort or decorate the object."
					},
					"jsonld": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in JSON-LD credential format."
					},
					"bbs": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in BBS signature scheme."
					},
					"mso_mdoc": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in MDOC signature scheme."
					},
					"sd_jwt": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in SD-JWT signature scheme."
					},
					"requested_sdjwt_kb": {
						"type": "boolean",
						"description": "SD-JWT specific - Whether or not the verifier should expect an SD-JWT VC with a key binding jwt attached."
					},
					"nonce": {
						"type": "string"
					}
				},
				"required": [
					"nonce"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AttributeMap": {
				"properties": {},
				"type": "object",
				"additionalProperties": {}
			},
			"ProofResponseCred": {
				"properties": {
					"attributes": {
						"$ref": "#/components/schemas/AttributeMap"
					},
					"predicates": {
						"items": {},
						"type": "array"
					}
				},
				"required": [
					"attributes",
					"predicates"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofResponseCredDefs": {
				"description": "Populate the attributes and predicates for this credential.\n `{ attributes: {}, predicates: [] }`",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"items": {
						"$ref": "#/components/schemas/ProofResponseCred"
					},
					"type": "array"
				}
			},
			"ProofResponse": {
				"description": "Proof Response - Optional",
				"properties": {
					"cred_defs": {
						"$ref": "#/components/schemas/ProofResponseCredDefs"
					},
					"self_attested_attributes": {
						"$ref": "#/components/schemas/AttributeMap"
					}
				},
				"required": [
					"cred_defs",
					"self_attested_attributes"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofViewAttribute": {
				"description": "Attribute Name, value and Credential definiton id.",
				"properties": {
					"cred_def_id": {
						"type": "string",
						"example": "jsonld:Citizen-didweb-1721368154288:0.0.4:deee-1-2-799:ed25519"
					},
					"name": {
						"type": "string",
						"example": "NameOfValue"
					},
					"value": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"type": "number",
								"format": "double"
							}
						],
						"example": "ABCD01234"
					}
				},
				"required": [
					"cred_def_id",
					"name",
					"value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofViewPredicate": {
				"description": "Predicate value and Credential definiton id.",
				"properties": {
					"cred_def_id": {
						"type": "string",
						"example": "jsonld:Citizen-didweb-1721368154288:0.0.4:deee-1-2-799:ed25519"
					},
					"predicate": {
						"type": "string",
						"example": "average GE 10"
					}
				},
				"required": [
					"cred_def_id",
					"predicate"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofView": {
				"description": "A display of the attributes and predicates associated with a proof.",
				"properties": {
					"attributes": {
						"items": {
							"$ref": "#/components/schemas/ProofViewAttribute"
						},
						"type": "array"
					},
					"predicates": {
						"items": {
							"$ref": "#/components/schemas/ProofViewPredicate"
						},
						"type": "array"
					}
				},
				"required": [
					"attributes",
					"predicates"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ValidityInfo": {
				"properties": {
					"expectedUpdate": {
						"type": "string",
						"format": "date-time"
					},
					"validUntil": {
						"type": "string",
						"format": "date-time"
					},
					"validFrom": {
						"type": "string",
						"format": "date-time"
					},
					"signed": {
						"type": "string",
						"format": "date-time"
					}
				},
				"required": [
					"validUntil",
					"validFrom",
					"signed"
				],
				"type": "object"
			},
			"JWK": {
				"description": "JSON Web Key ({@link https://www.rfc-editor.org/rfc/rfc7517 JWK}). \"RSA\", \"EC\", \"OKP\", and \"oct\"\nkey types are supported.",
				"properties": {
					"kty": {
						"type": "string",
						"description": "JWK \"kty\" (Key Type) Parameter"
					},
					"alg": {
						"type": "string",
						"description": "JWK \"alg\" (Algorithm) Parameter"
					},
					"key_ops": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "JWK \"key_ops\" (Key Operations) Parameter"
					},
					"ext": {
						"type": "boolean",
						"description": "JWK \"ext\" (Extractable) Parameter"
					},
					"use": {
						"type": "string",
						"description": "JWK \"use\" (Public Key Use) Parameter"
					},
					"x5c": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "JWK \"x5c\" (X.509 Certificate Chain) Parameter"
					},
					"x5t": {
						"type": "string",
						"description": "JWK \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Parameter"
					},
					"x5t#S256": {
						"type": "string",
						"description": "JWK \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Parameter"
					},
					"x5u": {
						"type": "string",
						"description": "JWK \"x5u\" (X.509 URL) Parameter"
					},
					"kid": {
						"type": "string",
						"description": "JWK \"kid\" (Key ID) Parameter"
					},
					"crv": {
						"type": "string",
						"description": "- EC JWK \"crv\" (Curve) Parameter\n- OKP JWK \"crv\" (The Subtype of Key Pair) Parameter"
					},
					"d": {
						"type": "string",
						"description": "- Private RSA JWK \"d\" (Private Exponent) Parameter\n- Private EC JWK \"d\" (ECC Private Key) Parameter\n- Private OKP JWK \"d\" (The Private Key) Parameter"
					},
					"dp": {
						"type": "string",
						"description": "Private RSA JWK \"dp\" (First Factor CRT Exponent) Parameter"
					},
					"dq": {
						"type": "string",
						"description": "Private RSA JWK \"dq\" (Second Factor CRT Exponent) Parameter"
					},
					"e": {
						"type": "string",
						"description": "RSA JWK \"e\" (Exponent) Parameter"
					},
					"k": {
						"type": "string",
						"description": "Oct JWK \"k\" (Key Value) Parameter"
					},
					"n": {
						"type": "string",
						"description": "RSA JWK \"n\" (Modulus) Parameter"
					},
					"p": {
						"type": "string",
						"description": "Private RSA JWK \"p\" (First Prime Factor) Parameter"
					},
					"q": {
						"type": "string",
						"description": "Private RSA JWK \"q\" (Second Prime Factor) Parameter"
					},
					"qi": {
						"type": "string",
						"description": "Private RSA JWK \"qi\" (First CRT Coefficient) Parameter"
					},
					"x": {
						"type": "string",
						"description": "- EC JWK \"x\" (X Coordinate) Parameter\n- OKP JWK \"x\" (The public key) Parameter"
					},
					"y": {
						"type": "string",
						"description": "EC JWK \"y\" (Y Coordinate) Parameter"
					}
				},
				"required": [
					"kty"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DiagnosticInformation": {
				"properties": {
					"dataIntegrity": {
						"properties": {
							"reasons": {
								"items": {
									"type": "string"
								},
								"type": "array"
							},
							"isValid": {
								"type": "boolean"
							},
							"disclosedAttributes": {
								"type": "string"
							}
						},
						"required": [
							"isValid",
							"disclosedAttributes"
						],
						"type": "object"
					},
					"deviceSignature": {
						"properties": {
							"reasons": {
								"items": {
									"type": "string"
								},
								"type": "array"
							},
							"isValid": {
								"type": "boolean"
							},
							"alg": {
								"type": "string"
							}
						},
						"required": [
							"isValid",
							"alg"
						],
						"type": "object"
					},
					"deviceKey": {
						"properties": {
							"jwk": {
								"$ref": "#/components/schemas/JWK"
							}
						},
						"required": [
							"jwk"
						],
						"type": "object"
					},
					"issuerSignature": {
						"properties": {
							"digests": {
								"properties": {},
								"additionalProperties": {
									"type": "number",
									"format": "double"
								},
								"type": "object"
							},
							"reasons": {
								"items": {
									"type": "string"
								},
								"type": "array"
							},
							"isValid": {
								"type": "boolean"
							},
							"alg": {
								"type": "string"
							}
						},
						"required": [
							"digests",
							"isValid",
							"alg"
						],
						"type": "object"
					},
					"issuerCertificate": {
						"properties": {
							"pem": {
								"type": "string"
							},
							"thumbprint": {
								"type": "string"
							},
							"serialNumber": {
								"type": "string"
							},
							"notAfter": {
								"type": "string",
								"format": "date-time"
							},
							"notBefore": {
								"type": "string",
								"format": "date-time"
							},
							"subjectName": {
								"type": "string"
							}
						},
						"required": [
							"pem",
							"thumbprint",
							"serialNumber",
							"notAfter",
							"notBefore",
							"subjectName"
						],
						"type": "object"
					},
					"deviceAttributes": {
						"items": {
							"properties": {
								"value": {},
								"id": {
									"type": "string"
								},
								"ns": {
									"type": "string"
								}
							},
							"required": [
								"value",
								"id",
								"ns"
							],
							"type": "object"
						},
						"type": "array"
					},
					"attributes": {
						"items": {
							"properties": {
								"matchCertificate": {
									"type": "boolean"
								},
								"isValid": {
									"type": "boolean"
								},
								"value": {},
								"id": {
									"type": "string"
								},
								"ns": {
									"type": "string"
								}
							},
							"required": [
								"isValid",
								"value",
								"id",
								"ns"
							],
							"type": "object"
						},
						"type": "array"
					},
					"validityInfo": {
						"$ref": "#/components/schemas/ValidityInfo"
					},
					"general": {
						"properties": {
							"documents": {
								"type": "number",
								"format": "double"
							},
							"status": {
								"type": "number",
								"format": "double"
							},
							"version": {
								"type": "string"
							},
							"type": {
								"type": "string"
							}
						},
						"required": [
							"documents",
							"status",
							"version",
							"type"
						],
						"type": "object"
					}
				},
				"required": [
					"dataIntegrity",
					"deviceSignature",
					"deviceKey",
					"issuerSignature",
					"deviceAttributes",
					"attributes",
					"validityInfo",
					"general"
				],
				"type": "object"
			},
			"GenericMapWithId": {
				"properties": {
					"id": {
						"type": "string"
					}
				},
				"required": [
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LDProof": {
				"description": "A Linked Data cryptographic proof that can be used to detect tampering and verify the authorship of a credential or presentation.\nSee https://w3c-ccg.github.io/ld-proofs/#linked-data-proof-overview",
				"properties": {
					"type": {
						"type": "string",
						"enum": [
							"Ed25519VerificationKey2020",
							"BbsBlsSignature2020",
							"DataIntegrityProof"
						],
						"description": "The cryptographic signature suite that was used to generate the signature."
					},
					"proofPurpose": {
						"type": "string",
						"description": "Expresses the purpose for the proof and ensures this information is protected by the signature."
					},
					"verificationMethod": {
						"type": "string",
						"description": "Specifies, for example, the public key that can be used to verify the digital signature."
					},
					"created": {
						"type": "string",
						"description": "Establishes a date and time before which the credential should not be considered verified."
					},
					"proofValue": {
						"type": "string",
						"description": "The digital signature value."
					},
					"domain": {
						"type": "string",
						"description": "Conveys one or more security domains in which the proof is meant to be used"
					},
					"cryptosuite": {
						"type": "string",
						"description": "Specifies the cryptosuite to use. MUST be present if the value of 'type' is 'DataIntegrityProof'"
					}
				},
				"required": [
					"type",
					"proofPurpose",
					"verificationMethod",
					"created",
					"proofValue"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JWTProof": {
				"description": "A JWT cryptographic proof that can be used to detect tampering and verify the authorship of a credential or presentation.\nSee https://w3c-ccg.github.io/lds-jws2020/#json-web-signature-2020",
				"properties": {
					"type": {
						"type": "string",
						"enum": [
							"JsonWebSignature2020"
						],
						"nullable": false,
						"description": "The cryptographic signature suite that was used to generate the signature."
					},
					"proofPurpose": {
						"type": "string",
						"description": "Expresses the purpose for the proof and ensures this information is protected by the signature."
					},
					"verificationMethod": {
						"type": "string",
						"description": "Specifies, for example, the public key that can be used to verify the digital signature."
					},
					"created": {
						"type": "string",
						"description": "Establishes a date and time before which the credential should not be considered verified."
					},
					"jws": {
						"type": "string",
						"description": "A base64url-encoded value describing the JWS."
					}
				},
				"required": [
					"type",
					"proofPurpose",
					"verificationMethod",
					"created",
					"jws"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDCredential": {
				"properties": {
					"@context": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"id": {
						"type": "string"
					},
					"type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Maps to (through interpretation of the `context` property), one or more URIs.\nIf more than one URI is provided, the URIs is interpreted as an unordered set."
					},
					"credentialSubject": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/GenericMapWithId"
							},
							{
								"items": {
									"$ref": "#/components/schemas/GenericMapWithId"
								},
								"type": "array"
							}
						],
						"description": "A verifiable credential contains claims about one or more subjects.\nThe `credentialSubject` property is an expression of claims about one or more subjects."
					},
					"issuer": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"$ref": "#/components/schemas/GenericMapWithId"
							}
						],
						"description": "The issuer of this credential. A role an entity can perform by asserting claims about one or more subjects,\ncreating a verifiable credential from these claims, and transmitting the verifiable credential to a holder."
					},
					"issuanceDate": {
						"type": "string",
						"description": "The date and time when a credential becomes valid."
					},
					"expirationDate": {
						"type": "string",
						"description": "The date and time when a credential becomes invalid."
					},
					"proof": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/LDProof"
							},
							{
								"$ref": "#/components/schemas/JWTProof"
							}
						],
						"description": "One or more cryptographic proofs that can be used to detect tampering and verify the authorship of a credential or presentation."
					}
				},
				"required": [
					"@context",
					"id",
					"type",
					"credentialSubject",
					"issuer",
					"issuanceDate",
					"proof"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JSONLDProofPresentation": {
				"properties": {
					"verifiableCredential": {
						"items": {
							"$ref": "#/components/schemas/JSONLDCredential"
						},
						"type": "array"
					}
				},
				"required": [
					"verifiableCredential"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SdJwtJsonValue": {
				"anyOf": [
					{
						"type": "string"
					},
					{
						"type": "number",
						"format": "double"
					},
					{
						"type": "boolean"
					},
					{
						"properties": {
							"_sd": {
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						},
						"additionalProperties": {
							"$ref": "#/components/schemas/SdJwtJsonValue"
						},
						"type": "object"
					},
					{
						"items": {
							"anyOf": [
								{
									"$ref": "#/components/schemas/SdJwtJsonValue"
								},
								{
									"properties": {
										"...": {
											"type": "string"
										}
									},
									"required": [
										"..."
									],
									"type": "object"
								}
							]
						},
						"type": "array"
					}
				]
			},
			"JsonValue": {
				"anyOf": [
					{
						"type": "string"
					},
					{
						"type": "number",
						"format": "double"
					},
					{
						"type": "boolean"
					},
					{
						"properties": {},
						"additionalProperties": {
							"$ref": "#/components/schemas/JsonValue"
						},
						"type": "object"
					},
					{
						"items": {
							"$ref": "#/components/schemas/JsonValue"
						},
						"type": "array"
					}
				]
			},
			"SdJwtSignedVerifiableCredentialPayload": {
				"description": "The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`",
				"properties": {
					"vct": {
						"type": "string"
					},
					"iss": {
						"type": "string"
					},
					"iat": {
						"type": "number",
						"format": "double"
					},
					"nbf": {
						"type": "number",
						"format": "double"
					},
					"exp": {
						"type": "number",
						"format": "double"
					},
					"cnf": {
						"properties": {
							"kid": {
								"type": "string"
							},
							"jwk": {}
						},
						"type": "object"
					},
					"status": {
						"properties": {
							"uri": {
								"type": "string"
							},
							"idx": {
								"type": "number",
								"format": "double"
							}
						},
						"required": [
							"uri",
							"idx"
						],
						"type": "object"
					},
					"sub": {
						"type": "string"
					},
					"_sd": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"_sd_alg": {
						"type": "string"
					}
				},
				"required": [
					"vct",
					"iss",
					"iat"
				],
				"type": "object",
				"additionalProperties": {
					"$ref": "#/components/schemas/SdJwtJsonValue"
				}
			},
			"SdJwtDecodedVerifiableCredentialPayload": {
				"description": "Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties\nremoved, and includes the disclosures directly within the payload.",
				"properties": {
					"vct": {
						"type": "string"
					},
					"iss": {
						"type": "string"
					},
					"iat": {
						"type": "number",
						"format": "double"
					},
					"nbf": {
						"type": "number",
						"format": "double"
					},
					"exp": {
						"type": "number",
						"format": "double"
					},
					"cnf": {
						"properties": {
							"kid": {
								"type": "string"
							},
							"jwk": {}
						},
						"type": "object"
					},
					"status": {
						"properties": {
							"uri": {
								"type": "string"
							},
							"idx": {
								"type": "number",
								"format": "double"
							}
						},
						"required": [
							"uri",
							"idx"
						],
						"type": "object"
					},
					"sub": {
						"type": "string"
					}
				},
				"required": [
					"vct",
					"iss",
					"iat"
				],
				"type": "object",
				"additionalProperties": {
					"$ref": "#/components/schemas/JsonValue"
				}
			},
			"SdJwtVcKbJwtHeader": {
				"properties": {
					"typ": {
						"type": "string",
						"enum": [
							"kb+jwt"
						],
						"nullable": false
					},
					"alg": {
						"type": "string"
					}
				},
				"required": [
					"typ",
					"alg"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"SdJwtVcKbJwtPayload": {
				"properties": {
					"iat": {
						"type": "number",
						"format": "double"
					},
					"aud": {
						"type": "string"
					},
					"nonce": {
						"type": "string"
					},
					"sd_hash": {
						"type": "string"
					}
				},
				"required": [
					"iat",
					"aud",
					"nonce",
					"sd_hash"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"Pick_SdJwtDecodedVerifiableCredential.Exclude_keyofSdJwtDecodedVerifiableCredential.disclosures__": {
				"properties": {
					"compactSdJwtVc": {
						"type": "string",
						"description": "The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT,\nwith the disclosures and kb-jwt appended separated by ~"
					},
					"signedPayload": {
						"$ref": "#/components/schemas/SdJwtSignedVerifiableCredentialPayload",
						"description": "The signed payload is the payload of the sd-jwt that is actually signed, and that includes\nthe `_sd` and `...` digests."
					},
					"decodedPayload": {
						"$ref": "#/components/schemas/SdJwtDecodedVerifiableCredentialPayload",
						"description": "The decoded payload is the payload when all `_sd` and `...` digests have been replaced\nby the actual values from the disclosures. This format could also be seen as the 'pretty`\nversion of the SD JWT payload.\n\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example\nfor querying the contents of the SD JWT VC using a PEX presentation definition path."
					},
					"kbJwt": {
						"properties": {
							"compact": {
								"type": "string"
							},
							"payload": {
								"$ref": "#/components/schemas/SdJwtVcKbJwtPayload"
							},
							"header": {
								"$ref": "#/components/schemas/SdJwtVcKbJwtHeader"
							}
						},
						"required": [
							"payload",
							"header"
						],
						"type": "object",
						"description": "Key binding JWT"
					}
				},
				"required": [
					"compactSdJwtVc",
					"signedPayload",
					"decodedPayload"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"Omit_SdJwtDecodedVerifiableCredential.disclosures_": {
				"$ref": "#/components/schemas/Pick_SdJwtDecodedVerifiableCredential.Exclude_keyofSdJwtDecodedVerifiableCredential.disclosures__",
				"description": "Construct a type with the properties of T except for those in type K."
			},
			"OID4VPVerificationData": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/DiagnosticInformation"
					},
					{
						"$ref": "#/components/schemas/Omit_SdJwtDecodedVerifiableCredential.disclosures_"
					}
				],
				"description": "A format specific decoded verifiable credential"
			},
			"OID4VPVerificationInfo": {
				"description": "A container for format distinguishable verifiable credential",
				"properties": {
					"format": {
						"type": "string",
						"description": "The OID4VP standard format name identifier"
					},
					"decoded": {
						"$ref": "#/components/schemas/OID4VPVerificationData",
						"description": "The decoded verifiable credential"
					},
					"encoded": {
						"type": "string",
						"description": "The encoded verifiable credential as set from wallet.  This value\nis always base64 encoded regardless of the format or what was sent from\nthe wallet so consumers should always decode before use."
					}
				},
				"required": [
					"format",
					"decoded",
					"encoded"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeStatus": {
				"description": "Status of a VP exchange session",
				"enum": [
					"created",
					"sent",
					"success",
					"expired",
					"cancel",
					"error",
					"error_wallet_invalid_scope",
					"error_wallet_invalid_request",
					"error_wallet_invalid_client",
					"error_wallet_access_denied",
					"error_wallet_vp_formats_not_supported",
					"error_wallet_invalid_request_uri_method",
					"error_wallet_invalid_transaction_data",
					"error_wallet_wallet_unavailable"
				],
				"type": "string"
			},
			"OID4VPResultInfo": {
				"description": "The result metadata from an OID4VP exchange",
				"properties": {
					"execution_state": {
						"$ref": "#/components/schemas/OID4VPExchangeStatus",
						"description": "The final success or failed state ofthe exchange"
					},
					"message": {
						"type": "string",
						"description": "Optional message describing the final state of the exchange"
					}
				},
				"required": [
					"execution_state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPVerificationResult": {
				"description": "OID4VP specific result metadata from an OID4VP exchange",
				"properties": {
					"result_info": {
						"$ref": "#/components/schemas/OID4VPResultInfo",
						"description": "The overall result metadata including success or failure indicator"
					},
					"presentations": {
						"items": {
							"$ref": "#/components/schemas/OID4VPVerificationInfo"
						},
						"type": "array",
						"description": "THe actual presented data in the case of successful OID4VP\nexchange."
					}
				},
				"required": [
					"result_info"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TimeStamps": {
				"description": "TimeStamp of Each Interaction.",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"anyOf": [
						{
							"type": "number",
							"format": "double"
						},
						{
							"$ref": "#/components/schemas/TimeStamps"
						}
					]
				},
				"example": "1639172876"
			},
			"AriesThread": {
				"properties": {
					"thid": {
						"type": "string"
					},
					"pthid": {
						"type": "string"
					},
					"sender_order": {
						"type": "number",
						"format": "double"
					},
					"received_orders": {
						"properties": {},
						"additionalProperties": {
							"type": "number",
							"format": "double"
						},
						"type": "object"
					}
				},
				"required": [
					"thid",
					"sender_order",
					"received_orders"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesTiming": {
				"properties": {
					"in_time": {
						"type": "string"
					},
					"out_time": {
						"type": "string"
					},
					"stale_time": {
						"type": "string"
					},
					"expires_time": {
						"type": "string"
					},
					"delay_milli": {
						"type": "number",
						"format": "double"
					},
					"wait_until_time": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"AriesReturnRouteType": {
				"enum": [
					"all",
					"thread",
					"none"
				],
				"type": "string"
			},
			"AriesTransport": {
				"properties": {
					"return_route": {
						"$ref": "#/components/schemas/AriesReturnRouteType"
					}
				},
				"required": [
					"return_route"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesService": {
				"properties": {
					"recipientKeys": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"routingKeys": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"serviceEndpoint": {
						"type": "string"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"required": [
					"recipientKeys",
					"serviceEndpoint"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesMessageContext": {
				"properties": {
					"to_key": {
						"type": "string"
					},
					"to_did": {
						"type": "string"
					},
					"from_key": {
						"type": "string"
					},
					"from_did": {
						"type": "string"
					}
				},
				"required": [
					"to_key"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesMessageSignature": {
				"properties": {
					"@type": {
						"type": "string"
					},
					"signer": {
						"type": "string"
					},
					"sig_data": {
						"type": "string"
					},
					"signature": {
						"type": "string"
					}
				},
				"required": [
					"@type",
					"signer",
					"sig_data",
					"signature"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesMessage": {
				"properties": {
					"@type": {
						"type": "string"
					},
					"@id": {
						"type": "string"
					},
					"~thread": {
						"$ref": "#/components/schemas/AriesThread"
					},
					"~timing": {
						"$ref": "#/components/schemas/AriesTiming"
					},
					"~transport": {
						"$ref": "#/components/schemas/AriesTransport"
					},
					"~service": {
						"$ref": "#/components/schemas/AriesService"
					},
					"context": {
						"$ref": "#/components/schemas/AriesMessageContext"
					},
					"~signature": {
						"$ref": "#/components/schemas/AriesMessageSignature"
					}
				},
				"required": [
					"@type",
					"@id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesAttachment": {
				"properties": {
					"@id": {
						"type": "string"
					},
					"mime-type": {
						"type": "string",
						"example": "application/json"
					},
					"data": {
						"properties": {
							"value": {
								"type": "string"
							},
							"json": {
								"$ref": "#/components/schemas/AriesMessage"
							},
							"base64": {
								"type": "string"
							}
						},
						"type": "object"
					}
				},
				"required": [
					"@id",
					"data"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InvitationRole": {
				"description": "Invitation Role of `inviter` (agent creating invitation) or `invitee` (agent recieving invitation).",
				"enum": [
					"inviter",
					"invitee"
				],
				"type": "string"
			},
			"ToInvitation": {
				"description": "Invitation Information",
				"properties": {
					"url": {
						"type": "string",
						"description": "Invitation url representing the invitation.",
						"example": "http://example.com/ssi?c_i=eyJAdHlwZSI6ImRpZDpzb3Y6QnpDYkNTRkNHg2cUFmQ05ycVFxRUIzblM3WmZ1N0siXX0="
					},
					"accept_invitation_manually": {
						"type": "boolean",
						"description": "Whether this invitation requires invitee to manually accept the invitation.",
						"example": true
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"ToConnection": {
				"description": "The agent being contacted.\nSpecify either `name`, `id`, `url`, `did`, `verkey` or `invitation`",
				"properties": {
					"name": {
						"type": "string",
						"description": "Agent's Name.",
						"example": "user1"
					},
					"id": {
						"type": "string",
						"description": "Identifier from the pre-existing connection.",
						"example": "32ac59b4-b037-42d5-9497-4924b2746601"
					},
					"url": {
						"type": "string",
						"description": "Agent-to-Agent URL from the pre-existing connection.",
						"example": "https://${service_url}/diagency/a2a/v1/messages/9da9d2dc-9148-427a-9a07-3ed0573...:"
					},
					"did": {
						"type": "string",
						"description": "Agent's pairwise did from the pre-existing connection.",
						"example": "CRG4orwzg21CmvhErsyyjk"
					},
					"verkey": {
						"type": "string",
						"description": "Agent's pairwise verkey from the pre-existing connection."
					},
					"invitation": {
						"$ref": "#/components/schemas/ToInvitation"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"ProofRequestArgs": {
				"description": "For Indy creds:\nDescribes data that could be used to fill out a requested attribute in a proof request.\nIt's data describes information from a single credential in the agent's wallet.\nFor JSON-LD, BBS, MDOC, SD-JWT creds:\nDescribes a DIF Presentation Request object which contains details\nabout what is being requested.",
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the proof request.",
						"example": "proof_of_employment"
					},
					"version": {
						"type": "string",
						"description": "The version of the proof.",
						"example": "1.0"
					},
					"requested_attributes": {
						"$ref": "#/components/schemas/RequestedAttributes",
						"description": "Indy specific - All requested attributes elements must contain either a name field\n(whose value is a string) or a names field (whose value is an array of strings).\nIf the names field is used with a restrictions field, the value of all attribute\nnames MUST come from a single credential."
					},
					"requested_predicates": {
						"$ref": "#/components/schemas/RequestedPredicates",
						"description": "Indy specific - Proof pertaining to an attribute without actually knowing the value of the attribute."
					},
					"cred_filter": {
						"items": {
							"$ref": "#/components/schemas/CredFilter"
						},
						"type": "array",
						"description": "Match credentials with filter."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "General properties used to sort or decorate the object."
					},
					"jsonld": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in JSON-LD credential format."
					},
					"bbs": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in BBS signature scheme."
					},
					"mso_mdoc": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in MDOC signature scheme."
					},
					"sd_jwt": {
						"$ref": "#/components/schemas/DifPresentationRequest",
						"description": "Verifier proof presentation definition in SD-JWT signature scheme."
					},
					"requested_sdjwt_kb": {
						"type": "boolean",
						"description": "SD-JWT specific - Whether or not the verifier should expect an SD-JWT VC with a key binding jwt attached."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CreateVerificationRequestArgs": {
				"description": "A Verification Invitation",
				"properties": {
					"to": {
						"$ref": "#/components/schemas/ToConnection"
					},
					"comment": {
						"type": "string"
					},
					"state": {
						"$ref": "#/components/schemas/VerificationState"
					},
					"proof_schema_id": {
						"type": "string",
						"description": "id of the Proof Schema that the Proof is based on.",
						"example": "proof-schema1:1.0"
					},
					"proof_request": {
						"$ref": "#/components/schemas/ProofRequestArgs"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"aries_version": {
						"type": "string",
						"description": "Aries Messaging Version - optional",
						"example": "2.0"
					},
					"allow_proof_request_override": {
						"type": "boolean",
						"description": "Verifier can allow a User Proof Request override - Optional.\nSet by the verifier in the outbound_proof_request",
						"example": false
					},
					"store_presentation": {
						"type": "boolean",
						"description": "Verifier can choose whether to store the presentation upon a successful\nverification. Defaults to false.",
						"example": false
					},
					"ignore_trusted_entities": {
						"type": "boolean",
						"description": "Verifier can choose to ignore the trusted entities configuration and as a\nresult, allow the presentation to be verified regardless of whether the\nissuer is trusted or not. Defaults to false (i.e. issuers will need to be\nconfigured as trusted via a trust registry in order for a verification to\npass). This setting only applies to the mso_mdoc credential format."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"AriesNonRevocationTimes": {
				"description": "Non Revocation Times (iso-8601-datetime) for valid credentials.\n` \"non_revoked\": { \"from\": 1600000000, \"to\": 1600000000  }`",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"type": "string"
				}
			},
			"CreateVerificationProposalArgs": {
				"description": "A Verification Proof/Proposal",
				"properties": {
					"to": {
						"$ref": "#/components/schemas/ToConnection"
					},
					"comment": {
						"type": "string"
					},
					"state": {
						"$ref": "#/components/schemas/VerificationState"
					},
					"proof_schema_id": {
						"type": "string",
						"description": "id of the Proof Schema that the Proof is based on.",
						"example": "proof-schema1:1.0"
					},
					"proof_request": {
						"$ref": "#/components/schemas/ProofRequestArgs"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"aries_version": {
						"type": "string",
						"description": "Aries Messaging Version - optional",
						"example": "2.0"
					},
					"non_revocation_times": {
						"$ref": "#/components/schemas/AriesNonRevocationTimes"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CredentialAttributes": {
				"description": "Credential Attributes.\n`\"attrs\": [ \"Name\" , \"Age\", \"EyeColor\"]`",
				"properties": {},
				"type": "object",
				"additionalProperties": {}
			},
			"AriesCredentialPreviewAttribute": {
				"description": "An array of (object) attribute specifications.",
				"properties": {
					"name": {
						"type": "string",
						"description": "Map the Attribute Name as a string"
					},
					"mime-type": {
						"type": "string",
						"description": "If mime-type is missing (null), then value is a string.\nIf mime-type is not null, then value is always a base64url-encoded\nstring that represents a binary BLOB, and mime-type tells how to interpret the BLOB after base64url-decoding.",
						"example": "application/json"
					},
					"value": {}
				},
				"required": [
					"name",
					"value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesCredentialPreview": {
				"description": "Construct a preview of the data for the credential that is to be issued.",
				"properties": {
					"@type": {
						"type": "string",
						"description": "Type is a Credential Preview.\n`\"@type\": \"https://didcomm.org/issue-credential/1.0/credential-preview\"`",
						"example": "https://didcomm.org/issue-credential/1.0/credential-preview"
					},
					"attributes": {
						"items": {
							"$ref": "#/components/schemas/AriesCredentialPreviewAttribute"
						},
						"type": "array"
					}
				},
				"required": [
					"@type",
					"attributes"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OutOfBandCredentialOfferArgs": {
				"description": "Issue A Credential.",
				"properties": {
					"cred_def_id": {
						"type": "string",
						"description": "Credential Definition id"
					},
					"attributes": {
						"$ref": "#/components/schemas/CredentialAttributes"
					},
					"schema_name": {
						"type": "string",
						"description": "Credential Schema Name.",
						"example": "cred1"
					},
					"schema_version": {
						"type": "string",
						"description": "Credential Schema Version.",
						"example": "1.0"
					},
					"comment": {
						"type": "string",
						"description": "Information about the Credential",
						"example": "Driving License"
					},
					"credential_preview": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					}
				},
				"required": [
					"attributes"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OutOfBandCredentialProposalArgs": {
				"description": "Propose A Credential.",
				"properties": {
					"attributes": {
						"$ref": "#/components/schemas/CredentialAttributes",
						"description": "Proposed Indy-only attributes"
					},
					"comment": {
						"type": "string",
						"description": "Information about the Credential",
						"example": "Driving License"
					},
					"credential_proposal": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					},
					"cred_def_id": {
						"type": "string",
						"description": "Credential Definition id",
						"example": "CRG4orwzg21CmvhErsyyjk:2"
					},
					"schema_id": {
						"type": "string",
						"description": "Credential Schema id.",
						"example": "credschema1:1.0"
					},
					"schema_name": {
						"type": "string",
						"description": "Credential Schema Name.",
						"example": "credschema1"
					},
					"schema_version": {
						"type": "string",
						"description": "Credential Schema Version.",
						"example": "1.0"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OutOfBandInvitationAttachArgs": {
				"description": "Out of Band Attachment.\nExactly one of the following fields must be specified:\n`cred_offer` - Issuer issuing a credential.\n`cred_proposal` - Holder issuing a credential.\n`verification_request` - Verifier wants a proof.\n`verification_proposal` -  Holder proofing to a verifier.",
				"properties": {
					"recipient": {
						"$ref": "#/components/schemas/InvitationRole"
					},
					"use_connection": {
						"type": "boolean",
						"description": "Use a connection or connection-less"
					},
					"verification_request": {
						"$ref": "#/components/schemas/CreateVerificationRequestArgs"
					},
					"verification_proposal": {
						"$ref": "#/components/schemas/CreateVerificationProposalArgs"
					},
					"cred_offer": {
						"$ref": "#/components/schemas/OutOfBandCredentialOfferArgs"
					},
					"cred_proposal": {
						"$ref": "#/components/schemas/OutOfBandCredentialProposalArgs"
					}
				},
				"required": [
					"recipient",
					"use_connection"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InvitationInfo": {
				"description": "Invitations represent a way for one agent to exchange its endpoint information with another agent.",
				"properties": {
					"id": {
						"type": "string",
						"description": "A unique identifier for this invitation.",
						"example": "750389a6-41a4-443e-8c01-bb8033e82cc6"
					},
					"url": {
						"type": "string",
						"description": "The invitation URL.",
						"example": "https://${service_url}/diagency/a2a/v1/messages/605000BP6R/invitation?oob=eyJAaWQiOiI3NTAzODlhNi00MWE0LTQ0M2UtOGMwMS1iY"
					},
					"short_url": {
						"type": "string",
						"description": "Shortened version of the invitation URL."
					},
					"manual_accept": {
						"type": "boolean",
						"description": "manual_accept -  If true, the resulting Invitation sent for manual acceptance."
					},
					"max_acceptances": {
						"type": "number",
						"format": "double",
						"description": "Limit the Invitation acceptances allowed. Default -1 (unlimited).",
						"example": -1
					},
					"cur_acceptances": {
						"type": "number",
						"format": "double",
						"description": "Number of Invitation currently accepted.",
						"example": 1
					},
					"max_connections": {
						"type": "number",
						"format": "double",
						"description": "Maximum number of connections allowed from Invitation. No Value - no limit.",
						"example": -1
					},
					"max_queue_count": {
						"type": "number",
						"format": "double",
						"description": "Max limit of messages queued for an agent. No Value - no limit.",
						"example": -1
					},
					"max_queue_time_ms": {
						"type": "number",
						"format": "double",
						"description": "Max Queue Time of agent message queueing. No Value - no limit.",
						"example": -1
					},
					"connection_lifetime_ms": {
						"type": "number",
						"format": "double",
						"description": "Max time of messages queued for an agent. No Value - no limit.",
						"example": -1
					},
					"timestamps": {
						"$ref": "#/components/schemas/TimeStamps",
						"description": "Timestamps associated with states of the invitation."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "Additional properties associated with the invitation."
					},
					"recipient_key": {
						"type": "string",
						"description": "A key created by the recipient."
					},
					"attachments": {
						"items": {
							"$ref": "#/components/schemas/AriesAttachment"
						},
						"type": "array"
					},
					"attach_args": {
						"$ref": "#/components/schemas/OutOfBandInvitationAttachArgs"
					}
				},
				"required": [
					"id",
					"url",
					"short_url",
					"manual_accept",
					"max_acceptances",
					"cur_acceptances",
					"recipient_key"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ConnectionState": {
				"description": "Represents the state of a connection.",
				"enum": [
					"inbound_invitation",
					"outbound_offer",
					"inbound_offer",
					"did_exchange_response_sent",
					"connected",
					"rejected"
				],
				"type": "string",
				"example": "connected"
			},
			"ConnectionRole": {
				"description": "The role being performed representing the state of a connection.",
				"enum": [
					"inviter",
					"invitee"
				],
				"type": "string",
				"example": "invitee"
			},
			"DidInfo": {
				"description": "DID Info. Represent users, agents, issuers, verifiers, etc.",
				"properties": {
					"did": {
						"type": "string",
						"description": "A unique identifier use in communication. Represent users, agents, issuers, verifiers, etc.",
						"example": "8uqVjeowfXvq7ScrhkBCYJ"
					},
					"verkey": {
						"type": "string",
						"description": "Shared key associated with a DID."
					}
				},
				"required": [
					"did",
					"verkey"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesDidDocPublicKey": {
				"description": "Array of the id, type, controller values and Public Keys.\n`[ {\"id\": \"3\", \"type\": \"RsaVerificationKey2018\",  \"controller\": \"did:example:1234abcd\",\"publicKeyPem\": \"-----BEGIN PUBLIC X…\"},{\"id\": \"4\", \"type\": \"RsaVerificationKey2018\",  \"controller\": \"did:example:1234abcd\",\"publicKeyPem\": \"-----BEGIN PUBLIC 9…\"}]`",
				"properties": {
					"id": {
						"type": "string",
						"example": "1"
					},
					"type": {
						"type": "string",
						"example": "RsaVerificationKey2018"
					},
					"controller": {
						"type": "string",
						"example": "did:example:1234abcd"
					},
					"publicKeyBase58": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"type",
					"controller",
					"publicKeyBase58"
				],
				"type": "object",
				"additionalProperties": false,
				"example": [
					{
						"id": "3",
						"type": "RsaVerificationKey2018",
						"controller": "did:example:1234abcd",
						"publicKeyPem": "-----BEGIN PUBLIC X…"
					},
					{
						"id": "4",
						"type": "RsaVerificationKey2018",
						"controller": "did:example:1234abcd",
						"publicKeyPem": "-----BEGIN PUBLIC 9…"
					}
				]
			},
			"AriesDidDocService": {
				"description": "Aries DidDoc Service Definition.",
				"properties": {
					"id": {
						"type": "string",
						"description": "id - Required by Service Endpoint spec.",
						"example": "did:example:123456789abcdefghi#did-communication"
					},
					"type": {
						"type": "string",
						"description": "type - Required by Service Endpoint Spec.",
						"example": "did-communication"
					},
					"serviceEndpoint": {
						"type": "string",
						"description": "URL based Endpoint required by Service Spec.",
						"example": "https://agent.example.com/"
					},
					"priority": {
						"type": "number",
						"format": "double",
						"description": "This represents the priority of the service endpoint. Default 0",
						"example": 0
					},
					"recipientKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references used to denote the default recipients of an endpoint.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					},
					"routingKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references.\nUsed to denote the individual routing hops in between the sender and recipients.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					}
				},
				"required": [
					"id",
					"type",
					"serviceEndpoint",
					"priority",
					"recipientKeys"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesDidDoc": {
				"description": "Aries DidDoc Data Model.",
				"properties": {
					"@context": {
						"type": "string",
						"description": "Conext of Terms defined in the specification.",
						"example": "https://www.w3.org/ns/did/v1"
					},
					"id": {
						"type": "string",
						"description": "id of the Given DID Doc",
						"example": "did:example:xd45fr567794lrzti67"
					},
					"publicKey": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array"
					},
					"service": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocService"
						},
						"type": "array"
					}
				},
				"required": [
					"@context",
					"id",
					"service"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Endpoint": {
				"description": "Information about an agent involved in an `ConnectionInfo`",
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the agent.",
						"example": "user1"
					},
					"url": {
						"type": "string",
						"description": "The URL needed to connect to the agent.",
						"example": "https://${service_url}/config/v1.0/diagency/agents/605000BP6R"
					},
					"pairwise": {
						"$ref": "#/components/schemas/DidInfo",
						"description": "Identifying information dedicated to this specific connection."
					},
					"public": {
						"$ref": "#/components/schemas/DidInfo",
						"description": "Identifying information that has been published to the ledger."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "Additional properties associated with the connection."
					},
					"did": {
						"type": "string",
						"description": "The agent's DID"
					},
					"did_doc": {
						"$ref": "#/components/schemas/AriesDidDoc",
						"description": "The agent's DID document"
					},
					"ext": {
						"type": "boolean"
					}
				},
				"required": [
					"name",
					"url",
					"pairwise",
					"ext"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ConnectionInfo": {
				"description": "Represents the state of a connection.",
				"properties": {
					"id": {
						"type": "string",
						"description": "A unique identifier for this connection.",
						"example": "https://didcomm.org/out-of-band/2.0/invitation"
					},
					"invitation": {
						"$ref": "#/components/schemas/InvitationInfo",
						"description": "Invitations represent a way for one agent to exchange its endpoint information with another agent."
					},
					"state": {
						"$ref": "#/components/schemas/ConnectionState",
						"description": "The state of the connection.",
						"example": "connected"
					},
					"role": {
						"$ref": "#/components/schemas/ConnectionRole",
						"description": "This agent's role in the connection.",
						"example": "inviter"
					},
					"local": {
						"$ref": "#/components/schemas/Endpoint",
						"description": "Information about this agent's role in the connection. Only present if this agent has accepted or initiated the connection."
					},
					"remote": {
						"$ref": "#/components/schemas/Endpoint",
						"description": "Information about the other agent's role in this connection. Only present if that agent accepted or initiated the connection."
					},
					"timestamps": {
						"$ref": "#/components/schemas/TimeStamps",
						"description": "Timestamps associated with states of the connection."
					},
					"ext_complete": {
						"type": "boolean"
					},
					"did_exchange": {
						"type": "boolean",
						"description": "Has a DID Exchange occurred.",
						"example": false
					},
					"max_queue_count": {
						"type": "number",
						"format": "double",
						"description": "Max limit of messages queued for agent. No Value - no limit.",
						"example": -1
					},
					"max_queue_time_ms": {
						"type": "number",
						"format": "double",
						"description": "Record of the Max Queue time of an Agent. No Value - no limit.",
						"example": -1
					}
				},
				"required": [
					"id",
					"state",
					"role",
					"local",
					"did_exchange"
				],
				"type": "object",
				"additionalProperties": false
			},
			"NameValue": {
				"properties": {
					"name": {
						"type": "string"
					},
					"value": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AttrCredChoice": {
				"properties": {
					"names": {
						"items": {
							"$ref": "#/components/schemas/NameValue"
						},
						"type": "array"
					},
					"schema_id": {
						"type": "string"
					},
					"cred_def_id": {
						"type": "string",
						"example": "jsonld:Citizen-didweb-1721368154288:0.0.4:deee-1-2-799:ed25519"
					}
				},
				"required": [
					"names",
					"schema_id",
					"cred_def_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AttrCredChoices": {
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"$ref": "#/components/schemas/AttrCredChoice"
				}
			},
			"AttrChoices": {
				"description": "A list of requested attributes and their selected credential attributes (can have multiple/duplicate credentials(re-issued)).\n`\"attributes\": { \"a1_referent\" :  { \"<from-cred1>\" :\n{ \"id\": \"license\", \"name\": \"State Driving License\", \"value\":\"L123456\",\n\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\", schema_id:\"EDEuxdBQ_3zb6GzWKCNcyW4:2:Transcript:1.0\"},\n{ \"<from-cred2>\" : { \"id\": \"license\", \"name\": \"State Driving License\", \"value\":\"L123456\",\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\", schema_id:\"EDEuxdBQ_3zb6GzWKCNcyW4:2:Transcript:1.0\"}`",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"$ref": "#/components/schemas/AttrCredChoices"
				}
			},
			"PredCredChoices": {
				"description": "A list of requested predicates and their selected predicates.\n`\"predicates\": { \"p1_referent\" :  { \"<from-cred1>\" : \"predicate\":\"average > 10\",\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\", schema_id:\"EDEuxdBQ_3zb6GzWKCNcyW4:2:Transcript:1.0\"`",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"properties": {
						"cred_def_id": {
							"type": "string"
						},
						"schema_id": {
							"type": "string"
						},
						"predicate": {
							"type": "string"
						}
					},
					"required": [
						"cred_def_id",
						"schema_id",
						"predicate"
					],
					"type": "object"
				}
			},
			"PredChoices": {
				"description": "The list of options for generating a proof from the credentials in an agent's wallet.\nOnly appears in the `outbound_proof_request` phase.",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"$ref": "#/components/schemas/PredCredChoices"
				}
			},
			"Descriptor": {
				"properties": {
					"id": {
						"type": "string"
					},
					"path": {
						"type": "string"
					},
					"path_nested": {
						"$ref": "#/components/schemas/Descriptor"
					},
					"format": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"path",
					"format"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SubmissionRequirementMatch": {
				"properties": {
					"name": {
						"type": "string"
					},
					"rule": {
						"$ref": "#/components/schemas/Rules"
					},
					"min": {
						"type": "number",
						"format": "double"
					},
					"count": {
						"type": "number",
						"format": "double"
					},
					"max": {
						"type": "number",
						"format": "double"
					},
					"vc_path": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"from": {
						"type": "string"
					},
					"from_nested": {
						"items": {
							"$ref": "#/components/schemas/SubmissionRequirementMatch"
						},
						"type": "array"
					}
				},
				"required": [
					"rule",
					"vc_path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DifChoice": {
				"properties": {
					"verifiableCredential": {
						"items": {},
						"type": "array"
					},
					"descriptor_map": {
						"items": {
							"$ref": "#/components/schemas/Descriptor"
						},
						"type": "array"
					},
					"matches": {
						"items": {
							"$ref": "#/components/schemas/SubmissionRequirementMatch"
						},
						"type": "array"
					}
				},
				"required": [
					"verifiableCredential"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofChoices": {
				"description": "The list of options for generating a proof from the credentials (which satisfy parts of a proof request) in an agent's wallet.\nOnly appears in the `outbound_proof_request` phase.",
				"properties": {
					"attributes": {
						"$ref": "#/components/schemas/AttrChoices",
						"description": "A list of requested attributes and their selected credential attributes."
					},
					"predicates": {
						"$ref": "#/components/schemas/PredChoices",
						"description": "A list of requested predicates and their selected and their selected predicates."
					},
					"dif": {
						"$ref": "#/components/schemas/DifChoice",
						"description": "A list of credentials from a prover's wallet that are capable of satisfying a proof request during a DIF Presentation Exchange.\nThe prover may take this object and modify its descriptor_map to manually choose which credentials from verifiableCredential they want to present when generating the proof."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Pick_OwnableRecord.Exclude_keyofOwnableRecord.tenant_id__": {
				"properties": {
					"owner_id": {
						"type": "string"
					}
				},
				"required": [
					"owner_id"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"VerificationInfo": {
				"description": "\nRepresents all verification and proof requests between a prover and a verifier.  If created by the prover, the\nverifications initial state should be `outbound_verification_request`.  If created by a verifier, the initial state\nshould be `outbound_proof_request` by the verifier.",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "The ID of the verification.",
						"example": "request-605000BP6R"
					},
					"role": {
						"$ref": "#/components/schemas/VerificationRole",
						"description": "The role being performed representing the state of the verification."
					},
					"state": {
						"$ref": "#/components/schemas/VerificationState",
						"description": "State of the verification or proof request.\nSet by the verifier in an outbound proof request."
					},
					"created_at": {
						"type": "string",
						"format": "date-time",
						"description": "The timestamp when the record was first created. If a record was created\nin v25.06, this value will be set to the time the record was first\nprocessed in a v25.09 or higher software version."
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "The timestamp when the record was last modified. If a record was created\nin v25.06 and hasn't been modified since, this value will be set to the\ntime the record was first processed in a v25.09 or higher software\nversion."
					},
					"allow_proof_request_override": {
						"type": "boolean",
						"description": "Verifier can allow a User Proof Request override - Optional.\nSet by the verifier in the outbound_proof_request",
						"example": false
					},
					"verifier_did": {
						"type": "string",
						"description": "Verifer DID.",
						"example": "did:example:7D6i7RzVyKQZjcqy3tzQEU"
					},
					"proof_schema_id": {
						"type": "string",
						"description": "Unique proof schema identifier",
						"example": "request-didweb-1721341604922-verifier:0.0.1"
					},
					"proof_request": {
						"$ref": "#/components/schemas/ProofRequest",
						"description": "For Indy creds:\nDescribes data that could be used to fill out a requested attribute in a proof request.\nIt's data describes information from a single credential in the agent's wallet.\nFor JSON-LD, BBS, MDOC, and SD-JWT creds:\nDescribes a DIF Presentation Request object which contains details\nabout what is being requested."
					},
					"proof_response": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/ProofResponse"
							},
							{
								"additionalProperties": false,
								"type": "object"
							},
							{
								"type": "string"
							}
						],
						"description": "The format-specific response of the generated proof.\nFor Indy AnonCreds, this is the proof response.\nFor JSON-LD, this is the full DIF presentation.\nFor mdoc, this is the CBOR-encoded string containing the device response.\nFor SD-JWT, this is a string containing the encoded SD-JWT response."
					},
					"info": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/ProofView"
							},
							{
								"$ref": "#/components/schemas/DiagnosticInformation"
							},
							{
								"$ref": "#/components/schemas/JSONLDProofPresentation"
							},
							{
								"$ref": "#/components/schemas/Omit_SdJwtDecodedVerifiableCredential.disclosures_"
							}
						],
						"description": "Information about what is being disclosed.\nFor Indy AnonCreds, this includes details of the attributes and predicates associated with the generated proof.\nFor JSON-LD credentials, this includes the verifiable credential(s) in the presentation.\nFor mdoc credentials, this includes details of the disclosed attributes.\nFor SD-JWT credentials, this includes details of the disclosed attributes. NOTE: to avoid a tsoa error, we have to omit the disclosures\ntype information as otherwise tsoa fails to compile a nested TupleType type."
					},
					"proof_display": {
						"type": "string",
						"description": "Indy specific - Display of the generated proof."
					},
					"oid4vp": {
						"items": {
							"$ref": "#/components/schemas/OID4VPVerificationInfo"
						},
						"type": "array",
						"description": "DEPRECATED.  Use oid4vp_result.\nIf the verification was performed and exchanged via OID4VP\nthen this property will record the disclosed credentials.  It\nwill be undefined otherwise."
					},
					"oid4vp_result": {
						"$ref": "#/components/schemas/OID4VPVerificationResult",
						"description": "If the verification was performed and exchanged via OID4VP\nthen this property will record the disclosed credentials.  It\nwill be undefined otherwise."
					},
					"connection": {
						"$ref": "#/components/schemas/ConnectionInfo",
						"description": "Connections represent a channel for communication between two agents."
					},
					"aries_message": {
						"description": "Aries Messaging part of any Invitations, Requests, Proposals, Credentials."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "Additional properties associated with the verification."
					},
					"choices": {
						"$ref": "#/components/schemas/ProofChoices",
						"description": "The list of options for generating a proof from the credentials (which satisfy parts of a proof request) in an agent's wallet.\nOnly appears in the `outbound_proof_request` phase."
					},
					"timestamps": {
						"$ref": "#/components/schemas/TimeStamps",
						"description": "Timestamps associated with states of the credential."
					}
				},
				"required": [
					"owner_id",
					"id",
					"role",
					"state",
					"created_at",
					"modified_at",
					"verifier_did",
					"connection"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IGetAllVerificationsResponse": {
				"description": "Represents all verification and proof requests.",
				"properties": {
					"count": {
						"type": "number",
						"format": "double",
						"description": "Number of Verifications Retrieved.",
						"example": 1
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/VerificationInfo"
						},
						"type": "array",
						"description": "Each Verification item."
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IviApiErrorResponse": {
				"description": "This is the format for all API error messages in a Verify SaaS environment.",
				"properties": {
					"messageId": {
						"type": "string"
					},
					"messageDescription": {
						"type": "string"
					}
				},
				"required": [
					"messageId",
					"messageDescription"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateVerificationArgs": {
				"description": "\nRepresents all verification and proof requests between a prover and a verifier.  If created by the prover, the\nverifications initial state should be \"outbound_verification_request\".  If created by a verifier, the initial state\nshould be \"outbound_proof_request\" by the verifier.",
				"properties": {
					"to": {
						"$ref": "#/components/schemas/ToConnection"
					},
					"comment": {
						"type": "string"
					},
					"state": {
						"$ref": "#/components/schemas/VerificationState"
					},
					"proof_schema_id": {
						"type": "string",
						"description": "id of the Proof Schema that the Proof is based on.",
						"example": "proof-schema1:1.0"
					},
					"proof_request": {
						"$ref": "#/components/schemas/ProofRequestArgs"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"aries_version": {
						"type": "string",
						"description": "Aries Messaging Version - optional",
						"example": "2.0"
					},
					"allow_proof_request_override": {
						"type": "boolean",
						"description": "Verifier can allow a User Proof Request override - Optional.\nSet by the verifier in the outbound_proof_request",
						"example": false
					},
					"non_revocation_times": {
						"$ref": "#/components/schemas/AriesNonRevocationTimes"
					},
					"store_presentation": {
						"type": "boolean",
						"description": "Verifier can choose whether to store the presentation upon a successful\nverification. Defaults to false.",
						"example": false
					},
					"ignore_trusted_entities": {
						"type": "boolean",
						"description": "Verifier can choose to ignore the trusted entities configuration and as a\nresult, allow the presentation to be verified regardless of whether the\nissuer is trusted or not. Defaults to false (i.e. issuers will need to be\nconfigured as trusted via a trust registry in order for a verification to\npass). This setting only applies to the mso_mdoc credential format."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UserCredChoices": {
				"description": "A list of requested attributes and their selected credential attributes.\n\"attributes\":[{ \"id\": \"license\", \"name\": \"State Driving License\", \"value\":\"L123456\",\n\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\",\"referent\": \"0\", \"purpose\":\"Verify licensed identities\"}]\n\nA list of requested predicates and their selected predicates.\n\"predicates\":[{ \"name\": \"Minimum Age\",\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\", \"predicate\": \">=\", \"threshold\": \"18\" }]",
				"properties": {
					"attributes": {
						"properties": {},
						"additionalProperties": {
							"type": "string"
						},
						"type": "object",
						"description": "A list of requested attributes and their selected credential attributes."
					},
					"predicates": {
						"properties": {},
						"additionalProperties": {
							"type": "string"
						},
						"type": "object",
						"description": "A list of requested predicates and their selected predicates."
					},
					"dif": {
						"$ref": "#/components/schemas/DifChoice",
						"description": "A list of credentials selected by the prover to generate a proof with for a DIF Presentation Exchange.\nThis should be formulated by taking the 'choices.dif' from an inbound_proof_request and removing unwanted entries from the 'descriptor_map' (for non sd-jwt creds) or 'matches' (for sd-jwt only)."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"SelfAttestedAttributes": {
				"description": "The self-attested data to add.\nA list of requested attributes and their selected credential attributes.\n\n`\"attributes\":[{ \"id\": \"license\", \"name\": \"State Driving License\", \"value\":\"L123456\",\n\"cred_def_id\": \"BzCbsNYhMrjHiqZDTUASHg:3:CL:1234:tag\",\"referent\": \"0\", \"purpose\":\"Verify licensed identities\"}]`",
				"properties": {},
				"type": "object",
				"additionalProperties": {
					"type": "string"
				}
			},
			"UpdateVerificationArgs": {
				"properties": {
					"state": {
						"$ref": "#/components/schemas/VerificationState"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"choices": {
						"$ref": "#/components/schemas/UserCredChoices"
					},
					"self_attested_attributes": {
						"$ref": "#/components/schemas/SelfAttestedAttributes"
					},
					"comment": {
						"type": "string"
					},
					"proof_schema_id": {
						"type": "string",
						"description": "The proof schema id the verification is based on.",
						"example": "proofschema001:1.0"
					},
					"proof_request": {
						"$ref": "#/components/schemas/ProofRequestArgs"
					},
					"allow_proof_request_override": {
						"type": "boolean",
						"description": "Verifier can allow a User Proof Request override - Optional.\nSet by the verifier in the outbound_proof_request",
						"example": false
					},
					"store_presentation": {
						"type": "boolean",
						"description": "Verifier can choose whether to store the presentation upon a successful\nverification. Defaults to false.",
						"example": false
					},
					"ignore_trusted_entities": {
						"type": "boolean",
						"description": "Verifier can choose to ignore the trusted entities configuration and as a\nresult, allow the presentation to be verified regardless of whether the\nissuer is trusted or not. Defaults to false (i.e. issuers will need to be\nconfigured as trusted via a trust registry in order for a verification to\npass). This setting only applies to the mso_mdoc credential format."
					}
				},
				"required": [
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DidWebService": {
				"properties": {
					"id": {
						"type": "string",
						"description": "id - Required by Service Endpoint spec.",
						"example": "did:example:123456789abcdefghi#did-communication"
					},
					"type": {
						"type": "string",
						"description": "type - Required by Service Endpoint Spec.",
						"example": "did-communication"
					},
					"serviceEndpoint": {
						"type": "string",
						"description": "URL based Endpoint required by Service Spec.",
						"example": "https://agent.example.com/"
					},
					"priority": {
						"type": "number",
						"format": "double",
						"description": "This represents the priority of the service endpoint. Default 0",
						"example": 0
					},
					"recipientKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references used to denote the default recipients of an endpoint.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					},
					"routingKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references.\nUsed to denote the individual routing hops in between the sender and recipients.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					}
				},
				"required": [
					"id",
					"type",
					"serviceEndpoint"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DidWebDoc": {
				"properties": {
					"@context": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"example": [
							"https://www.w3.org/ns/did/v1",
							"https://w3id.org/security/suites/jws-2020/v1",
							"https://w3id.org/security/suites/ed25519-2020/v1"
						]
					},
					"id": {
						"type": "string",
						"description": "The DID id",
						"example": "did:example:123456789abcdefghijk"
					},
					"controller": {
						"type": "string"
					},
					"verificationMethod": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array",
						"description": "One of verificationMethod or publicKey must be present.   Prefer verificationMethod"
					},
					"authentication": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "How DID subject is authenticated."
					},
					"assertionMethod": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "If present, the associated value is a verificationMethod or publicKey must be present.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"keyAgreement": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "KeyAgreement verification relationship is used to specify\nhow an entity can generate encryption material in order to transmit confidential information intended for the DID subject.\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to perform key agreement.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"capabilityInvocation": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Used to specify a verification method that might be used by the DID subject to invoke a cryptographic capability.\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to invoke capabilities.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"capabilityDelegation": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Used to specify a mechanism that might be used by the DID subject to delegate a cryptographic capability to another party\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to perform capability delegation.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"service": {
						"items": {
							"$ref": "#/components/schemas/DidWebService"
						},
						"type": "array"
					},
					"publicKey": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array"
					}
				},
				"required": [
					"@context",
					"id",
					"service"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProofSchemaInfo": {
				"description": "Proof Schema Information",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "The Proof Schema id.",
						"example": "proofschema1:1.0"
					},
					"name": {
						"type": "string",
						"description": "Proof Schema name",
						"example": "proofschema1"
					},
					"version": {
						"type": "string",
						"description": "The Proof Schema version.",
						"example": "1.0"
					},
					"requested_attributes": {
						"$ref": "#/components/schemas/RequestedAttributes"
					},
					"requested_predicates": {
						"$ref": "#/components/schemas/RequestedPredicates"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"cred_filter": {
						"items": {
							"$ref": "#/components/schemas/CredFilter"
						},
						"type": "array"
					},
					"dif": {
						"$ref": "#/components/schemas/DifPresentationRequest"
					}
				},
				"required": [
					"owner_id",
					"id",
					"name",
					"version",
					"requested_attributes",
					"requested_predicates",
					"properties"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IGetAllProofSchemasResponse": {
				"description": "Represents all Proof Schemas and Requests.",
				"properties": {
					"count": {
						"type": "number",
						"format": "double",
						"description": "Number of Proofs Retrieved.",
						"example": 1
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/ProofSchemaInfo"
						},
						"type": "array",
						"description": "Each Proof item."
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateProofSchemaArgs": {
				"description": "Proof Schema",
				"properties": {
					"name": {
						"type": "string",
						"description": "Name and Version must be unique",
						"example": "proofschema1r"
					},
					"version": {
						"type": "string",
						"description": "Name and Version must be unique",
						"example": "1.0"
					},
					"requested_attributes": {
						"$ref": "#/components/schemas/RequestedAttributes"
					},
					"requested_predicates": {
						"$ref": "#/components/schemas/RequestedPredicates"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"cred_filter": {
						"items": {
							"$ref": "#/components/schemas/CredFilter"
						},
						"type": "array"
					}
				},
				"required": [
					"name",
					"version"
				],
				"type": "object",
				"additionalProperties": false
			},
			"MetricInfo": {
				"description": "Metric Count associated with this agent and all of it's children.",
				"properties": {
					"proof_schemas": {
						"type": "number",
						"format": "double"
					},
					"invitations": {
						"type": "number",
						"format": "double"
					},
					"connections": {
						"type": "number",
						"format": "double"
					},
					"credentials": {
						"type": "number",
						"format": "double"
					},
					"verifications": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"proof_schemas",
					"invitations",
					"connections",
					"credentials",
					"verifications"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InvitationList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/InvitationInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InvitationType": {
				"description": "Invitation Type\n`connection` - over DID comm.\n`oob` - Out of Band.",
				"enum": [
					"connection",
					"oob"
				],
				"type": "string"
			},
			"CreateInvitationArgs": {
				"description": "Create an Invitation",
				"properties": {
					"goal_code": {
						"type": "string",
						"description": "Machine-readable code indicating the goal of the invitation.\n`issue-vc` - to issue a credential, `request-proof` - to verify a proof.",
						"example": "issue-vc"
					},
					"goal": {
						"type": "string",
						"description": "Description for the goal/purpose of the invitation.",
						"example": "Issue Identity"
					},
					"label": {
						"type": "string",
						"description": "Out of Band Label (or Agent Name).",
						"example": "Issue Identity Label"
					},
					"attach": {
						"$ref": "#/components/schemas/OutOfBandInvitationAttachArgs"
					},
					"type": {
						"$ref": "#/components/schemas/InvitationType"
					},
					"manual_accept": {
						"type": "boolean",
						"description": "manual_accept -  If true, the resulting Invitation sent for manual acceptance."
					},
					"max_acceptances": {
						"type": "number",
						"format": "double",
						"description": "Limit the Invitation acceptances allowed. Default -1 (unlimited).",
						"example": -1
					},
					"max_connections": {
						"type": "number",
						"format": "double",
						"description": "Max Number of Invitation Connections accepted.",
						"example": 1
					},
					"max_queue_count": {
						"type": "number",
						"format": "double",
						"description": "Max limit of messages queued by agent. No Value - no limit.",
						"example": -1
					},
					"max_queue_time_ms": {
						"type": "number",
						"format": "double",
						"description": "Record of the Max Queue time of an Agent. No Value - no limit.",
						"example": -1
					},
					"invitation_lifetime_ms": {
						"type": "number",
						"format": "double",
						"description": "Milliseconds that the invitatiion may be used before expiry. No Value - no limit.",
						"example": -1
					},
					"connection_lifetime_ms": {
						"type": "number",
						"format": "double",
						"description": "Milliseconds before expiry of any connection created from the invitation. No Value - no limit.",
						"example": -1
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"InteractionRole": {
				"properties": {
					"start_state": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"InteractionAction": {
				"properties": {
					"fcn": {
						"type": "string"
					},
					"args": {
						"properties": {},
						"additionalProperties": {},
						"type": "object"
					}
				},
				"required": [
					"fcn"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InteractionState": {
				"properties": {
					"role": {
						"type": "string"
					},
					"action": {
						"$ref": "#/components/schemas/InteractionAction"
					},
					"next": {
						"type": "string"
					}
				},
				"required": [
					"role"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InteractionDoc": {
				"properties": {
					"format": {
						"type": "number",
						"format": "double"
					},
					"name": {
						"type": "string"
					},
					"version": {
						"type": "string"
					},
					"description": {
						"type": "string"
					},
					"roles": {
						"properties": {},
						"additionalProperties": {
							"$ref": "#/components/schemas/InteractionRole"
						},
						"type": "object"
					},
					"states": {
						"properties": {},
						"additionalProperties": {
							"$ref": "#/components/schemas/InteractionState"
						},
						"type": "object"
					},
					"vars": {
						"properties": {},
						"additionalProperties": {},
						"type": "object"
					}
				},
				"required": [
					"format",
					"name",
					"version",
					"description",
					"roles",
					"states",
					"vars"
				],
				"type": "object",
				"additionalProperties": false
			},
			"InteractionDocInfo": {
				"description": "Provide the id, did, doc.",
				"properties": {
					"id": {
						"type": "string"
					},
					"did": {
						"type": "string"
					},
					"doc": {
						"$ref": "#/components/schemas/InteractionDoc"
					}
				},
				"required": [
					"id",
					"did",
					"doc"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OutOfBandInvitation": {
				"description": "Out of Band Message",
				"properties": {
					"@type": {
						"type": "string",
						"description": "The DIDComm message type.\n`\"https://didcomm.org/out-of-band/%VER/invitation\"`",
						"example": "https://didcomm.org/out-of-band/%VER/invitation"
					},
					"@id": {
						"type": "string",
						"description": "Unique ID of the message.\n`\"<id used for context as parent thread id>\"`"
					},
					"label": {
						"type": "string",
						"description": "Self-attested string that the receiver may want to display to the user.\n\n`\"Corporate Entity\"`",
						"example": "Corporate Entity"
					},
					"goal_code": {
						"type": "string",
						"description": "Self-attested code that the receiver may want to display to the user.\n`\"issue-vc\"`",
						"example": "issue-vc"
					},
					"goal": {
						"type": "string",
						"description": "Self-attested information about the message that the receiver may want to display to the user.\n`\"Issue some credential\"`",
						"example": "Issue some credential"
					},
					"accept": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Array of media (aka mime) types in the order of preference of the sender that the receiver can use in responding to the message.\n\n`\"accept\":[\"didcomm/aip2;env=rfc587\", \"didcomm/aip2;env=rfc19\"]`",
						"example": [
							"didcomm/aip2;env=rfc587",
							"didcomm/aip2;env=rfc19"
						]
					},
					"handshake_protocols": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Array of protocols in the order of preference of the sender that the receiver can use in responding\nto the message in order to create or reuse a connection with the sender.\n\nOne or both of `handshake_protocols` and `requests~attach` MUST be included in the message.\n\n`\"handshake_protocols\":[\"https://didcomm.org/didexchange/1.0\", \"https://didcomm.org/connections/1.0\"]`",
						"example": [
							"https://didcomm.org/didexchange/1.0",
							"https://didcomm.org/connections/1.0"
						]
					},
					"requests~attach": {
						"items": {
							"$ref": "#/components/schemas/AriesAttachment"
						},
						"type": "array",
						"description": "Attachment decorator containing an array of request messages in order of\npreference that the receiver can using in responding to the message.\n\nOne or both of `handshake_protocols` and `requests~attach` MUST be included in the message."
					},
					"services": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"$ref": "#/components/schemas/AriesDidDocService"
								}
							]
						},
						"type": "array",
						"description": "Array of union types that the receiver uses when responding to the message.\nEach item is either a DIDComm service object or a DID.\n`\"services\": [\"did:sov:LjgpST2rjsoxYegQDRm7EL\"]`",
						"example": [
							"did:sov:LjgpST2rjsoxYegQDRm7EL"
						]
					},
					"ext": {
						"type": "boolean"
					},
					"url": {
						"type": "string",
						"example": "http://example.com/ssi?c_i=eyJAdHlwZSI6ImRpZDpzb3Y6QnpDYnNOWWhUFmQ05ycVFxRUIzblM3WmZ1N0siXX0="
					},
					"idoc": {
						"$ref": "#/components/schemas/InteractionDocInfo"
					},
					"recipient_key": {
						"type": "string",
						"description": "The Recipient Public Key"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"required": [
					"@type",
					"@id",
					"services"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProcessInvitationOutput": {
				"description": "Out of Bound Message Invitation.",
				"properties": {
					"invitation": {
						"$ref": "#/components/schemas/OutOfBandInvitation"
					},
					"connection": {
						"$ref": "#/components/schemas/ConnectionInfo"
					}
				},
				"required": [
					"invitation"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProcessInvitationInput": {
				"description": "Process An Invitation.",
				"properties": {
					"url": {
						"type": "string",
						"description": "Url of the Invitation for Processing.",
						"example": "https://${service_url}/diagency/a2a/v1/messages/605000BP6R/invitation?id=750389a6-41a4-443e-8c01-bb8033e82cc6"
					},
					"role": {
						"type": "string",
						"description": "Role of the Invitation for Processing.\n\n`sender` or `reciever`",
						"example": "sender"
					},
					"inspect": {
						"type": "boolean",
						"description": "Inspect option to only parse the url and\nreturn Out of Band Message."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"required": [
					"url"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DidMethod": {
				"description": "DID Methods\n`DEFAULT = \"\", INDY = \"did:indy\", WEB = \"did:web\"`",
				"enum": [
					"",
					"did:indy",
					"did:web"
				],
				"type": "string",
				"example": "did:web"
			},
			"AriesSettings": {
				"description": "Aries protocol layer",
				"properties": {
					"message_prefix": {
						"type": "string",
						"example": "https://didcomm.org/"
					},
					"did_exchange": {
						"type": "boolean",
						"description": "DID exchange Occurred",
						"example": true
					},
					"issue_credential_version": {
						"type": "string",
						"example": "2.0"
					},
					"present_proof_version": {
						"type": "string",
						"example": "2.0"
					}
				},
				"required": [
					"message_prefix",
					"did_exchange",
					"issue_credential_version",
					"present_proof_version"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentType": {
				"description": "Agent Type\n`ISSUER = \"issuer\", VERIFIER = \"verifier\", HOLDER = \"holder\"`",
				"enum": [
					"issuer",
					"verifier",
					"holder",
					"status_registry"
				],
				"type": "string",
				"example": "issuer"
			},
			"AccountActionType": {
				"description": "Account Actions\n`EXPIRATION_WARNING = \"expiration_warning\", EXPIRATION = \"expiration\"\n, PASSWORD_EXPIRATION_NOTIFICATION = \"passwordExpiryNotification\"\n, PASSWORD_EXPIRATION = \"passwordExpired\" `",
				"enum": [
					"expiration_warning",
					"expiration",
					"passwordExpiryNotification",
					"passwordExpired"
				],
				"type": "string",
				"example": "passwordExpired"
			},
			"ScheduledAction": {
				"properties": {
					"type": {
						"$ref": "#/components/schemas/AccountActionType"
					},
					"time": {
						"type": "number",
						"format": "double",
						"example": "1639172876"
					},
					"executed": {
						"type": "boolean"
					}
				},
				"required": [
					"type",
					"time"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RootOfTrustAlgorithm": {
				"enum": [
					"ES256",
					"ES384",
					"ES512",
					"Ed25519"
				],
				"type": "string"
			},
			"RootOfTrustSystemGeneratedConfiguration": {
				"properties": {
					"dn": {
						"type": "string",
						"description": "If specified, a custom DN string to be used when generating certificates.\nThe custom string must contain at minimum a country specified via \"C\",\nand a common name via \"CN\". If not specified, a system default will be\nused.",
						"example": "C=AU, CN=MyCredentialIssuer"
					},
					"expiry_days": {
						"type": "number",
						"format": "double",
						"description": "If specified, a custom number of days that the certificate will be valid\nfor. If not specified, a system default."
					},
					"algorithm": {
						"$ref": "#/components/schemas/RootOfTrustAlgorithm",
						"description": "If specified, the algorithm to use for the certificate. If not specified,\na system default will be used."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"RootOfTrustSystemGeneratedConfigurationWrapper": {
				"properties": {
					"system_generated": {
						"$ref": "#/components/schemas/RootOfTrustSystemGeneratedConfiguration",
						"description": "If system generated is selected, then the system will create a\nroot certificate authority (CA) associated with this agent's profile."
					}
				},
				"required": [
					"system_generated"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RootOfTrustX5CConfigurationRequest": {
				"properties": {
					"certificate": {
						"type": "string",
						"description": "The certificate to use as the root of trust for this agent's profile."
					},
					"private_key": {
						"type": "string",
						"description": "The private key associated with the certificate. This private key will be\nused for signing derivative key material generated by the system."
					}
				},
				"required": [
					"certificate",
					"private_key"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RootOfTrustX5CConfigurationWrapper": {
				"properties": {
					"x5c": {
						"$ref": "#/components/schemas/RootOfTrustX5CConfigurationRequest",
						"description": "The certificate material used as this agent profile's root of trust."
					}
				},
				"required": [
					"x5c"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RootOfTrustConfiguration": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/RootOfTrustSystemGeneratedConfigurationWrapper"
					},
					{
						"$ref": "#/components/schemas/RootOfTrustX5CConfigurationWrapper"
					}
				]
			},
			"AgentIssuerProfile": {
				"properties": {
					"credential_offer_scheme": {
						"type": "string",
						"description": "The default scheme to use for credential offers. This is used when generating\nQR codes for credential offers. If not specified, \"openid-credential-offer\"\nwill be used as the default.",
						"example": "openid-credential-offer"
					},
					"default_authorization_provider": {
						"type": "string",
						"description": "The default authorization provider name that the issuer wants to trust from\nthe full set configured at the tenancy level via the Auth Introspection Provider API.\nThis is used as the default for credential offers unless overridden at the offer level.\nThe value must match the 'name' field of a configured auth introspection provider.",
						"example": "oauth-provider-name"
					},
					"default_client_id": {
						"type": "string",
						"description": "The default client ID for the default authorization provider that the issuer\nwants to trust. This is used as the default for credential offers unless\noverridden at the offer level.",
						"example": "wallet-client-id"
					},
					"root_of_trust": {
						"$ref": "#/components/schemas/RootOfTrustConfiguration",
						"description": "The root of trust for this agent profile. When creating or updating an\nagent this can either be system-generated or provided via a custom upload\nof both a certificate and a matching private key."
					}
				},
				"required": [
					"root_of_trust"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPResponseType": {
				"description": "Response types for authorization requests",
				"enum": [
					"vp_token",
					"id_token"
				],
				"type": "string"
			},
			"OID4VPFormatMsoMdocAlgValuesEnum": {
				"description": "mso_mdoc signature algorithms are named based on the IANA COSE list:\nhttps://www.iana.org/assignments/cose/cose.xhtml",
				"enum": [
					-9,
					-51,
					-52,
					-19,
					-7,
					-35,
					-36,
					-8
				],
				"type": "number"
			},
			"OID4VPFormatMsoMdoc": {
				"description": "Format-specific parameters for mDL/mDoc credentials",
				"properties": {
					"issuerauth_alg_values": {
						"items": {
							"$ref": "#/components/schemas/OID4VPFormatMsoMdocAlgValuesEnum"
						},
						"type": "array",
						"description": "Supported issuer authentication algorithms\nDefault is -9 (ESP256)"
					},
					"deviceauth_alg_values": {
						"items": {
							"$ref": "#/components/schemas/OID4VPFormatMsoMdocAlgValuesEnum"
						},
						"type": "array",
						"description": "Supported device authentication algorithms\nDefault is -9 (ESP256)"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPFormatSdJwtSigAlgValues": {
				"description": "SD-JWT signature algorithms are named based on the IANA JOSE list:\nhttps://www.iana.org/assignments/jose/jose.xhtml",
				"enum": [
					"ES256",
					"ES384",
					"ES512",
					"Ed25519",
					"EdDSA"
				],
				"type": "string"
			},
			"OID4VPFormatSdJwtKBSigAlgValues": {
				"description": "SD-JWT key-binding signature algorithms",
				"enum": [
					"ES256",
					"ES384",
					"ES512",
					"Ed25519",
					"EdDSA"
				],
				"type": "string"
			},
			"OID4VPFormatSdJwt": {
				"description": "Format-specific parameters for SD-JWT credentials",
				"properties": {
					"sd-jwt_alg_values": {
						"items": {
							"$ref": "#/components/schemas/OID4VPFormatSdJwtSigAlgValues"
						},
						"type": "array",
						"description": "Supported SD-JWT algorithms\nDefault is ES256"
					},
					"kb-jwt_alg_values": {
						"items": {
							"$ref": "#/components/schemas/OID4VPFormatSdJwtKBSigAlgValues"
						},
						"type": "array",
						"description": "Supported key binding JWT algorithms\nDefault is ES256"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPFormatsSupported": {
				"description": "Supported VP formats",
				"properties": {
					"mso_mdoc": {
						"$ref": "#/components/schemas/OID4VPFormatMsoMdoc",
						"description": "mDL/mDoc format support"
					},
					"dc+sd-jwt": {
						"$ref": "#/components/schemas/OID4VPFormatSdJwt",
						"description": "SD-JWT format support"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPVerifierInfo": {
				"description": "Verifier information for attestation",
				"properties": {
					"format": {
						"type": "string",
						"description": "Format of the attestation"
					},
					"data": {
						"description": "Attestation data (object or string)"
					},
					"credential_id": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Optional array of credential IDs this attestation applies to"
					}
				},
				"required": [
					"format",
					"data"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPVerifierMetadata": {
				"description": "Metadata for the verifier profile",
				"properties": {
					"software_id": {
						"type": "string",
						"description": "Unique ecosystem identifier for the verifier\nDefaults to \"https://{host}/{path_prefix}/v1.0/diagency/trust/anchor/{agent_id}\""
					},
					"software_version": {
						"type": "string",
						"description": "Optional version identifier for the client software"
					},
					"response_types": {
						"items": {
							"$ref": "#/components/schemas/OID4VPResponseType"
						},
						"type": "array",
						"description": "Response types supported\nDefaults to [\"vp_token\"]"
					},
					"vp_formats_supported": {
						"$ref": "#/components/schemas/OID4VPFormatsSupported",
						"description": "Supported VP formats"
					},
					"verifier_info": {
						"items": {
							"$ref": "#/components/schemas/OID4VPVerifierInfo"
						},
						"type": "array",
						"description": "Optional verifier attestation information"
					},
					"tos_uri": {
						"type": "string",
						"description": "Optional URL to terms of service"
					},
					"policy_uri": {
						"type": "string",
						"description": "Optional URL to privacy policy"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPClientIdPrefix": {
				"description": "Client ID prefix types",
				"enum": [
					"redirect_uri",
					"x509_hash",
					"x509_san_dns"
				],
				"type": "string"
			},
			"OID4VPAuthorizationRequestMode": {
				"description": "Authorization request modes define how an authorization\nrequest shall be conveyed to a wallet.  Note, \"by_value_params\"\nis the only method used when th client_id_prefix is \"redirect_uri\".\nThe default value for all other cases of client_id_prefix\"\nis \"by_reference_jwt\".",
				"enum": [
					"by_value_params",
					"by_value_jwt",
					"by_reference_jwt"
				],
				"type": "string"
			},
			"OID4VPResponseMode": {
				"description": "Response modes for authorization requests",
				"enum": [
					"direct_post",
					"direct_post.jwt"
				],
				"type": "string"
			},
			"OID4VPAznResponseEncryptionEncValues": {
				"description": "The supported encryption algorithms that a verifier supports for\nauthorization responses sent from the wallet",
				"enum": [
					"A128GCM",
					"A256GCM"
				],
				"type": "string"
			},
			"OID4VPAznResponseEncryptionAlgValues": {
				"description": "The cryptographic algorithms that a verifier supports to\nto encrypt or determine the value of the CEK for\nauthorization responses sent from a wallet",
				"enum": [
					"ECDH-ES"
				],
				"type": "string"
			},
			"OID4VPAznResponseEncryptionKeyCrvValues": {
				"description": "The cryptographic public key agreement curve a verifier supports\nfor encrypted response sent from wallet",
				"enum": [
					"P-256",
					"P-384",
					"P-521"
				],
				"type": "string"
			},
			"OID4VPAznResponseEncryptionAlgOptions": {
				"description": "Authorization response encryption alg and key curve options",
				"properties": {
					"alg": {
						"$ref": "#/components/schemas/OID4VPAznResponseEncryptionAlgValues"
					},
					"crv": {
						"$ref": "#/components/schemas/OID4VPAznResponseEncryptionKeyCrvValues"
					}
				},
				"required": [
					"alg"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPAznRequestSigAlgValues": {
				"description": "The cryptographic algorithms that a verifier supports to\nto sign an authorization request sent to a wallet",
				"enum": [
					"ES256",
					"ES384",
					"ES512"
				],
				"type": "string"
			},
			"url.URL": {
				"type": "string",
				"description": "Browser-compatible `URL` class, implemented by following the WHATWG URL\nStandard. [Examples of parsed URLs](https://url.spec.whatwg.org/#example-url-parsing) may be found in the Standard itself.\nThe `URL` class is also available on the global object.\n\nIn accordance with browser conventions, all properties of `URL` objects\nare implemented as getters and setters on the class prototype, rather than as\ndata properties on the object itself. Thus, unlike `legacy urlObject`s,\nusing the `delete` keyword on any properties of `URL` objects (e.g. `delete myURL.protocol`, `delete myURL.pathname`, etc) has no effect but will still\nreturn `true`."
			},
			"DcqlCredentialFormat": {
				"enum": [
					"ldp_vc",
					"dc+sd-jwt",
					"mso_mdoc"
				],
				"type": "string"
			},
			"DcqlMsoMdocMeta": {
				"description": "Format-specific meta parameters for mDL/mDoc credentials in DCQL",
				"properties": {
					"doctype_value": {
						"type": "string",
						"description": "REQUIRED. String that specifies an allowed value for the doctype of the requested Verifiable Credential.\nIt MUST be a valid doctype identifier as defined in ISO.18013-5."
					}
				},
				"required": [
					"doctype_value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlSdJwtMeta": {
				"description": "Format-specific meta parameters for SD-JWT credentials in DCQL",
				"properties": {
					"vct_values": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array of strings that specifies allowed values for the type of the requested Verifiable Credential.\nAll elements in the array MUST be valid type identifiers as defined in I-D.ietf-oauth-sd-jwt-vc."
					}
				},
				"required": [
					"vct_values"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlW3cVcMeta": {
				"description": "Format-specific parameters for W3C Verifiable Credentials in DCQL",
				"properties": {
					"type_values": {
						"items": {
							"items": {
								"type": "string"
							},
							"type": "array"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array of string arrays. The value of each element in the type_values array\nis a non-empty array specifying the fully expanded types (IRIs) that the Verifier accepts in a Presentation."
					}
				},
				"required": [
					"type_values"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlTrustedAuthorityType": {
				"description": "Enum for trusted authority types as defined in OpenID4VP specification\nsections 6.1.1.1, 6.1.1.2, and 6.1.1.3",
				"enum": [
					"aki",
					"etsi_tl",
					"openid_federation"
				],
				"type": "string"
			},
			"DcqlTrustedAuthority": {
				"description": "Trusted Authority Query object representing information that helps to identify\nan authority or the trust framework that certifies Issuers.",
				"properties": {
					"type": {
						"$ref": "#/components/schemas/DcqlTrustedAuthorityType",
						"description": "REQUIRED. A string uniquely identifying the type of information about the issuer trust framework.\nValues are defined in sections 6.1.1.1, 6.1.1.2, and 6.1.1.3 of the OpenID4VP specification."
					},
					"values": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array of strings, where each string contains information specific to the\nused Trusted Authorities Query type that allows the identification of an issuer, a trust framework,\nor a federation that an issuer belongs to."
					}
				},
				"required": [
					"type",
					"values"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlClaimQuery": {
				"description": "Claims Query object representing a request for specific claims within a Credential.",
				"properties": {
					"id": {
						"type": "string",
						"description": "REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise.\nA string identifying the particular claim."
					},
					"path": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. The value MUST be a non-empty array representing a claims path pointer\nthat specifies the path to a claim within the Credential."
					},
					"values": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"type": "number",
									"format": "double"
								},
								{
									"type": "boolean"
								}
							]
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of strings, integers or boolean values that specifies\nthe expected values of the claim."
					}
				},
				"required": [
					"path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlMsoMdocClaimQuery": {
				"description": "Format-specific parameters for claims in mDL/mDoc credentials",
				"properties": {
					"id": {
						"type": "string",
						"description": "REQUIRED if claim_sets is present in the Credential Query; OPTIONAL otherwise.\nA string identifying the particular claim."
					},
					"path": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. The value MUST be a non-empty array representing a claims path pointer\nthat specifies the path to a claim within the Credential."
					},
					"values": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"type": "number",
									"format": "double"
								},
								{
									"type": "boolean"
								}
							]
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of strings, integers or boolean values that specifies\nthe expected values of the claim."
					},
					"intent_to_retain": {
						"type": "boolean",
						"description": "OPTIONAL. A boolean that is equivalent to IntentToRetain variable defined in ISO.18013-5."
					}
				},
				"required": [
					"path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlCredentialQuery": {
				"description": "Credential Query object representing a request for a presentation of one or more matching Credentials.",
				"properties": {
					"id": {
						"type": "string",
						"description": "REQUIRED. A string identifying the Credential in the response and, if provided, the constraints in credential_sets.\nThe value MUST be a non-empty string consisting of alphanumeric, underscore (_), or hyphen (-) characters."
					},
					"format": {
						"$ref": "#/components/schemas/DcqlCredentialFormat",
						"description": "REQUIRED. A string that specifies the format of the requested Credential."
					},
					"multiple": {
						"type": "boolean",
						"description": "OPTIONAL. A boolean which indicates whether multiple Credentials can be returned for this Credential Query.\nIf omitted, the default value is false."
					},
					"meta": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/DcqlMsoMdocMeta"
							},
							{
								"$ref": "#/components/schemas/DcqlSdJwtMeta"
							},
							{
								"$ref": "#/components/schemas/DcqlW3cVcMeta"
							},
							{
								"$ref": "#/components/schemas/Record_string.any_"
							}
						],
						"description": "REQUIRED. An object defining additional properties requested by the Verifier that apply to the\nmetadata and validity data of the Credential.\nThe specific properties depend on the credential format."
					},
					"trusted_authorities": {
						"items": {
							"$ref": "#/components/schemas/DcqlTrustedAuthority"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of objects that specifies expected authorities or trust frameworks\nthat certify Issuers, that the Verifier will accept."
					},
					"require_cryptographic_holder_binding": {
						"type": "boolean",
						"description": "OPTIONAL. A boolean which indicates whether the Verifier requires a Cryptographic Holder Binding proof.\nThe default value is true, i.e., a Verifiable Presentation with Cryptographic Holder Binding is required."
					},
					"claims": {
						"items": {
							"anyOf": [
								{
									"$ref": "#/components/schemas/DcqlClaimQuery"
								},
								{
									"$ref": "#/components/schemas/DcqlMsoMdocClaimQuery"
								}
							]
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of objects that specifies claims in the requested Credential."
					},
					"claim_sets": {
						"items": {
							"items": {
								"type": "string"
							},
							"type": "array"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array containing arrays of identifiers for elements in claims\nthat specifies which combinations of claims for the Credential are requested."
					}
				},
				"required": [
					"id",
					"format",
					"meta"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlCredentialSetQuery": {
				"description": "Credential Set Query object representing a request for one or more Credentials\nto satisfy a particular use case with the Verifier.",
				"properties": {
					"options": {
						"items": {
							"items": {
								"type": "string"
							},
							"type": "array"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array, where each value in the array is a list of Credential Query identifiers\nrepresenting one set of Credentials that satisfies the use case."
					},
					"required": {
						"type": "boolean",
						"description": "OPTIONAL. A boolean which indicates whether this set of Credentials is required\nto satisfy the particular use case at the Verifier. If omitted, the default value is true."
					}
				},
				"required": [
					"options"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DcqlQuery": {
				"description": "Digital Credentials Query Language (DCQL) interface\nBased on OpenID for Verifiable Presentations specification\nhttps://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-digital-credentials-query-l",
				"properties": {
					"credentials": {
						"items": {
							"$ref": "#/components/schemas/DcqlCredentialQuery"
						},
						"type": "array",
						"description": "REQUIRED. A non-empty array of Credential Queries that specify the requested Credentials."
					},
					"credential_sets": {
						"items": {
							"$ref": "#/components/schemas/DcqlCredentialSetQuery"
						},
						"type": "array",
						"description": "OPTIONAL. A non-empty array of Credential Set Queries that specifies additional constraints\non which of the requested Credentials to return."
					}
				},
				"required": [
					"credentials"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustRegistriesToUse": {
				"properties": {
					"issuer_blanket_trust": {
						"type": "boolean",
						"description": "Whether all issuers should be trusted regardless of trust registry\nconfiguration. Setting this boolean to true effectively means anyone can\nbe trusted for producing any credential. This is NOT RECOMMENDED for\nproduction. Default: false."
					},
					"issuer_registries": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The local or remote registries to use when ensuring the issuer of a\ncredential is trusted. If this is not specified or is an empty list, all\nconfigured and activated registries will be used. Cannot be used when\n`issuer_blanket_trust` is set to true."
					},
					"trusted_authority_types": {
						"items": {
							"$ref": "#/components/schemas/DcqlTrustedAuthorityType"
						},
						"type": "array",
						"description": "The trusted authority types to use for DCQL trusted_authorities verification.\nWhen set, the verifier will build a trusted_authorities entry for each specified\ntype and include them in the DCQL authorization request. The wallet must present\ncredentials satisfying at least one of the listed authority types.\nSupported values: \"aki\". Future values: \"etsi_tl\", \"openid_federation\"."
					},
					"credential_status_provider_blanket_trust": {
						"type": "boolean",
						"description": "Whether all credential status providers (where applicable) should be\ntrusted regardless of trust registry configuration. Setting this boolean\nto true effectively means trust is put in the issuer's hands to utilise a\ntrusted credential status provider. Default: false."
					},
					"credential_status_provider_registries": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The local or remote registries to use when ensuring the credential status\nprovider referenced in a credential is trusted. If this is not specified\nor is an empty list, all configured and activated registries will be\nused. Cannot be used when `credential_status_provider_blanket_trust` is\nset to true."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPCertificateProfileConfig": {
				"description": "Certificate profile configuration for an OID4VP exchange template.\nSpecifies Ecosystem-specific constraints on the ephemeral Verifier leaf\ncertificate generated per exchange (e.g., required EKU OIDs).",
				"properties": {
					"eku_oids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Extended Key Usage OIDs to include in the ephemeral exchange leaf certificate.\nUse OID constants from certificate_profiles.ts (e.g. ID_MDL_READER_AUTH)."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeTemplate": {
				"description": "Exchange template configuration.\nENCRYPTED AUTHORIZATION REQUESTS ARE NOT SUPPORTED.",
				"properties": {
					"client_id_prefix": {
						"$ref": "#/components/schemas/OID4VPClientIdPrefix",
						"description": "Client ID prefix to use in authorization requests"
					},
					"request_mode": {
						"$ref": "#/components/schemas/OID4VPAuthorizationRequestMode",
						"description": "Authorization request modes define how an authorization\nrequest shall be conveyed to a wallet.  Note, \"by_value_params\"\nis the only method used when th client_id_prefix is \"redirect_uri\".\nThe default value for all other cases of client_id_prefix\"\nis \"by_reference_jwt\"."
					},
					"exchange_completed_redirect_uri": {
						"type": "string",
						"description": "URI to redirect to after exchange is completed"
					},
					"response_mode": {
						"$ref": "#/components/schemas/OID4VPResponseMode",
						"description": "Response mode for authorization requests"
					},
					"encrypted_response_enc_values_supported": {
						"items": {
							"$ref": "#/components/schemas/OID4VPAznResponseEncryptionEncValues"
						},
						"type": "array",
						"description": "Supported encryption algorithms for encrypted responses sent from the wallet.\nThis informs the wallet about the values supported by the verifier for\nencrypted vp_token responses.\n\nApplicable only when response_mode is \"direct_post.jwt\".  It will be ignored\notherwise.\n\nDefault is \"A256GCM\""
					},
					"encrypted_response_alg_values_supported": {
						"items": {
							"$ref": "#/components/schemas/OID4VPAznResponseEncryptionAlgOptions"
						},
						"type": "array",
						"description": "Supported content encryption key algorithms for encrypted responses sent from the wallet.\nThis informs the wallet about the values supported by the verifier for\nencrypted vp_token responses.\n\nApplicable only when response_mode is \"direct_post.jwt\".  It will be ignored\nin all other cases if set.\n\nThis settings controls parameters used to create the ephemeral keys generated by\nthe verifier and provided to the wallet when encrypting authorization responses.\n\nDefault is { \"alg: \"ECDH-ES\", \"crv\": \"P-256\" }"
					},
					"request_object_signing_alg": {
						"$ref": "#/components/schemas/OID4VPAznRequestSigAlgValues",
						"description": "The signature algorithm the verifier will use to sign the authorization request\nJWT.\n\nApplicable when request_mode is \"by_value_jwt\" or \"by_reference_jwt\".  Additionally,\nIf set when response_mode is \"direct_post.jwt\", then the authorization request will\nbe signed and then encrypted.\n\nThe default is \"ES256\"."
					},
					"default_authorization_url_scheme": {
						"type": "string",
						"description": "DEPRECATED, use default_authorization_url\n\nDefault URL scheme for authorization requests\nDefaults to \"openid4vp://\""
					},
					"default_authorization_url": {
						"$ref": "#/components/schemas/url.URL",
						"description": "Default authorization URL for the wallet as the authorization server\nDefaults to \"openid4vp://\""
					},
					"dcql_query": {
						"$ref": "#/components/schemas/DcqlQuery",
						"description": "DCQL query for credential requests"
					},
					"trust_registries_to_use": {
						"$ref": "#/components/schemas/TrustRegistriesToUse",
						"description": "Optional refinement of trust configuration. If this is not specified or\notherwise empty, all configured trust registries will be used."
					},
					"ttl": {
						"type": "number",
						"format": "double",
						"description": "Time-to-live for authorization requests in seconds\nDefaults to 120 seconds"
					},
					"san_dns": {
						"type": "string",
						"description": "The DNS hostname to use as the Subject Alternative Name (SAN DNS) in the signing\nephemeral leaf certificate. When set, this value is used instead of the\nroot-of-trust certificate SAN DNS or CN fallbacks for x509_san_dns client\nidentifiers.\n\nApplicable only when client_id_prefix is x509_san_dns, ignored otherwise.\n\nWhen not set, the effective SAN DNS is resolved in priorority order:\n1. Root-of-trust certificate SAN DNS (first entry)\n2. Root-of-trust certificate CN (if it is a valid DNS hostname)\n3. Auto-generated fallback: \"verifier${agentId}\""
					},
					"certificate_profile": {
						"$ref": "#/components/schemas/OID4VPCertificateProfileConfig"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"AgentVerifierProfile": {
				"properties": {
					"metadata": {
						"$ref": "#/components/schemas/OID4VPVerifierMetadata",
						"description": "The verifier metadata.  This is OAuth client metadata\nwith OID4VP extensions such as \"vp_formats_supported\""
					},
					"default_exchange_template": {
						"$ref": "#/components/schemas/OID4VPExchangeTemplate",
						"description": "A convenience setting that allows for a defaults\nrelated to exchange templates for VP authorization exchanges\nat runtime.  If set, these defaults will govern the VP\nauthorization requests that are sent to wallet.  Note, these settings\nmay be overridden by calling the exchange_templates API to create\ncontext specific VP authorization request templates."
					},
					"root_of_trust": {
						"$ref": "#/components/schemas/RootOfTrustConfiguration",
						"description": "The root of trust for this agent profile. When creating or updating an\nagent this can either be system-generated or provided via a custom upload\nof both a certificate and a matching private key."
					}
				},
				"required": [
					"root_of_trust"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentDisplayLogo": {
				"properties": {
					"uri": {
						"type": "string",
						"description": "String value that contains a URI where the Wallet can obtain the logo\nthis agent's profile."
					},
					"alt_text": {
						"type": "string",
						"description": "String value of the alternative text for the logo image."
					}
				},
				"required": [
					"uri"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentDisplay": {
				"properties": {
					"locale": {
						"type": "string",
						"description": "String value that identifies the language of this object represented as a\nlanguage tag taken from values defined in BCP47 [RFC5646]. There MUST be\nonly one object for each language identifier."
					},
					"name": {
						"type": "string",
						"description": "String value of a display name for the issuer / verifier."
					},
					"description": {
						"type": "string",
						"description": "String value of the display description for the issuer / verifier."
					},
					"logo": {
						"$ref": "#/components/schemas/AgentDisplayLogo",
						"description": "Object with information about the logo of the issuer / verifier."
					}
				},
				"required": [
					"locale",
					"name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentProfile": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/AgentDisplay"
						},
						"type": "array",
						"description": "A non-empty array of objects, where each object contains display\nproperties of an issuer / verifier for a certain language."
					},
					"identifier": {
						"type": "string",
						"description": "An optional override string for the agent's identifier string. If one is\nnot specified, the system default trust anchor path will be used instead.\nWhen setting this option, it must be set to a case sensitive URL using\nthe https scheme that contains scheme, host and, optionally, port number\nand path components, but no query or fragment components."
					},
					"issuer": {
						"$ref": "#/components/schemas/AgentIssuerProfile",
						"description": "Issuer-specific configuration information."
					},
					"verifier": {
						"$ref": "#/components/schemas/AgentVerifierProfile",
						"description": "Verifier-specific configuration information."
					}
				},
				"required": [
					"display"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentInfo": {
				"description": "An `Agent` manages credentials and is used to connect to other agents on behalf of the user.",
				"properties": {
					"id": {
						"type": "string",
						"description": "The identifier of the agent.",
						"example": "605000BP6R"
					},
					"name": {
						"type": "string",
						"description": "The name of the agent.",
						"example": "issuer"
					},
					"pass": {
						"type": "string",
						"description": "NOTE: This is no longer supported as agent passwords are now managed via OIDC client creds",
						"example": "secret"
					},
					"client_id": {
						"type": "string",
						"example": "550e8400-e29b-41d4-a716-446655440000.7c9e6679-7425-40de-944b-e07fc1f90ae7"
					},
					"client_secret": {
						"type": "string",
						"example": "secret"
					},
					"email": {
						"type": "string",
						"example": "agent@example.com"
					},
					"url": {
						"type": "string",
						"description": "The URL needed to connect to the agent.",
						"example": "https://${service_url}/config/v1.0/diagency/agents/605000BP6R"
					},
					"connection_url": {
						"type": "string",
						"description": "The URL that represents the agent in a connection object.",
						"example": "https://${service_url}/diagency/a2a/v1/messages/605000BP6R"
					},
					"creator_id": {
						"type": "string",
						"example": "3a509afc-b6ca-7376-9495-40aa3fa5d53e"
					},
					"tenant_id": {
						"type": "string",
						"example": "3a509afc-b6ca-7376-9495-40aa3fa5d53e"
					},
					"creation_time": {
						"type": "number",
						"format": "double",
						"description": "The date and time when the agent was created.",
						"example": 1687694137
					},
					"password_update_time": {
						"type": "number",
						"format": "double",
						"example": 1687694199
					},
					"did": {
						"type": "string",
						"description": "The DID for the agent.",
						"example": "A4DXofjbeC97WZAHU5MVGK"
					},
					"verkey": {
						"type": "string",
						"description": "The public key for the agent."
					},
					"did_method": {
						"$ref": "#/components/schemas/DidMethod"
					},
					"master_secret_id": {
						"type": "string",
						"example": "3cee5c2d-14c6-463a-8448-e5da41c02ea3"
					},
					"default_ledger_name": {
						"type": "string",
						"example": "local"
					},
					"default_ledger_role": {
						"type": "string",
						"example": "unknown"
					},
					"capabilities": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"example": []
					},
					"issuer": {
						"type": "boolean",
						"description": "Maps to a Ledger"
					},
					"is_did_on_ledger": {
						"type": "boolean",
						"description": "Maps to a Ledger",
						"example": false
					},
					"max_agent_children": {
						"type": "number",
						"format": "double",
						"description": "Set Max Agent Childern",
						"example": -1
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettings"
					},
					"agent_type": {
						"$ref": "#/components/schemas/AgentType"
					},
					"actions": {
						"items": {
							"$ref": "#/components/schemas/ScheduledAction"
						},
						"type": "array"
					},
					"profile": {
						"$ref": "#/components/schemas/AgentProfile"
					},
					"holder_sub": {
						"type": "string",
						"description": "The subject claim from the holder's JWT token",
						"example": "cn=user_4,ou=users,dc=ibm,dc=com"
					},
					"local_status_registry_agent_id": {
						"type": "string",
						"description": "The ID of the local status registry agent for this tenant admin agent. Only populated for tenant admin agents.",
						"example": "3a509afc-b6ca-7376-9495-40aa3fa5d53e"
					}
				},
				"required": [
					"id",
					"name",
					"url",
					"connection_url",
					"creator_id",
					"tenant_id",
					"creation_time",
					"password_update_time",
					"did",
					"verkey",
					"did_method",
					"master_secret_id",
					"default_ledger_name",
					"default_ledger_role",
					"capabilities",
					"issuer",
					"is_did_on_ledger",
					"max_agent_children",
					"aries",
					"actions"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentNodeView": {
				"properties": {
					"name": {
						"type": "string"
					},
					"id": {
						"type": "string"
					},
					"path": {
						"type": "string"
					},
					"parent_id": {
						"type": "string"
					},
					"password_update_time": {
						"type": "number",
						"format": "double"
					},
					"children": {
						"properties": {
							"agents": {
								"items": {
									"$ref": "#/components/schemas/AgentNodeView"
								},
								"type": "array"
							},
							"count": {
								"type": "number",
								"format": "double"
							}
						},
						"required": [
							"agents",
							"count"
						],
						"type": "object"
					}
				},
				"required": [
					"name",
					"id",
					"path",
					"parent_id",
					"password_update_time"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgencyView": {
				"properties": {
					"tree": {
						"items": {
							"$ref": "#/components/schemas/AgentNodeView"
						},
						"type": "array"
					},
					"orphanedNodes": {
						"items": {
							"$ref": "#/components/schemas/AgentNodeView"
						},
						"type": "array"
					}
				},
				"required": [
					"tree"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AgentMetadata": {
				"properties": {
					"type": {
						"type": "string",
						"description": "The type of agent"
					},
					"id": {
						"type": "string",
						"description": "The agent ID"
					},
					"name": {
						"type": "string",
						"description": "The agent name"
					},
					"pass": {
						"type": "string",
						"description": "The agent pass. NOTE: This is no longer supported as agent passwords are now managed via OIDC client creds"
					},
					"parent_id": {
						"type": "string",
						"description": "The ID of the parent agent"
					},
					"creator_id": {
						"type": "string",
						"description": "The ID of the agent which created this agent"
					},
					"tenant_id": {
						"type": "string",
						"description": "The ID of the tenant admin agent this agent belongs to. An empty string if this is a tenant admin agent"
					},
					"path": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The path from the root agent to this agent"
					},
					"master_secret_id": {
						"type": "string",
						"description": "The ID of the master secret"
					},
					"default_ledger_name": {
						"type": "string",
						"description": "The default ledger for this agent"
					},
					"did_method": {
						"$ref": "#/components/schemas/DidMethod",
						"description": "The did method for this agent"
					},
					"did": {
						"type": "string",
						"description": "The public DID for this agent"
					},
					"verkey": {
						"type": "string",
						"description": "The public verkey for this agent"
					},
					"creation_time": {
						"type": "number",
						"format": "double",
						"description": "The creation time for this agent"
					},
					"password_update_time": {
						"type": "number",
						"format": "double",
						"description": "The password update time for this agent"
					},
					"max_agent_children": {
						"type": "number",
						"format": "double",
						"description": "The max number of children this agent can have"
					},
					"depth": {
						"type": "number",
						"format": "double",
						"description": "The depth of this agent in the agency tree"
					},
					"max_agent_depth": {
						"type": "number",
						"format": "double",
						"description": "The max depth of children this agent can have"
					},
					"email": {
						"type": "string",
						"description": "The notification email associated with this agent"
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettings",
						"description": "The Aries setting info associated with this agent"
					},
					"expired": {
						"type": "boolean",
						"description": "Denotes whether or not this account is expired"
					},
					"actions": {
						"items": {
							"$ref": "#/components/schemas/ScheduledAction"
						},
						"type": "array",
						"description": "The actions which are to be performed on this account"
					},
					"num_actions_performed": {
						"type": "number",
						"format": "double",
						"description": "The number of actions which have been performed"
					},
					"agent_type": {
						"$ref": "#/components/schemas/AgentType",
						"description": "The agent type."
					},
					"database_version": {
						"type": "string",
						"description": "The database version used by the agent. If undefined, this will be the same version as the agency."
					},
					"profile": {
						"$ref": "#/components/schemas/AgentProfile",
						"description": "Optional issuer/verifier profile details."
					},
					"holder_sub": {
						"type": "string",
						"description": "The subject claim from the holder's JWT token, stored as a hashed index for authentication lookup"
					},
					"local_status_registry_agent_id": {
						"type": "string",
						"description": "The ID of the local status registry agent for this tenant admin agent. Only populated for tenant admin agents."
					},
					"oid4vci_nonce_private_key": {
						"type": "string",
						"description": "The ES256 private key used for OID4VCI nonce signing. Only populated for root agent. Stored encrypted."
					}
				},
				"required": [
					"type",
					"id",
					"name",
					"parent_id",
					"tenant_id",
					"path",
					"master_secret_id",
					"did_method",
					"did",
					"verkey",
					"creation_time",
					"password_update_time",
					"max_agent_children",
					"depth",
					"max_agent_depth",
					"aries",
					"expired",
					"actions",
					"num_actions_performed",
					"agent_type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ProfileTypeEnum": {
				"enum": [
					"issuer",
					"verifier"
				],
				"type": "string"
			},
			"AgentReference": {
				"description": "Agent id, name , (password)",
				"properties": {
					"id": {
						"type": "string"
					},
					"name": {
						"type": "string"
					},
					"profile_types": {
						"items": {
							"$ref": "#/components/schemas/ProfileTypeEnum"
						},
						"type": "array"
					},
					"identifier": {
						"type": "string"
					},
					"pass": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"name",
					"profile_types",
					"identifier"
				],
				"type": "object",
				"additionalProperties": false
			},
			"IGetAllAgentsResponse": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double",
						"example": 6
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/AgentReference"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateAgentArgs": {
				"description": "Create Agent Arguments",
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the agent.",
						"example": "issuer"
					},
					"pass": {
						"type": "string",
						"example": "secret"
					},
					"password": {
						"type": "string",
						"example": "secret"
					},
					"email": {
						"type": "string",
						"example": "agent@example.com"
					},
					"agent_type": {
						"$ref": "#/components/schemas/AgentType"
					},
					"seed": {
						"type": "string",
						"description": "Seed value used when creating the root agent DID.",
						"example": "36489304"
					},
					"did_method": {
						"$ref": "#/components/schemas/DidMethod"
					},
					"publish_did": {
						"type": "boolean",
						"description": "Unused"
					},
					"is_did_on_ledger": {
						"type": "boolean",
						"description": "Maps to a Ledger",
						"example": false
					},
					"default_ledger_name": {
						"type": "string",
						"example": "local"
					},
					"max_agent_children": {
						"type": "number",
						"format": "double",
						"description": "Set Max Agent Childern -1 (unlimited)",
						"example": -1
					},
					"max_agent_depth": {
						"type": "number",
						"format": "double",
						"example": 10
					},
					"aries_version": {
						"type": "string",
						"description": "Aries MessagingVersioning"
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettingsArgs"
					},
					"profile": {
						"$ref": "#/components/schemas/AgentProfile",
						"description": "Additional profile information which is mandatory for issuer or verifier\nagents. All other agent types must not specify this configuration."
					},
					"holder_sub": {
						"type": "string",
						"description": "Distinguished Name (DN) string for holder agents. This is used to identify\nthe holder agent in LDAP-based systems.",
						"example": "cn=user1,ou=users,dc=example,dc=com"
					},
					"id": {
						"type": "string",
						"description": "Internal use only - system-generated agent ID"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"AgentPatchOperation": {
				"enum": [
					"key_rollover",
					"publish_did_to_ledger",
					"key_remove"
				],
				"type": "string"
			},
			"KeyRolloverType": {
				"enum": [
					"didcomm_authentication_key",
					"issuer_root_of_trust",
					"verifier_root_of_trust"
				],
				"type": "string"
			},
			"SetAgentDefaultLedgerArgs": {
				"description": "Set Default Ledger Name",
				"properties": {
					"ledger_name": {
						"type": "string",
						"example": "local"
					}
				},
				"required": [
					"ledger_name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LedgerRole": {
				"description": "Ledger Roles\n`USER = \"USER\", TRUSTEE = \"TRUSTEE\", STEWARD = \"STEWARD\", ENDORSER = \"ENDORSER\", TRUST_ANCHOR = \"TRUST_ANCHOR\",\nNETWORK_MONITOR = \"NETWORK_MONITOR\", NONE = \"\"`",
				"enum": [
					"USER",
					"TRUSTEE",
					"STEWARD",
					"ENDORSER",
					"TRUST_ANCHOR",
					"NETWORK_MONITOR",
					""
				],
				"type": "string"
			},
			"SetAgentRoleArgs": {
				"properties": {
					"name": {
						"$ref": "#/components/schemas/LedgerRole"
					},
					"di": {
						"$ref": "#/components/schemas/DidInfo"
					},
					"alias": {
						"type": "string"
					},
					"seed": {
						"type": "string",
						"description": "Seed value used when creating the agents DID."
					},
					"ledger_name": {
						"type": "string",
						"description": "Ledger Name",
						"example": "local"
					}
				},
				"required": [
					"name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SetAgentLogLevelArgs": {
				"properties": {
					"indy": {
						"type": "number",
						"format": "double"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"SetAgentPasswordArgs": {
				"description": "Set Agent Password Args. NOTE: This is no longer supported as agent passwords are now managed via OIDC client creds",
				"properties": {
					"new_password": {
						"type": "string"
					},
					"return_new_password": {
						"type": "boolean"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateAgentIssuerProfile": {
				"properties": {
					"credential_offer_scheme": {
						"type": "string",
						"description": "The default scheme to use for credential offers. This is used when generating\nQR codes for credential offers. If not specified, \"openid-credential-offer\"\nwill be used as the default.",
						"example": "openid-credential-offer"
					},
					"default_authorization_provider": {
						"type": "string",
						"description": "The default authorization provider name that the issuer wants to trust from\nthe full set configured at the tenancy level via the Auth Introspection Provider API.\nThis is used as the default for credential offers unless overridden at the offer level.\nThe value must match the 'name' field of a configured auth introspection provider.",
						"example": "oauth-provider-name"
					},
					"default_client_id": {
						"type": "string",
						"description": "The default client ID for the default authorization provider that the issuer\nwants to trust. This is used as the default for credential offers unless\noverridden at the offer level.",
						"example": "wallet-client-id"
					},
					"root_of_trust": {
						"$ref": "#/components/schemas/RootOfTrustConfiguration"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateAgentVerifierProfile": {
				"properties": {
					"metadata": {
						"$ref": "#/components/schemas/OID4VPVerifierMetadata",
						"description": "The verifier metadata.  This is OAuth client metadata\nwith OID4VP extensions such as \"vp_formats_supported\""
					},
					"default_exchange_template": {
						"$ref": "#/components/schemas/OID4VPExchangeTemplate",
						"description": "A convenience setting that allows for a defaults\nrelated to exchange templates for VP authorization exchanges\nat runtime.  If set, these defaults will govern the VP\nauthorization requests that are sent to wallet.  Note, these settings\nmay be overridden by calling the exchange_templates API to create\ncontext specific VP authorization request templates."
					},
					"root_of_trust": {
						"$ref": "#/components/schemas/RootOfTrustConfiguration",
						"description": "The root of trust for this agent profile. When creating or updating an\nagent this can either be system-generated or provided via a custom upload\nof both a certificate and a matching private key."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateAgentProfile": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/AgentDisplay"
						},
						"type": "array",
						"description": "A non-empty array of objects, where each object contains display\nproperties of an issuer / verifier for a certain language."
					},
					"identifier": {
						"type": "string",
						"description": "An optional override string for the agent's identifier string. If one is\nnot specified, the system default trust anchor path will be used instead.\nWhen setting this option, it must be set to a case sensitive URL using\nthe https scheme that contains scheme, host and, optionally, port number\nand path components, but no query or fragment components."
					},
					"issuer": {
						"$ref": "#/components/schemas/UpdateAgentIssuerProfile",
						"description": "Issuer-specific configuration information."
					},
					"verifier": {
						"$ref": "#/components/schemas/UpdateAgentVerifierProfile",
						"description": "Verifier-specific configuration information."
					}
				},
				"required": [
					"display"
				],
				"type": "object",
				"additionalProperties": false
			},
			"PatchAgentArgs": {
				"properties": {
					"default_ledger": {
						"$ref": "#/components/schemas/SetAgentDefaultLedgerArgs"
					},
					"role": {
						"$ref": "#/components/schemas/SetAgentRoleArgs"
					},
					"is_did_on_ledger": {
						"type": "boolean"
					},
					"log_level": {
						"$ref": "#/components/schemas/SetAgentLogLevelArgs"
					},
					"password": {
						"$ref": "#/components/schemas/SetAgentPasswordArgs"
					},
					"max_agent_children": {
						"type": "number",
						"format": "double",
						"description": "Set Max Agent Childern -1 (unlimited)",
						"example": -1
					},
					"creator_id": {
						"type": "string"
					},
					"aries_version": {
						"type": "string",
						"description": "Aries Messaging/Versioning Compatibility",
						"example": "2.0"
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettingsArgs"
					},
					"profile": {
						"$ref": "#/components/schemas/UpdateAgentProfile"
					},
					"op": {
						"$ref": "#/components/schemas/AgentPatchOperation"
					},
					"key_rollover_type": {
						"$ref": "#/components/schemas/KeyRolloverType"
					},
					"root_of_trust": {
						"$ref": "#/components/schemas/RootOfTrustConfiguration"
					},
					"deprecated_issuer_root_of_trust_id": {
						"type": "string"
					},
					"deprecated_verifier_root_of_trust_id": {
						"type": "string"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateAgentArgs": {
				"properties": {
					"default_ledger": {
						"$ref": "#/components/schemas/SetAgentDefaultLedgerArgs"
					},
					"role": {
						"$ref": "#/components/schemas/SetAgentRoleArgs"
					},
					"is_did_on_ledger": {
						"type": "boolean"
					},
					"log_level": {
						"$ref": "#/components/schemas/SetAgentLogLevelArgs"
					},
					"password": {
						"$ref": "#/components/schemas/SetAgentPasswordArgs"
					},
					"max_agent_children": {
						"type": "number",
						"format": "double",
						"description": "Set Max Agent Childern -1 (unlimited)",
						"example": -1
					},
					"creator_id": {
						"type": "string"
					},
					"aries_version": {
						"type": "string",
						"description": "Aries Messaging/Versioning Compatibility",
						"example": "2.0"
					},
					"aries": {
						"$ref": "#/components/schemas/AriesSettingsArgs"
					},
					"profile": {
						"$ref": "#/components/schemas/UpdateAgentProfile"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"DidService": {
				"properties": {
					"id": {
						"type": "string",
						"description": "id - Required by Service Endpoint spec.",
						"example": "did:example:123456789abcdefghi#did-communication"
					},
					"type": {
						"type": "string",
						"description": "type - Required by Service Endpoint Spec.",
						"example": "did-communication"
					},
					"serviceEndpoint": {
						"type": "string",
						"description": "URL based Endpoint required by Service Spec.",
						"example": "https://agent.example.com/"
					},
					"priority": {
						"type": "number",
						"format": "double",
						"description": "This represents the priority of the service endpoint. Default 0",
						"example": 0
					},
					"recipientKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references used to denote the default recipients of an endpoint.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					},
					"routingKeys": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "This is an array of did key references.\nUsed to denote the individual routing hops in between the sender and recipients.",
						"example": [
							"did:example:123456789abcdefghi#1"
						]
					}
				},
				"required": [
					"id",
					"type",
					"serviceEndpoint"
				],
				"type": "object",
				"additionalProperties": false
			},
			"DidDoc": {
				"properties": {
					"@context": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"example": [
							"https://www.w3.org/ns/did/v1",
							"https://w3id.org/security/suites/jws-2020/v1",
							"https://w3id.org/security/suites/ed25519-2020/v1"
						]
					},
					"id": {
						"type": "string",
						"description": "The DID id",
						"example": "did:example:123456789abcdefghijk"
					},
					"verificationMethod": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array",
						"description": "One of verificationMethod or publicKey must be present.   Prefer verificationMethod"
					},
					"authentication": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "How DID subject is authenticated."
					},
					"assertion": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "If present, the associated value is  verificationMethod or publicKey must be present.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"keyAgreement": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "KeyAgreement verification relationship is used to specify\nhow an entity can generate encryption material in order to transmit confidential information intended for the DID subject.\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to perform key agreement.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"capabilityInvocation": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Used to specify a verification method that might be used by the DID subject to invoke a cryptographic capability.\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to invoke capabilities.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"capabilityDelegation": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Used to specify a mechanism that might be used by the DID subject to delegate a cryptographic capability to another party\nThis method `\"did:example:123456789abcdefghi#keys-1\"` is used to perform capability delegation.",
						"example": [
							"did:example:123456789abcdefghi#keys-1"
						]
					},
					"service": {
						"items": {
							"$ref": "#/components/schemas/DidService"
						},
						"type": "array",
						"description": "Service used for communicating with the DID subject or associated entities."
					},
					"publicKey": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array"
					}
				},
				"required": [
					"@context",
					"id",
					"service"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ConnectionList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/ConnectionInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"ToAgent": {
				"description": "The Recieving Agent.",
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the agent.",
						"example": "Issuer1"
					},
					"id": {
						"type": "string",
						"description": "The id of the agent.",
						"example": "605000BP6R"
					},
					"url": {
						"type": "string",
						"description": "The url for the agent.",
						"example": "https://${service_url}/config/v1.0/diagency/agents/605000BP6R"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CreateConnectionArgs": {
				"properties": {
					"to": {
						"$ref": "#/components/schemas/ToAgent"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "Additional properties associated with the connection."
					},
					"url": {
						"type": "string",
						"description": "The agent url"
					},
					"no_did_exchange_response": {
						"type": "boolean",
						"description": "If true - Do not send a did exchange response."
					},
					"id": {
						"type": "string",
						"description": "A unique identifier for this connection."
					},
					"state": {
						"type": "string",
						"description": "The state of the connection.",
						"example": "connected"
					},
					"role": {
						"$ref": "#/components/schemas/ConnectionRole",
						"description": "This agent's role in the connection.",
						"example": "inviter"
					},
					"local": {
						"$ref": "#/components/schemas/Endpoint",
						"description": "Information about this agent's role in the connection. Only present if this agent has accepted or initiated the connection."
					},
					"did_exchange": {
						"type": "boolean",
						"description": "Has a DID Exchange occurred.",
						"example": false
					},
					"invitation": {
						"$ref": "#/components/schemas/InvitationInfo",
						"description": "Invitations represent a way for one agent to exchange its endpoint information with another agent."
					},
					"remote": {
						"$ref": "#/components/schemas/Endpoint",
						"description": "Information about the other agent's role in this connection. Only present if that agent accepted or initiated the connection."
					},
					"timestamps": {
						"$ref": "#/components/schemas/TimeStamps",
						"description": "Timestamps associated with states of the connection."
					},
					"ext_complete": {
						"type": "boolean"
					},
					"max_queue_count": {
						"type": "number",
						"format": "double",
						"description": "Max limit of messages queued for an agent. No Value - no limit.",
						"example": -1
					},
					"max_queue_time_ms": {
						"type": "number",
						"format": "double",
						"description": "Record of the Max Queue time of an Agent. No Value - no limit.",
						"example": -1
					},
					"~thread": {
						"description": "ID of the message. A thid reference to the id of the message.\ne.g., `\"~thread\": { \"thid\": \"<id of request message>\" }`"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateConnectionArgs": {
				"description": "Accept and update a connection state.",
				"properties": {
					"state": {
						"$ref": "#/components/schemas/ConnectionState",
						"description": "The state of the connection.",
						"example": "connected"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					}
				},
				"required": [
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"SignatureType": {
				"description": "Cryptographic Signature Type",
				"enum": [
					"bls12381g2",
					"ed25519",
					"eddsa-rdfc-2022",
					"bbs-2023"
				],
				"type": "string",
				"example": "ed25519"
			},
			"CredentialType": {
				"description": "The credential schema type - `\"indy\"` , `\"jsonld\"` or `\"bbs\"`.",
				"enum": [
					"indy",
					"jsonld",
					"bbs"
				],
				"type": "string"
			},
			"CredentialSchemaInfo": {
				"description": "Represents a list of Schema attributes that a credential is based on.",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "The ID of the schema.\n`\"id\": \"R4PbDKCjZTWFh1vBc5Zaxc:2:Account:1.0\"`",
						"example": "R4PbDKCjZTWFh1vBc5Zaxc:2:Account:1.0"
					},
					"name": {
						"type": "string",
						"description": "The name of the schema.\n`\"Account\"`",
						"example": "Account"
					},
					"version": {
						"type": "string",
						"description": "The version of the schema.\n`\"1.0\"`",
						"example": "1.0"
					},
					"namever": {
						"type": "string",
						"description": "The name and version joined with a ':'.\n`\"Account:1.0\"`"
					},
					"type": {
						"$ref": "#/components/schemas/CredentialType",
						"description": "The credential schema type -`\"jsonld\"` or `\"bbs\"`."
					},
					"attrs": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The list of attributes credentials based on this schema must have.\n`\"attrs\": [ \"Name\" , \"Age\", \"EyeColor\"]`",
						"example": [
							"Name",
							"Age",
							"EyeColor"
						]
					},
					"contexts": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Identify terminology using Contexts.\n`\"@context\": [\"https://www.w3.org/ns/credentials/v2\",  \"https://www.w3.org/ns/credentials/examples/v2\"]`"
					},
					"issuer_did": {
						"type": "string",
						"description": "The public DID of the agent who published the credential definition.",
						"example": "A4DXofjbeC97WZAHU5MVGK"
					}
				},
				"required": [
					"owner_id",
					"id",
					"name",
					"version",
					"namever",
					"type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialStatusPurpose": {
				"enum": [
					"revocation",
					"suspension"
				],
				"type": "string"
			},
			"CredentialStatusProvider": {
				"properties": {
					"id": {
						"type": "string"
					},
					"enabled_status_purposes": {
						"items": {
							"$ref": "#/components/schemas/CredentialStatusPurpose"
						},
						"type": "array",
						"description": "This must be a subset of the 'supported_status_purposes'\nfrom the status list provider's config entry. These are the status purposes\nthe issuer wants credentials of this definition to be registered for."
					}
				},
				"required": [
					"id",
					"enabled_status_purposes"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionInfo": {
				"description": "Credential Definition that a Single Credential is based on for a given Agent.",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "Credential Definition id.\nResolves to a published credential definition on the ledger. Consists of a DID, a transaction type (3 means a credential definition in Hyperledger Indy),\nCL, a transaction number, and a tag.",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"type": {
						"type": "string",
						"description": "Credential Definition Type",
						"example": "indy"
					},
					"signature_type": {
						"$ref": "#/components/schemas/SignatureType",
						"description": "Cryptographic Signature Type"
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaInfo",
						"description": "The credential schema in use for this credential definition"
					},
					"agent_id": {
						"type": "string",
						"description": "Agent id.",
						"example": "605000BP6R"
					},
					"issuer_did": {
						"type": "string",
						"description": "The public DID of the agent who published the credential definition.",
						"example": "A4DXofjbeC97WZAHU5MVGK"
					},
					"signing_key_id": {
						"type": "string",
						"description": "The id of the active signing key to be used for verifying credentials created from this credential definition.\nOnly applicable for JSON-LD definition types."
					},
					"deprecated_signing_key_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The ids of the deprecated signing keys to be used for verifying credentials created from this credential definition.\nOnly applicable for JSON-LD definition types."
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					}
				},
				"required": [
					"owner_id",
					"id",
					"type",
					"signature_type",
					"schema",
					"agent_id",
					"issuer_did"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialDefinitionInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateCredentialDefinitionArgs": {
				"description": "Create a Credential Definition.",
				"properties": {
					"schema_id": {
						"type": "string",
						"description": "Schema id the Credential Definitation is\nbased on.",
						"example": "R4PbDKCjZTWFh1vBc5Zaxc:2:Account:1.0"
					},
					"ledger_name": {
						"type": "string",
						"description": "Credential Ledger Name",
						"example": "IndyLedger"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					}
				},
				"required": [
					"schema_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialSchemaV2Response": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of Schema.",
						"example": "Schema001"
					},
					"version": {
						"type": "string",
						"description": "Version of Schema.",
						"example": "1.0"
					},
					"contexts": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"additionalProperties": false,
									"type": "object"
								}
							]
						},
						"type": "array",
						"description": "JSON-LD-formatted context resources. Can be strings that represent external resources or direct objects."
					},
					"schema": {
						"description": "The list of credential's attributes represented as a JSON schema of draft version 2020-12 or above.\nUsed to define attributes for SD-JWT formatted credentials.\nSee https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-04.html#name-schema-definition"
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"owner_id": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"version",
					"id",
					"owner_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CertificateResponse": {
				"properties": {
					"certificate": {
						"type": "string",
						"description": "PEM encoded certificate"
					}
				},
				"required": [
					"certificate"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialFormatV2": {
				"enum": [
					"mso_mdoc",
					"dc+sd-jwt",
					"ldp_vc"
				],
				"type": "string"
			},
			"LdpVpKeyProofSigningAlgorithmV2": {
				"enum": [
					"eddsa-rdfc-2022",
					"Ed25519Signature2020"
				],
				"type": "string"
			},
			"LdpKeyProofTypeV2": {
				"properties": {
					"di_vp": {
						"items": {
							"$ref": "#/components/schemas/LdpVpKeyProofSigningAlgorithmV2"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"JwtKeyProofTypeV2Option": {
				"enum": [
					"ES256",
					"ES384",
					"ES512",
					"Ed25519"
				],
				"type": "string"
			},
			"JwtKeyProofTypeV2": {
				"properties": {
					"jwt": {
						"items": {
							"$ref": "#/components/schemas/JwtKeyProofTypeV2Option"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"KeyProofTypeV2": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/LdpKeyProofTypeV2"
					},
					{
						"$ref": "#/components/schemas/JwtKeyProofTypeV2"
					}
				]
			},
			"IssuerBindingMethod": {
				"enum": [
					"x5c",
					"did:web"
				],
				"type": "string"
			},
			"CredentialDefinitionV2Response": {
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2",
						"description": "The credential format to be minted.",
						"example": "ldp_vc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list of credential document types supported.\nFor JSON-LD, all strings should be resolvable in the schema.\nFor mdoc, only a single string should be specified.",
						"example": [
							"VerifiableCredential",
							"PermanentResidentCard"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list of cryptographic binding methods to support. Available options depends on the selected credential format.",
						"example": [
							"did:key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/KeyProofTypeV2",
						"description": "If cryptographic binding is in use, then the key proof signing algorithm in use.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"type": "string",
						"description": "The credential signing algorithm in use. Depends on the selected credential format.",
						"example": "Ed25519Signature2020"
					},
					"schema_id": {
						"type": "string",
						"description": "A credential schema ID.",
						"example": "d9e80072-58e3-44f0-ad39-be5dfa13a3c2"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod",
						"description": "The issuer binding method to use. If one is not specified, a default for\nthat format will be used."
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					},
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "Auto-generated ID of the credential definition",
						"example": "2:mso_mdoc:c8d6790d-82dc-7253-aa0d-3e0c043076f5"
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Response",
						"description": "The credential schema the credential definition was based upon."
					},
					"x5c": {
						"$ref": "#/components/schemas/CertificateResponse",
						"description": "If this is an mso_mdoc or SD-JWT formatted credential definition, then\nthis attribute will be populated with PEM-formatted certificate used for\nsigning."
					},
					"signing_key_id": {
						"type": "string",
						"description": "The id of the active signing key to be used for verifying credentials created from this credential definition.\nOnly applicable for JSON-LD definition types."
					},
					"deprecated_signing_key_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The ids of the deprecated signing keys to be used for verifying credentials created from this credential definition.\nOnly applicable for JSON-LD definition types."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm",
					"schema_id",
					"owner_id",
					"id",
					"schema"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionV2List": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialDefinitionV2Response"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialFormatV2.MSO_MDOC": {
				"enum": [
					"mso_mdoc"
				],
				"type": "string"
			},
			"MdocCredentialSigningAlgorithmV2": {
				"enum": [
					"ESP256",
					"ESP384",
					"ESP512",
					"Ed25519"
				],
				"type": "string"
			},
			"CertKeyPairRequest": {
				"properties": {
					"private_key": {
						"type": "string",
						"description": "PEM encoded private key matching the Document Signer Certificate."
					},
					"certificate": {
						"type": "string",
						"description": "PEM encoded certificate(s). This can be a single string with multiple\ncertificates if intermediate certificates are required in your\ndeployment. In mso_mdoc terms, if specifying multiple certificates here,\nthe Document Signer Certificate should be specified first, followed by a\nsequence of intermediate certificates leading towards, but excluding, the\nIACA Root Certificate."
					}
				},
				"required": [
					"private_key",
					"certificate"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CustomCertKeyPairRequest": {
				"properties": {
					"custom_cert_key_pair": {
						"$ref": "#/components/schemas/CertKeyPairRequest",
						"description": "Optional custom certificate and private key pair to import."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"IssuerBindingMethod.X5C": {
				"enum": [
					"x5c"
				],
				"type": "string"
			},
			"CredentialDefinitionV2RequestMdoc": {
				"description": "The specification of a mdoc-formatted credential definition.",
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.MSO_MDOC",
						"description": "The credential format to be minted.",
						"example": "mso_mdoc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The mdoc docType to use for this credential. This must be a single\nstring. It should follow the format of [Reverse Domain].[Domain Specific\nExtension].",
						"example": [
							"org.iso.18013.5.1.mDL"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"cose_key"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. For mdoc, this must be cose_key.",
						"example": [
							"cose_key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/JwtKeyProofTypeV2",
						"description": "The key proof signing algorithm to support.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/MdocCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "ESP256"
					},
					"schema_id": {
						"type": "string",
						"description": "A credential schema ID.",
						"example": "d9e80072-58e3-44f0-ad39-be5dfa13a3c2"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod.X5C",
						"description": "The issuer binding method to use. If one is not specified, a default of\nx5c will be used for mso_mdoc credentials.",
						"example": "x5c"
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					},
					"x5c": {
						"$ref": "#/components/schemas/CustomCertKeyPairRequest",
						"description": "Optional specification of a Document Signer Certificate and private key\nto use when signing credentials. If no custom key material is specified,\nthe service will generate its own key material for this definition."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm",
					"schema_id",
					"cryptographic_binding_methods",
					"key_proof_types"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialFormatV2.SDJWT": {
				"enum": [
					"dc+sd-jwt"
				],
				"type": "string"
			},
			"SdJwtCredentialSigningAlgorithmV2": {
				"enum": [
					"ES256",
					"ES384",
					"ES512",
					"Ed25519"
				],
				"type": "string"
			},
			"CredentialDefinitionV2RequestSdJwt": {
				"description": "The specification of a SD-JWT-formatted credential definition.",
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.SDJWT",
						"description": "The credential format to be minted.",
						"example": "dc+sd-jwt"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list with a single string. This string maps to the Verifiable\nCredential Type (vct).",
						"example": [
							"urn:eudi:pid:de:1"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"jwk"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. If required for SD-JWT, this must be\njwk.",
						"example": [
							"jwk"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/JwtKeyProofTypeV2",
						"description": "The key proof signing algorithm to support.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/SdJwtCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "EdDSA"
					},
					"schema_id": {
						"type": "string",
						"description": "A credential schema ID.",
						"example": "d9e80072-58e3-44f0-ad39-be5dfa13a3c2"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod",
						"description": "The issuer binding method to use. If one is not specified, a default of\nx5c will be used for dc+sd-jwt credentials.",
						"example": "x5c"
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					},
					"x5c": {
						"$ref": "#/components/schemas/CustomCertKeyPairRequest",
						"description": "Optional specification of a certificate and private key to use when\nsigning credentials. If no custom key material is specified, the service\nwill generate its own key material for this definition."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm",
					"schema_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialFormatV2.JSONLD": {
				"enum": [
					"ldp_vc"
				],
				"type": "string"
			},
			"LdpCredentialSigningAlgorithmV2": {
				"enum": [
					"eddsa-rdfc-2022",
					"Ed25519Signature2020",
					"bbs-2023",
					"BbsBlsSignature2020"
				],
				"type": "string"
			},
			"IssuerBindingMethod.DID_WEB": {
				"enum": [
					"did:web"
				],
				"type": "string"
			},
			"CredentialDefinitionV2RequestLdpVc": {
				"description": "The specification of a ldp_vc-formatted credential definition.",
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.JSONLD",
						"description": "The credential format to be minted.",
						"example": "ldp_vc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list of credential document types supported. The first must be\nVerifiableCredential. All strings should be resolvable in the schema's\ncontexts.",
						"example": [
							"VerifiableCredential",
							"PermanentResidentCard"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"did:key"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. If required for ldp_vc, this must be\ndid:key.",
						"example": [
							"did:key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/KeyProofTypeV2",
						"description": "If cryptographic binding is in use, then the key proof signing algorithm in use.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/LdpCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "eddsa-rdfc-2022"
					},
					"schema_id": {
						"type": "string",
						"description": "A credential schema ID.",
						"example": "d9e80072-58e3-44f0-ad39-be5dfa13a3c2"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod.DID_WEB",
						"description": "The issuer binding method to use. If one is not specified, a default of\ndid:web will be used for ldp_vc credentials.",
						"example": "did:web"
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm",
					"schema_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionV2Request": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/CredentialDefinitionV2RequestMdoc"
					},
					{
						"$ref": "#/components/schemas/CredentialDefinitionV2RequestSdJwt"
					},
					{
						"$ref": "#/components/schemas/CredentialDefinitionV2RequestLdpVc"
					}
				]
			},
			"PublicKeyJWK": {
				"properties": {
					"alg": {
						"type": "string"
					},
					"crv": {
						"type": "string"
					},
					"d": {
						"type": "string"
					},
					"dp": {
						"type": "string"
					},
					"dq": {
						"type": "string"
					},
					"e": {
						"type": "string"
					},
					"ext": {
						"type": "string"
					},
					"k": {
						"type": "string"
					},
					"key_ops": {
						"type": "string"
					},
					"kid": {
						"type": "string"
					},
					"kty": {
						"type": "string"
					},
					"n": {
						"type": "string"
					},
					"oth": {
						"type": "string"
					},
					"p": {
						"type": "string"
					},
					"q": {
						"type": "string"
					},
					"qi": {
						"type": "string"
					},
					"use": {
						"type": "string"
					},
					"x": {
						"type": "string"
					},
					"x5c": {
						"type": "string"
					},
					"x5t": {
						"type": "string"
					},
					"x5t256": {
						"type": "string"
					},
					"x5u": {
						"type": "string"
					},
					"y": {
						"type": "string"
					}
				},
				"required": [
					"kty"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesDidDocJWKVKey2020": {
				"properties": {
					"id": {
						"type": "string",
						"example": "1"
					},
					"type": {
						"type": "string",
						"example": "RsaVerificationKey2018"
					},
					"controller": {
						"type": "string",
						"example": "did:example:1234abcd"
					},
					"publicKeyJwK": {
						"$ref": "#/components/schemas/PublicKeyJWK"
					}
				},
				"required": [
					"id",
					"type",
					"controller",
					"publicKeyJwK"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesDidDocEd25519VKey2020": {
				"properties": {
					"id": {
						"type": "string",
						"example": "1"
					},
					"type": {
						"type": "string",
						"example": "RsaVerificationKey2018"
					},
					"controller": {
						"type": "string",
						"example": "did:example:1234abcd"
					},
					"publicKeyMultibase": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"type",
					"controller",
					"publicKeyMultibase"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AriesKeys": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/AriesDidDocPublicKey"
					},
					{
						"$ref": "#/components/schemas/AriesDidDocJWKVKey2020"
					},
					{
						"$ref": "#/components/schemas/AriesDidDocEd25519VKey2020"
					}
				]
			},
			"AriesKeysOrString": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/AriesKeys"
					},
					{
						"type": "string"
					}
				]
			},
			"W3cDidDocService": {
				"description": "Service Endpoints of the DID Specification.",
				"properties": {
					"id": {
						"type": "string",
						"description": "id - Required by Service Endpoint spec.",
						"example": "did:example:123456789abcdefghi#did-communication"
					},
					"type": {
						"type": "string",
						"description": "type - Required by Service Endpoint Spec.",
						"example": "did-communication"
					},
					"serviceEndpoint": {
						"type": "string",
						"description": "URL based Endpoint required by Service Spec.",
						"example": "https://agent.example.com/"
					}
				},
				"required": [
					"id",
					"type",
					"serviceEndpoint"
				],
				"type": "object",
				"additionalProperties": false
			},
			"W3cDidDoc": {
				"properties": {
					"@context": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						]
					},
					"id": {
						"type": "string"
					},
					"alsoKnownAs": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"controller": {
						"type": "string"
					},
					"verificationMethod": {
						"items": {
							"$ref": "#/components/schemas/AriesKeys"
						},
						"type": "array"
					},
					"authentication": {
						"items": {
							"$ref": "#/components/schemas/AriesKeysOrString"
						},
						"type": "array"
					},
					"assertionMethod": {
						"items": {
							"$ref": "#/components/schemas/AriesKeysOrString"
						},
						"type": "array"
					},
					"keyAgreement": {
						"items": {
							"$ref": "#/components/schemas/AriesKeysOrString"
						},
						"type": "array"
					},
					"capabilityInvocation": {
						"items": {
							"$ref": "#/components/schemas/AriesKeysOrString"
						},
						"type": "array"
					},
					"capabilityDelegation": {
						"items": {
							"$ref": "#/components/schemas/AriesKeysOrString"
						},
						"type": "array"
					},
					"service": {
						"items": {
							"anyOf": [
								{
									"$ref": "#/components/schemas/W3cDidDocService"
								},
								{
									"$ref": "#/components/schemas/AriesDidDocService"
								}
							]
						},
						"type": "array"
					},
					"publicKey": {
						"items": {
							"$ref": "#/components/schemas/AriesDidDocPublicKey"
						},
						"type": "array"
					}
				},
				"required": [
					"@context",
					"id",
					"service"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionPatchOperation": {
				"enum": [
					"key_rollover",
					"key_remove"
				],
				"type": "string"
			},
			"PatchCredentialDefinitionRequest": {
				"properties": {
					"op": {
						"$ref": "#/components/schemas/CredentialDefinitionPatchOperation"
					},
					"deprecated_signing_key_id": {
						"type": "string"
					},
					"x5c": {
						"$ref": "#/components/schemas/CustomCertKeyPairRequest"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CredentialRole": {
				"description": "The agent's relationship to the credential.",
				"enum": [
					"issuer",
					"holder"
				],
				"type": "string",
				"example": "issuer"
			},
			"CredentialState": {
				"description": "Represents the state of a `IndyCredential`  on the agent.  The state of a credential changes depending on whether a holder or an issuer is viewing the credential.\nFor example, if a holder creates the credential request, they will see the state of the credential as `outbound_request`, whil the issuer will see `inbound_request`.",
				"enum": [
					"outbound_request",
					"inbound_request",
					"outbound_offer",
					"inbound_offer",
					"accepted",
					"rejected",
					"issued",
					"stored",
					"failed",
					"deleted"
				],
				"type": "string"
			},
			"LastCredentialStatus": {
				"enum": [
					"active",
					"suspended",
					"revoked"
				],
				"type": "string"
			},
			"CredentialMetadata": {
				"description": "Metadata about a credential for OID4VCI issuance.\nContains information extracted from the credential itself and the credential definition.",
				"properties": {
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The credential document type from the credential definition.\nFor SD-JWT this is the 'vct' claim, for mDocs this is the 'doctype'."
					},
					"last_credential_status": {
						"$ref": "#/components/schemas/LastCredentialStatus",
						"description": "The current status of the credential. Undefined if no status operation is registered.\nThis field is updated whenever the credential status is changed via the PATCH API."
					},
					"issue_date": {
						"type": "string",
						"format": "date-time",
						"description": "The issue date of the credential (nbf claim for SD-JWT, validFrom for mDocs)."
					},
					"expiry_date": {
						"type": "string",
						"format": "date-time",
						"description": "The expiry date of the credential (exp claim for SD-JWT, validUntil for mDocs)."
					}
				},
				"required": [
					"credential_document_type"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialInfo": {
				"description": "Agent Credential Information.",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "The identifier for the credential on the agent.",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"role": {
						"$ref": "#/components/schemas/CredentialRole",
						"description": "The agent's relationship to the credential."
					},
					"state": {
						"$ref": "#/components/schemas/CredentialState",
						"description": "The current state of the credential.\nThis field when updated will turn credential offers into stored credentials."
					},
					"proposal": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					},
					"preview": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					},
					"offer": {
						"properties": {
							"jsonld": {},
							"attributes": {
								"$ref": "#/components/schemas/CredentialAttributes"
							}
						},
						"type": "object",
						"description": "The attribute values being offered."
					},
					"schema_name": {
						"type": "string",
						"description": "The schema that the credential is based on.",
						"example": "drivers_license"
					},
					"schema_version": {
						"type": "string",
						"description": "The version of the schema.",
						"example": "1.0"
					},
					"schema_id": {
						"type": "string",
						"description": "Credential Schema id.",
						"example": "credschema1:1.0"
					},
					"cred_def_id": {
						"type": "string",
						"description": "The definition identifier for the credential.",
						"example": "jsonld:Citizen-didweb-1721368154288:0.0.4:deee3cdd-e31f-7901-8372-fb4345740799:ed25519"
					},
					"issuer_did": {
						"type": "string",
						"description": "The Issuer's public DID.",
						"example": "A4DXofjbeC97WZAHU5MVGK"
					},
					"format": {
						"type": "string",
						"description": "Format of the Credential.\n` \"jsonld\"`, `\"indy\"`"
					},
					"cred_json": {
						"description": "JSON object of the Credential."
					},
					"cred_cbor": {
						"description": "CBOR encoded Credential."
					},
					"timestamps": {
						"$ref": "#/components/schemas/TimeStamps",
						"description": "Timestamps associated with states of the credential."
					},
					"connection": {
						"$ref": "#/components/schemas/ConnectionInfo",
						"description": "Connections represent a channel for communication between two agents."
					},
					"aries_message": {
						"description": "Associated Aries Messaging."
					},
					"properties": {
						"$ref": "#/components/schemas/Properties",
						"description": "Extra metadata about the credential."
					},
					"credential_status": {
						"description": "The credentialStatus embedded into the credential containing entries for each of the status purposes provided. Only supported for JSONLD creds.\nIf only one status purpose exists, this is a single object, otherwise it is an array of objects."
					},
					"oid4vci_offer_id": {
						"type": "string",
						"description": "The id of the associated OID4VCI offer that this credential was issued from. Only set if this cred was issued via OID4VCI.\nOnly set on the issuer's copy of the credential record."
					},
					"metadata": {
						"$ref": "#/components/schemas/CredentialMetadata",
						"description": "Metadata about the credential for OID4VCI issuance. Only populated for credentials issued via OID4VCI."
					}
				},
				"required": [
					"owner_id",
					"id",
					"role",
					"state",
					"format",
					"connection"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateCredentialArgs": {
				"properties": {
					"ledger_name": {
						"type": "string",
						"example": "indy"
					},
					"schema_name": {
						"type": "string",
						"example": "schema001"
					},
					"schema_version": {
						"type": "string",
						"example": "1.0"
					},
					"schema_id": {
						"type": "string",
						"example": "schema001:1.0"
					},
					"cred_def_id": {
						"type": "string",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"credential_definition_id": {
						"type": "string",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"to": {
						"$ref": "#/components/schemas/ToConnection"
					},
					"comment": {
						"type": "string"
					},
					"state": {
						"$ref": "#/components/schemas/CredentialState"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"aries_version": {
						"type": "string"
					},
					"credential_type": {
						"$ref": "#/components/schemas/CredentialType"
					},
					"credential_proposal": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					},
					"attributes": {
						"$ref": "#/components/schemas/CredentialAttributes"
					},
					"credential_preview": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"UpdateCredentialArgs": {
				"properties": {
					"ledger_name": {
						"type": "string",
						"example": "indy"
					},
					"schema_name": {
						"type": "string",
						"example": "schema001"
					},
					"schema_version": {
						"type": "string",
						"example": "1.0"
					},
					"schema_id": {
						"type": "string",
						"example": "schema001:1.0"
					},
					"cred_def_id": {
						"type": "string",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"credential_definition_id": {
						"type": "string",
						"example": "CRG4orwzg21CmvhErsyyjk:3:CL:33:TAG1"
					},
					"comment": {
						"type": "string"
					},
					"attributes": {
						"$ref": "#/components/schemas/CredentialAttributes"
					},
					"credential_preview": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					},
					"properties": {
						"$ref": "#/components/schemas/Properties"
					},
					"state": {
						"$ref": "#/components/schemas/CredentialState"
					},
					"credential_proposal": {
						"$ref": "#/components/schemas/AriesCredentialPreview"
					}
				},
				"required": [
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"UpdateCredentialStatusArgs": {
				"properties": {
					"status_purpose": {
						"$ref": "#/components/schemas/CredentialStatusPurpose"
					},
					"status": {
						"type": "number",
						"format": "double"
					}
				},
				"required": [
					"status"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialSchemaList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialSchemaInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CreateCredentialSchemaArgs": {
				"description": "Create A V1 Credential Schema.",
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of Schema.",
						"example": "Schema001"
					},
					"version": {
						"type": "string",
						"description": "Version of Schema.",
						"example": "1.0"
					},
					"indy": {
						"properties": {
							"attrs": {
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						},
						"required": [
							"attrs"
						],
						"type": "object",
						"description": "An Indy Schema with attributes.\n`\"indy\": { \"attrs\": [ \"selection_attr1\", \"selection_attr2\", \"selection_attr3\" ] }`"
					},
					"jsonld": {
						"properties": {
							"contexts": {
								"items": {},
								"type": "array"
							}
						},
						"required": [
							"contexts"
						],
						"type": "object",
						"description": "A JSON-LD Credentials.\n`\"jsonld\": { \"contexts\": [ \"https://www.w3.org/2018/credentials/v1\", \"https://w3id.org/security/suites/ed25519-2020/v1\" , \"https://w3id.org/citizenship/v1\", \"https://schema.org/accountId\" ] }`"
					},
					"bbs": {
						"properties": {
							"contexts": {
								"items": {},
								"type": "array"
							}
						},
						"required": [
							"contexts"
						],
						"type": "object",
						"description": "A BBS Credentials.\n`\"bbs\": { \"contexts\": [ \"https://www.w3.org/2018/credentials/v1\", \"https://w3id.org/security/bbs/v1\" , \"https://w3id.org/citizenship/v1\", \"https://schema.org/accountId\" ] }`"
					},
					"attrs": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Schema with attributes.\n `\"attrs\": [ \"selection_attr1\", \"selection_attr2\", \"selection_attr3\" ]`"
					},
					"ledger_name": {
						"type": "string",
						"description": "Ledger Name",
						"example": "IndyLedger"
					}
				},
				"required": [
					"name",
					"version"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialSchemaV2List": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialSchemaV2Response"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialSchemaV2Request": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of Schema.",
						"example": "Schema001"
					},
					"version": {
						"type": "string",
						"description": "Version of Schema.",
						"example": "1.0"
					},
					"contexts": {
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"additionalProperties": false,
									"type": "object"
								}
							]
						},
						"type": "array",
						"description": "JSON-LD-formatted context resources. Can be strings that represent external resources or direct objects."
					},
					"schema": {
						"description": "The list of credential's attributes represented as a JSON schema of draft version 2020-12 or above.\nUsed to define attributes for SD-JWT formatted credentials.\nSee https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-04.html#name-schema-definition"
					}
				},
				"required": [
					"name",
					"version"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JsonWebKey": {
				"description": "JSON Web Key (JWK) interface as defined in RFC 7517",
				"properties": {
					"kty": {
						"type": "string",
						"description": "Key type"
					},
					"kid": {
						"type": "string",
						"description": "Key ID"
					},
					"alg": {
						"type": "string",
						"description": "Algorithm"
					},
					"crv": {
						"type": "string",
						"description": "Curve (for EC keys)"
					},
					"x": {
						"type": "string",
						"description": "X coordinate (for EC keys)"
					},
					"y": {
						"type": "string",
						"description": "Y coordinate (for EC keys)"
					},
					"n": {
						"type": "string",
						"description": "Modulus (for RSA keys)"
					},
					"e": {
						"type": "string",
						"description": "Exponent (for RSA keys)"
					}
				},
				"required": [
					"kty",
					"kid"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JsonWebKeySet": {
				"description": "JSON Web Key Set (JWKS) interface as defined in RFC 7517",
				"properties": {
					"keys": {
						"items": {
							"$ref": "#/components/schemas/JsonWebKey"
						},
						"type": "array",
						"description": "Array of JWK objects"
					}
				},
				"required": [
					"keys"
				],
				"type": "object",
				"additionalProperties": false
			},
			"JwtVcIssuerMetadata": {
				"description": "JWT VC Issuer Metadata as defined in section 5 of the SD-JWT-VC specification.\nThis metadata is used to retrieve the Issuer's public key using web-based resolution.",
				"properties": {
					"issuer": {
						"type": "string",
						"description": "REQUIRED. The Issuer identifier, which MUST be identical to the `iss` value in the JWT."
					},
					"jwks": {
						"$ref": "#/components/schemas/JsonWebKeySet",
						"description": "OPTIONAL: Issuer's JSON Web Key Set document value, which contains the Issuer's public keys.\nEither jwks or jwks_uri MUST be present."
					},
					"jwks_uri": {
						"type": "string",
						"description": "OPTIONAL: URI pointing to the Issuer's JSON Web Key Set document, which contains the Issuer's public keys.\nEither jwks or jwks_uri MUST be present."
					}
				},
				"required": [
					"issuer"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LedgerType": {
				"description": "The Ledger Type.",
				"enum": [
					"indy"
				],
				"type": "string",
				"example": "indy"
			},
			"TAAInfo": {
				"description": "\"TAA\" stands for \"TransactionAuthorAgreement\"\nDescription of the ways how the user may accept TAA.",
				"properties": {
					"text": {
						"type": "string",
						"example": "Example Agreement"
					},
					"version": {
						"type": "string",
						"example": "v1.0"
					},
					"digest": {
						"type": "string",
						"example": "TAA Digest"
					},
					"ratification_ts": {
						"type": "number",
						"format": "double",
						"example": 10
					}
				},
				"required": [
					"text",
					"version",
					"digest",
					"ratification_ts"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TAARequirement": {
				"description": "TransactionAuthorAgreement - Requirements",
				"properties": {
					"acceptance_mechanisms": {
						"properties": {},
						"additionalProperties": {
							"type": "string"
						},
						"type": "object",
						"description": "Description of the ways how the user may accept TAA."
					},
					"agreement": {
						"$ref": "#/components/schemas/TAAInfo"
					}
				},
				"required": [
					"acceptance_mechanisms",
					"agreement"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TAAAcceptance": {
				"properties": {
					"text": {
						"type": "string",
						"example": "Example Agreement"
					},
					"version": {
						"type": "string",
						"example": "v1.0"
					},
					"digest": {
						"type": "string",
						"example": "TAA Digest"
					},
					"ratification_ts": {
						"type": "number",
						"format": "double",
						"example": 10
					},
					"acceptance_mechanism": {
						"type": "string",
						"description": "Description of the ways how the user may accept TAA",
						"example": "Click Accept"
					},
					"acceptance_ts": {
						"type": "number",
						"format": "double",
						"example": 10
					}
				},
				"required": [
					"text",
					"version",
					"digest",
					"ratification_ts",
					"acceptance_mechanism",
					"acceptance_ts"
				],
				"type": "object",
				"additionalProperties": false
			},
			"LedgerInfo": {
				"description": "Ledger Information.",
				"properties": {
					"id": {
						"type": "string",
						"description": "id of the ledger.",
						"example": "local"
					},
					"type": {
						"$ref": "#/components/schemas/LedgerType"
					},
					"url": {
						"type": "string",
						"description": "Indy url.",
						"example": "http://hyperledgerindy:9730/sandbox/pool_transactions_genesis"
					},
					"genesis": {
						"type": "string",
						"description": "Initial genesis in the ledger.",
						"example": "ABCDEFIOU12345"
					},
					"transaction_author_agreement": {
						"properties": {
							"last_acceptance": {
								"$ref": "#/components/schemas/TAAAcceptance"
							},
							"last_requirement": {
								"$ref": "#/components/schemas/TAARequirement"
							}
						},
						"type": "object"
					}
				},
				"required": [
					"id",
					"type",
					"genesis",
					"transaction_author_agreement"
				],
				"type": "object",
				"additionalProperties": false
			},
			"GetAllLedgersResponse": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/LedgerInfo"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialStatusFormat": {
				"enum": [
					"W3CBitstringV1_0",
					"OAuthTokenV0_12"
				],
				"type": "string"
			},
			"TrustCfgLocalStatusListProviderResponse": {
				"properties": {
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used in credential definitions or any newly minted\ncredentials. Local status registries default to being deactivated."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"name": {
						"type": "string",
						"description": "The display name for this provider."
					},
					"supported_status_purposes": {
						"items": {
							"$ref": "#/components/schemas/CredentialStatusPurpose"
						},
						"type": "array",
						"description": "The supported status purposes."
					},
					"status_format": {
						"$ref": "#/components/schemas/CredentialStatusFormat",
						"description": "The expected credential status format from this provider."
					},
					"owner_id": {
						"type": "string"
					}
				},
				"required": [
					"activated",
					"id",
					"name",
					"supported_status_purposes",
					"status_format",
					"owner_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgLocalStatusListProviderUpdateRequest": {
				"properties": {
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used in credential definitions or any newly minted\ncredentials. Local status registries default to being deactivated."
					}
				},
				"required": [
					"activated"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderAuthBasic": {
				"properties": {
					"basic": {
						"properties": {
							"password": {
								"type": "string"
							},
							"username": {
								"type": "string"
							}
						},
						"required": [
							"password",
							"username"
						],
						"type": "object"
					}
				},
				"required": [
					"basic"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderAuthClientCreds": {
				"properties": {
					"clientCreds": {
						"properties": {
							"client_secret": {
								"type": "string"
							},
							"client_id": {
								"type": "string"
							},
							"op_base_url": {
								"type": "string"
							}
						},
						"required": [
							"client_secret",
							"client_id",
							"op_base_url"
						],
						"type": "object"
					}
				},
				"required": [
					"clientCreds"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderAuth": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderAuthBasic"
					},
					{
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderAuthClientCreds"
					}
				]
			},
			"TrustCfgRemoteStatusListProviderConnection": {
				"properties": {
					"base_url": {
						"type": "string",
						"description": "The base URL of the provider's service which implements the CSLM API contract."
					},
					"auth": {
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderAuth"
					}
				},
				"required": [
					"base_url",
					"auth"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderResponse": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this provider."
					},
					"supported_status_purposes": {
						"items": {
							"$ref": "#/components/schemas/CredentialStatusPurpose"
						},
						"type": "array",
						"description": "The supported status purposes."
					},
					"status_format": {
						"$ref": "#/components/schemas/CredentialStatusFormat",
						"description": "The expected credential status format from this provider."
					},
					"connection": {
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderConnection",
						"description": "Connection information for the remote provider."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used in credential definitions or any newly minted\ncredentials. If omitted, the configuration will default to activated."
					},
					"bypass_connection_test": {
						"type": "boolean",
						"description": "When set to true, the connection test will be bypassed during validation.\nWhen set to false or omitted, the connection test will be run."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"owner_id": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"supported_status_purposes",
					"status_format",
					"connection",
					"id",
					"owner_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this provider."
					},
					"supported_status_purposes": {
						"items": {
							"$ref": "#/components/schemas/CredentialStatusPurpose"
						},
						"type": "array",
						"description": "The supported status purposes."
					},
					"status_format": {
						"$ref": "#/components/schemas/CredentialStatusFormat",
						"description": "The expected credential status format from this provider."
					},
					"connection": {
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderConnection",
						"description": "Connection information for the remote provider."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used in credential definitions or any newly minted\ncredentials. If omitted, the configuration will default to activated."
					},
					"bypass_connection_test": {
						"type": "boolean",
						"description": "When set to true, the connection test will be bypassed during validation.\nWhen set to false or omitted, the connection test will be run."
					}
				},
				"required": [
					"name",
					"supported_status_purposes",
					"status_format",
					"connection"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustCfgRemoteStatusListProviderUpdateRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this provider."
					},
					"connection": {
						"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderConnection",
						"description": "Connection information for the remote provider."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used in credential definitions or any newly minted\ncredentials."
					},
					"bypass_connection_test": {
						"type": "boolean",
						"description": "When set to true, the connection test will be bypassed during validation.\nWhen set to false or omitted, the connection test will be run."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CredentialConfigurationTemplateIdEnum": {
				"enum": [
					"org.iso.18013.5.1.mDL",
					"org.iso.18013.5.1.mDL.aamva",
					"eu.europa.ec.eudi.pid.1_mdoc",
					"eu.europa.ec.eudi.pid.1_sdjwt",
					"org.iso.23220.photoid.1",
					"org.iso.23220.1.jp.mnc"
				],
				"type": "string"
			},
			"CredentialConfigurationDisplayInfo": {
				"properties": {
					"name": {
						"type": "string"
					},
					"description": {
						"type": "string"
					},
					"locale": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"description",
					"locale"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Pick_CredentialDefinitionV2Request.Exclude_keyofCredentialDefinitionV2Request.schema_id__": {
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2",
						"description": "The credential format to be minted.",
						"example": "mso_mdoc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The mdoc docType to use for this credential. This must be a single\nstring. It should follow the format of [Reverse Domain].[Domain Specific\nExtension].\nA list with a single string. This string maps to the Verifiable\nCredential Type (vct).\nA list of credential document types supported. The first must be\nVerifiableCredential. All strings should be resolvable in the schema's\ncontexts.",
						"example": [
							"org.iso.18013.5.1.mDL"
						]
					},
					"cryptographic_binding_methods": {
						"anyOf": [
							{
								"items": {
									"type": "string",
									"enum": [
										"cose_key"
									],
									"nullable": false
								},
								"type": "array"
							},
							{
								"items": {
									"type": "string",
									"enum": [
										"jwk"
									],
									"nullable": false
								},
								"type": "array"
							},
							{
								"items": {
									"type": "string",
									"enum": [
										"did:key"
									],
									"nullable": false
								},
								"type": "array"
							}
						],
						"description": "The method of cryptographic binding. For mdoc, this must be cose_key.\nThe method of cryptographic binding. If required for SD-JWT, this must be\njwk.\nThe method of cryptographic binding. If required for ldp_vc, this must be\ndid:key.",
						"example": [
							"cose_key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/KeyProofTypeV2",
						"description": "The key proof signing algorithm to support.\nIf cryptographic binding is in use, then the key proof signing algorithm in use.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"anyOf": [
							{
								"$ref": "#/components/schemas/MdocCredentialSigningAlgorithmV2"
							},
							{
								"$ref": "#/components/schemas/SdJwtCredentialSigningAlgorithmV2"
							},
							{
								"$ref": "#/components/schemas/LdpCredentialSigningAlgorithmV2"
							}
						],
						"description": "The credential signing algorithm in use.",
						"example": "ESP256"
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod",
						"description": "The issuer binding method to use. If one is not specified, a default of\nx5c will be used for mso_mdoc credentials.\nThe issuer binding method to use. If one is not specified, a default of\nx5c will be used for dc+sd-jwt credentials.\nThe issuer binding method to use. If one is not specified, a default of\ndid:web will be used for ldp_vc credentials.",
						"example": "x5c"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"Omit_CredentialDefinitionV2Request.schema_id_": {
				"$ref": "#/components/schemas/Pick_CredentialDefinitionV2Request.Exclude_keyofCredentialDefinitionV2Request.schema_id__",
				"description": "Construct a type with the properties of T except for those in type K."
			},
			"CredentialConfigurationTemplateResponse": {
				"properties": {
					"id": {
						"$ref": "#/components/schemas/CredentialConfigurationTemplateIdEnum",
						"description": "The identifier for the template, matching the credential_document_type in\nthe credential definitions endpoint."
					},
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Request",
						"description": "The common credential schema used by the template."
					},
					"definitions": {
						"items": {
							"$ref": "#/components/schemas/Omit_CredentialDefinitionV2Request.schema_id_"
						},
						"type": "array",
						"description": "The credential definitions used by the template.\nThese match CredentialDefinitionV2Request but without schema_id attribute."
					}
				},
				"required": [
					"id",
					"display",
					"schema",
					"definitions"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedEntityType": {
				"enum": [
					"issuer",
					"credential_status_provider"
				],
				"type": "string"
			},
			"TrustRegistryResponse": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					},
					"entityType": {
						"$ref": "#/components/schemas/TrustedEntityType",
						"description": "The type of entity this registry contains."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"owner_id": {
						"type": "string"
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "The last time this registry was updated."
					}
				},
				"required": [
					"name",
					"activated",
					"entityType",
					"id",
					"owner_id",
					"modified_at"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustRegistryList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/TrustRegistryResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustRegistryRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					},
					"entityType": {
						"$ref": "#/components/schemas/TrustedEntityType",
						"description": "The type of entity this registry contains."
					}
				},
				"required": [
					"name",
					"activated",
					"entityType"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedIssuerEntityResponse": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the entity."
					},
					"identifier": {
						"type": "string",
						"description": "Optional identifier for the entity."
					},
					"certPEM": {
						"type": "string",
						"description": "Optional certificate in PEM format."
					},
					"registryId": {
						"type": "string",
						"description": "The ID of the trust registry this entity belongs to."
					},
					"registryActivated": {
						"type": "boolean",
						"description": "Whether this entity is activated."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"certNotBefore": {
						"type": "string",
						"format": "date-time",
						"description": "Optional certificate not before date."
					},
					"certNotAfter": {
						"type": "string",
						"format": "date-time",
						"description": "Optional certificate not after date."
					},
					"docType": {
						"type": "string",
						"description": "Optional document type for the entity."
					}
				},
				"required": [
					"name",
					"registryId",
					"registryActivated",
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedCredentialStatusProviderEntityResponse": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the entity."
					},
					"identifier": {
						"type": "string",
						"description": "Optional identifier for the entity."
					},
					"certPEM": {
						"type": "string",
						"description": "Optional certificate in PEM format."
					},
					"registryId": {
						"type": "string",
						"description": "The ID of the trust registry this entity belongs to."
					},
					"registryActivated": {
						"type": "boolean",
						"description": "Whether this entity is activated."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"certNotBefore": {
						"type": "string",
						"format": "date-time",
						"description": "Optional certificate not before date."
					},
					"certNotAfter": {
						"type": "string",
						"format": "date-time",
						"description": "Optional certificate not after date."
					}
				},
				"required": [
					"name",
					"registryId",
					"registryActivated",
					"id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedEntityAPIResponse": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/TrustedIssuerEntityResponse"
					},
					{
						"$ref": "#/components/schemas/TrustedCredentialStatusProviderEntityResponse"
					}
				]
			},
			"TrustedIssuerEntityAPIRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the entity."
					},
					"identifier": {
						"type": "string",
						"description": "Optional identifier for the entity."
					},
					"certPEM": {
						"type": "string",
						"description": "Optional certificate in PEM format."
					},
					"docType": {
						"type": "string",
						"description": "Optional document type for the entity."
					}
				},
				"required": [
					"name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedCredentialStatusProviderEntityAPIRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the entity."
					},
					"identifier": {
						"type": "string",
						"description": "Optional identifier for the entity."
					},
					"certPEM": {
						"type": "string",
						"description": "Optional certificate in PEM format."
					}
				},
				"required": [
					"name"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedEntityAPIRequest": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/TrustedIssuerEntityAPIRequest"
					},
					{
						"$ref": "#/components/schemas/TrustedCredentialStatusProviderEntityAPIRequest"
					}
				]
			},
			"VicalPublishResponse": {
				"description": "Response body for VICAL publish operations when system generates certificates",
				"properties": {
					"ca_cert": {
						"type": "string",
						"description": "The system-generated CA certificate in PEM format"
					}
				},
				"required": [
					"ca_cert"
				],
				"type": "object",
				"additionalProperties": false
			},
			"VicalPublishRequest": {
				"description": "Request body for VICAL publish operations",
				"properties": {
					"op": {
						"type": "string",
						"enum": [
							"publish_vical",
							"unpublish_vical"
						],
						"description": "The operation to perform: either \"publish_vical\" or \"unpublish_vical\"."
					},
					"vical_signing_certificate": {
						"type": "string",
						"description": "Optional PEM-encoded X.509 certificate for VICAL signing (required if\nvical_signing_private_key is provided). If not provided, a\nsystem-generated certificate will be used."
					},
					"vical_signing_private_key": {
						"type": "string",
						"description": "Optional PEM-encoded private key for VICAL signing (required if\nvical_signing_certificate is provided). If not provided, a\nsystem-generated certificate will be used."
					}
				},
				"required": [
					"op"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Pick_CredentialDefinitionV2RequestMdoc.Exclude_keyofCredentialDefinitionV2RequestMdoc.schema_id__": {
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.MSO_MDOC",
						"description": "The credential format to be minted.",
						"example": "mso_mdoc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The mdoc docType to use for this credential. This must be a single\nstring. It should follow the format of [Reverse Domain].[Domain Specific\nExtension].",
						"example": [
							"org.iso.18013.5.1.mDL"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"cose_key"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. For mdoc, this must be cose_key.",
						"example": [
							"cose_key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/JwtKeyProofTypeV2",
						"description": "The key proof signing algorithm to support.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/MdocCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "ESP256"
					},
					"x5c": {
						"$ref": "#/components/schemas/CustomCertKeyPairRequest",
						"description": "Optional specification of a Document Signer Certificate and private key\nto use when signing credentials. If no custom key material is specified,\nthe service will generate its own key material for this definition."
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod.X5C",
						"description": "The issuer binding method to use. If one is not specified, a default of\nx5c will be used for mso_mdoc credentials.",
						"example": "x5c"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"cryptographic_binding_methods",
					"key_proof_types",
					"credential_signing_algorithm"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"Omit_CredentialDefinitionV2RequestMdoc.schema_id_": {
				"$ref": "#/components/schemas/Pick_CredentialDefinitionV2RequestMdoc.Exclude_keyofCredentialDefinitionV2RequestMdoc.schema_id__",
				"description": "Construct a type with the properties of T except for those in type K."
			},
			"Pick_CredentialDefinitionV2RequestSdJwt.Exclude_keyofCredentialDefinitionV2RequestSdJwt.schema_id__": {
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.SDJWT",
						"description": "The credential format to be minted.",
						"example": "dc+sd-jwt"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list with a single string. This string maps to the Verifiable\nCredential Type (vct).",
						"example": [
							"urn:eudi:pid:de:1"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"jwk"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. If required for SD-JWT, this must be\njwk.",
						"example": [
							"jwk"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/JwtKeyProofTypeV2",
						"description": "The key proof signing algorithm to support.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/SdJwtCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "EdDSA"
					},
					"x5c": {
						"$ref": "#/components/schemas/CustomCertKeyPairRequest",
						"description": "Optional specification of a certificate and private key to use when\nsigning credentials. If no custom key material is specified, the service\nwill generate its own key material for this definition."
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod",
						"description": "The issuer binding method to use. If one is not specified, a default of\nx5c will be used for dc+sd-jwt credentials.",
						"example": "x5c"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"Omit_CredentialDefinitionV2RequestSdJwt.schema_id_": {
				"$ref": "#/components/schemas/Pick_CredentialDefinitionV2RequestSdJwt.Exclude_keyofCredentialDefinitionV2RequestSdJwt.schema_id__",
				"description": "Construct a type with the properties of T except for those in type K."
			},
			"Pick_CredentialDefinitionV2RequestLdpVc.Exclude_keyofCredentialDefinitionV2RequestLdpVc.schema_id__": {
				"properties": {
					"credential_format": {
						"$ref": "#/components/schemas/CredentialFormatV2.JSONLD",
						"description": "The credential format to be minted.",
						"example": "ldp_vc"
					},
					"credential_document_type": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "A list of credential document types supported. The first must be\nVerifiableCredential. All strings should be resolvable in the schema's\ncontexts.",
						"example": [
							"VerifiableCredential",
							"PermanentResidentCard"
						]
					},
					"cryptographic_binding_methods": {
						"items": {
							"type": "string",
							"enum": [
								"did:key"
							],
							"nullable": false
						},
						"type": "array",
						"description": "The method of cryptographic binding. If required for ldp_vc, this must be\ndid:key.",
						"example": [
							"did:key"
						]
					},
					"key_proof_types": {
						"$ref": "#/components/schemas/KeyProofTypeV2",
						"description": "If cryptographic binding is in use, then the key proof signing algorithm in use.",
						"example": [
							"jwt"
						]
					},
					"credential_signing_algorithm": {
						"$ref": "#/components/schemas/LdpCredentialSigningAlgorithmV2",
						"description": "The credential signing algorithm in use.",
						"example": "eddsa-rdfc-2022"
					},
					"issuer_binding_method": {
						"$ref": "#/components/schemas/IssuerBindingMethod.DID_WEB",
						"description": "The issuer binding method to use. If one is not specified, a default of\ndid:web will be used for ldp_vc credentials.",
						"example": "did:web"
					},
					"credential_status_provider": {
						"$ref": "#/components/schemas/CredentialStatusProvider",
						"description": "The credential status provider to enable credential status management with.",
						"example": {
							"id": "79d219ee-6da8-45b1-9920-01bb901486c8",
							"enabled_status_purposes": [
								"revocation",
								"suspension"
							]
						}
					},
					"credential_validity_period": {
						"$ref": "#/components/schemas/CredentialValidityPeriod",
						"description": "Configuration related to setting an expiry date for credentials issued from this definition. If not set,\nissued credentials (other than mdoc, which will have a default validity of 1 year) have no expiry date.\nThis value can be overridden for an individual credential offer."
					}
				},
				"required": [
					"credential_format",
					"credential_document_type",
					"credential_signing_algorithm"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"Omit_CredentialDefinitionV2RequestLdpVc.schema_id_": {
				"$ref": "#/components/schemas/Pick_CredentialDefinitionV2RequestLdpVc.Exclude_keyofCredentialDefinitionV2RequestLdpVc.schema_id__",
				"description": "Construct a type with the properties of T except for those in type K."
			},
			"CredentialConfigurationCredentialDefinition": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/Omit_CredentialDefinitionV2RequestMdoc.schema_id_"
					},
					{
						"$ref": "#/components/schemas/Omit_CredentialDefinitionV2RequestSdJwt.schema_id_"
					},
					{
						"$ref": "#/components/schemas/Omit_CredentialDefinitionV2RequestLdpVc.schema_id_"
					}
				]
			},
			"CredentialConfigurationState": {
				"enum": [
					"draft",
					"published"
				],
				"type": "string"
			},
			"CredentialConfigurationResponse": {
				"properties": {
					"template_id": {
						"$ref": "#/components/schemas/CredentialConfigurationTemplateIdEnum",
						"description": "The id of the template that this credential configuration was created from."
					},
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Request",
						"description": "The common credential schema used by the credential configuration."
					},
					"definitions": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationCredentialDefinition"
						},
						"type": "array",
						"description": "The credential definitions used by the credential configuration.\nThese match CredentialDefinitionV2Request but without schema_id attribute."
					},
					"state": {
						"$ref": "#/components/schemas/CredentialConfigurationState",
						"description": "The current state of the credential configuration."
					},
					"created_schema_id": {
						"type": "string",
						"description": "The ID of created schema upon updating this credential configuration\nto state PUBLISHED."
					},
					"created_definition_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The IDs of created definitions upon updating this credential configuration\nto state PUBLISHED."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"owner_id": {
						"type": "string"
					}
				},
				"required": [
					"id",
					"owner_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialConfigurationList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialConfigurationRequest": {
				"properties": {
					"template_id": {
						"$ref": "#/components/schemas/CredentialConfigurationTemplateIdEnum",
						"description": "The id of the template that this credential configuration was created from."
					},
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Request",
						"description": "The common credential schema used by the credential configuration."
					},
					"definitions": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationCredentialDefinition"
						},
						"type": "array",
						"description": "The credential definitions used by the credential configuration.\nThese match CredentialDefinitionV2Request but without schema_id attribute."
					},
					"state": {
						"$ref": "#/components/schemas/CredentialConfigurationState",
						"description": "The current state of the credential configuration."
					},
					"created_schema_id": {
						"type": "string",
						"description": "The ID of created schema upon updating this credential configuration\nto state PUBLISHED."
					},
					"created_definition_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The IDs of created definitions upon updating this credential configuration\nto state PUBLISHED."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Pick_CredentialConfigurationRequest.Exclude_keyofCredentialConfigurationRequest.template_id__": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Request",
						"description": "The common credential schema used by the credential configuration."
					},
					"definitions": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationCredentialDefinition"
						},
						"type": "array",
						"description": "The credential definitions used by the credential configuration.\nThese match CredentialDefinitionV2Request but without schema_id attribute."
					},
					"state": {
						"$ref": "#/components/schemas/CredentialConfigurationState",
						"description": "The current state of the credential configuration."
					},
					"created_schema_id": {
						"type": "string",
						"description": "The ID of created schema upon updating this credential configuration\nto state PUBLISHED."
					},
					"created_definition_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The IDs of created definitions upon updating this credential configuration\nto state PUBLISHED."
					}
				},
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"CredentialConfigurationUpdateRequest": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"schema": {
						"$ref": "#/components/schemas/CredentialSchemaV2Request",
						"description": "The common credential schema used by the credential configuration."
					},
					"definitions": {
						"items": {
							"$ref": "#/components/schemas/CredentialConfigurationCredentialDefinition"
						},
						"type": "array",
						"description": "The credential definitions used by the credential configuration.\nThese match CredentialDefinitionV2Request but without schema_id attribute."
					},
					"state": {
						"$ref": "#/components/schemas/CredentialConfigurationState",
						"description": "The current state of the credential configuration."
					},
					"created_schema_id": {
						"type": "string",
						"description": "The ID of created schema upon updating this credential configuration\nto state PUBLISHED."
					},
					"created_definition_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "The IDs of created definitions upon updating this credential configuration\nto state PUBLISHED."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionOptionsDisplayInfo": {
				"properties": {
					"name": {
						"type": "string"
					},
					"description": {
						"type": "string"
					},
					"locale": {
						"type": "string"
					}
				},
				"required": [
					"name",
					"description",
					"locale"
				],
				"type": "object",
				"additionalProperties": false
			},
			"CredentialDefinitionOptionsResponse": {
				"properties": {
					"display": {
						"items": {
							"$ref": "#/components/schemas/CredentialDefinitionOptionsDisplayInfo"
						},
						"type": "array",
						"description": "Display attributes structured in a similar fashion to the OID4VCI spec."
					},
					"recommended": {
						"type": "boolean",
						"description": "Whether this credential definition is a recommended format."
					},
					"supportsSelectiveDisclosure": {
						"type": "boolean",
						"description": "Whether this credential definition supports selective disclosure."
					},
					"schema": {
						"description": "The validation JSON schema for this credential definition."
					}
				},
				"required": [
					"display",
					"recommended",
					"supportsSelectiveDisclosure",
					"schema"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RemoteRegistryType": {
				"description": "Enum for remote registry types",
				"enum": [
					"vical"
				],
				"type": "string"
			},
			"TrustedEntityType.ISSUER": {
				"enum": [
					"issuer"
				],
				"type": "string"
			},
			"VicalConfig": {
				"description": "Interface for VICAL configuration",
				"properties": {
					"ca_cert": {
						"type": "string",
						"description": "Optional CA certificate to use for trusting the VICAL signed content. If\nset, this CA is expected to sign the certificate included in the x5chain\nheader of the VICAL object. If omitted, the certificate in the x5chain\nwill only be used to verify the integrity of the VICAL object and not\nverify the authenticity of the data."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Pick_TrustRegistryResponse.Exclude_keyofTrustRegistryResponse.entityType__": {
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "The last time this registry was updated."
					},
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					}
				},
				"required": [
					"owner_id",
					"modified_at",
					"name",
					"activated",
					"id"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"RemoteTrustRegistryResponse": {
				"description": "Response interface for remote trust registry",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "The last time this registry was updated."
					},
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					},
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"endpoint": {
						"type": "string",
						"description": "The endpoint of the remote registry"
					},
					"registryType": {
						"$ref": "#/components/schemas/RemoteRegistryType",
						"description": "The type of remote registry"
					},
					"entityType": {
						"$ref": "#/components/schemas/TrustedEntityType.ISSUER",
						"description": "The type of entity this registry contains.\nOnly ISSUER is supported for remote registries."
					},
					"vicalConfig": {
						"$ref": "#/components/schemas/VicalConfig",
						"description": "For VICAL remote registries, the configuration"
					}
				},
				"required": [
					"owner_id",
					"modified_at",
					"name",
					"activated",
					"id",
					"endpoint",
					"registryType",
					"entityType"
				],
				"type": "object",
				"additionalProperties": false
			},
			"RemoteTrustRegistryList": {
				"description": "List interface for remote trust registries",
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/RemoteTrustRegistryResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"Pick_TrustRegistryRequest.Exclude_keyofTrustRegistryRequest.entityType__": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					}
				},
				"required": [
					"name",
					"activated"
				],
				"type": "object",
				"description": "From T, pick a set of properties whose keys are in the union K"
			},
			"RemoteTrustRegistryRequest": {
				"description": "Request interface for creating a remote trust registry",
				"properties": {
					"name": {
						"type": "string",
						"description": "The display name for this registry."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this registry is activated."
					},
					"endpoint": {
						"type": "string",
						"description": "The endpoint of the remote registry"
					},
					"registryType": {
						"$ref": "#/components/schemas/RemoteRegistryType",
						"description": "The type of remote registry"
					},
					"entityType": {
						"$ref": "#/components/schemas/TrustedEntityType.ISSUER",
						"description": "The type of entity this registry contains.\nOnly ISSUER is supported for remote registries."
					},
					"vicalConfig": {
						"$ref": "#/components/schemas/VicalConfig",
						"description": "For VICAL remote registries, the configuration"
					}
				},
				"required": [
					"name",
					"activated",
					"endpoint",
					"registryType",
					"entityType"
				],
				"type": "object",
				"additionalProperties": false
			},
			"TrustedIssuerEntityList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/TrustedIssuerEntityResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionRemoteConfig": {
				"properties": {
					"introspect_sub_path": {
						"type": "string",
						"description": "The path which is used to introspect an access token."
					},
					"client_id": {
						"type": "string",
						"description": "The client identifier used in the introspection."
					},
					"client_secret": {
						"type": "string",
						"description": "The client secret used in the introspection.\nNote: This will be filtered out in responses for security."
					}
				},
				"required": [
					"introspect_sub_path",
					"client_id",
					"client_secret"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionLocalConfig": {
				"properties": {
					"jwks_sub_path": {
						"type": "string",
						"description": "The path which is used to retrieve the keys for local token introspection."
					}
				},
				"required": [
					"jwks_sub_path"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionInternalConfig": {
				"properties": {},
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionOid4vciConfig": {
				"properties": {
					"default_wallet_client_id": {
						"type": "string",
						"description": "If present, this value will be set as client_id in an OID4VCI credential\noffer returned to an unknown wallet acting as the relying party in an\nOID4VCI offer."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionClaim": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of the claim."
					},
					"value": {
						"type": "string",
						"description": "The required value of the claim."
					}
				},
				"required": [
					"name",
					"value"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionProviderConfig": {
				"properties": {
					"name": {
						"type": "string",
						"description": "The name of this provider. Must be unique."
					},
					"endpoint": {
						"type": "string",
						"description": "The base URL of the OAuth2 provider."
					},
					"ca_cert": {
						"type": "string",
						"description": "The CA certificate for the OAuth2 provider."
					},
					"type": {
						"type": "string",
						"enum": [
							"local",
							"remote",
							"internal"
						],
						"description": "The type of introspection which will be used."
					},
					"remote": {
						"$ref": "#/components/schemas/AuthIntrospectionRemoteConfig",
						"description": "Configuration details associated with remote introspection."
					},
					"local": {
						"$ref": "#/components/schemas/AuthIntrospectionLocalConfig",
						"description": "Configuration details associated with local introspection."
					},
					"internal": {
						"$ref": "#/components/schemas/AuthIntrospectionInternalConfig",
						"description": "Configuration details associated with internal ISV platform authentication."
					},
					"oid4vci": {
						"$ref": "#/components/schemas/AuthIntrospectionOid4vciConfig",
						"description": "Configuration details related to this provider's support as an OID4VCI Authorization Server."
					},
					"claims": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionClaim"
						},
						"type": "array",
						"description": "A list of claims which must be present in the OAuth token."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used for token introspection."
					}
				},
				"required": [
					"name",
					"endpoint",
					"type",
					"activated"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionCacheConfig": {
				"properties": {
					"max_entries": {
						"type": "number",
						"format": "double",
						"description": "The maximum number of entries which will be stored in the cache."
					},
					"max_age": {
						"type": "number",
						"format": "double",
						"description": "The maximum length of time, in seconds, that an entry will be stored in the cache."
					}
				},
				"required": [
					"max_entries",
					"max_age"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionConfigResponse": {
				"properties": {
					"providers": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionProviderConfig"
						},
						"type": "array",
						"description": "Configuration details for OAuth introspection providers."
					},
					"cache": {
						"$ref": "#/components/schemas/AuthIntrospectionCacheConfig",
						"description": "Configuration details for the local caching of verified access tokens."
					}
				},
				"required": [
					"providers",
					"cache"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionProviderResponse": {
				"description": "Unified Response Interface (exposed in Swagger)\nSingle response interface that includes all types\nDocumented in Swagger - shows \"internal\" as possible type in responses\nBut \"internal\" cannot be created via public API (not in request interface)",
				"properties": {
					"id": {
						"type": "string",
						"description": "The unique, auto-generated UUID of this record which is produced\nautomatically by the database."
					},
					"name": {
						"type": "string"
					},
					"endpoint": {
						"type": "string"
					},
					"ca_cert": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"local",
							"remote",
							"internal"
						]
					},
					"remote": {
						"$ref": "#/components/schemas/AuthIntrospectionRemoteConfig"
					},
					"local": {
						"$ref": "#/components/schemas/AuthIntrospectionLocalConfig"
					},
					"internal": {
						"$ref": "#/components/schemas/AuthIntrospectionInternalConfig"
					},
					"oid4vci": {
						"$ref": "#/components/schemas/AuthIntrospectionOid4vciConfig"
					},
					"claims": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionClaim"
						},
						"type": "array"
					},
					"activated": {
						"type": "boolean"
					}
				},
				"required": [
					"id",
					"name",
					"endpoint",
					"type",
					"activated"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionProviderList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionProviderResponse"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionProviderRequest": {
				"description": "Public API Request Interface (exposed in Swagger)\nUsed for CREATE/UPDATE operations via public API\nDoes NOT include \"internal\" type - prevents creation via public API",
				"properties": {
					"name": {
						"type": "string"
					},
					"endpoint": {
						"type": "string"
					},
					"ca_cert": {
						"type": "string"
					},
					"type": {
						"type": "string",
						"enum": [
							"local",
							"remote"
						]
					},
					"remote": {
						"$ref": "#/components/schemas/AuthIntrospectionRemoteConfig"
					},
					"local": {
						"$ref": "#/components/schemas/AuthIntrospectionLocalConfig"
					},
					"oid4vci": {
						"$ref": "#/components/schemas/AuthIntrospectionOid4vciConfig"
					},
					"claims": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionClaim"
						},
						"type": "array"
					},
					"activated": {
						"type": "boolean"
					}
				},
				"required": [
					"name",
					"endpoint",
					"type",
					"activated"
				],
				"type": "object",
				"additionalProperties": false
			},
			"AuthIntrospectionProviderUpdateRequest": {
				"description": "Public API Update Request Interface\nUsed for UPDATE operations via public API\nDoes NOT include internal config - prevents modification via public API",
				"properties": {
					"endpoint": {
						"type": "string",
						"description": "The base URL of the OAuth2 provider."
					},
					"ca_cert": {
						"type": "string",
						"description": "The CA certificate for the OAuth2 provider."
					},
					"remote": {
						"$ref": "#/components/schemas/AuthIntrospectionRemoteConfig",
						"description": "Configuration details associated with remote introspection."
					},
					"local": {
						"$ref": "#/components/schemas/AuthIntrospectionLocalConfig",
						"description": "Configuration details associated with local introspection."
					},
					"oid4vci": {
						"$ref": "#/components/schemas/AuthIntrospectionOid4vciConfig",
						"description": "Configuration details related to this provider's support as an OID4VCI Authorization Server."
					},
					"claims": {
						"items": {
							"$ref": "#/components/schemas/AuthIntrospectionClaim"
						},
						"type": "array",
						"description": "A list of claims which must be present in the OAuth token."
					},
					"activated": {
						"type": "boolean",
						"description": "Whether this provider is currently active or not. A deactivated provider\nwill not be able to be used for token introspection."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPRequestUriMethod": {
				"description": "HTTP methods supported for request_uri parameter",
				"enum": [
					"POST",
					"GET"
				],
				"type": "string"
			},
			"JWKSet": {
				"properties": {
					"keys": {
						"items": {
							"$ref": "#/components/schemas/JWK"
						},
						"type": "array"
					}
				},
				"required": [
					"keys"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPVerifierExchangeMetadata": {
				"description": "The verifier/client metadata that the verifier sends to the wallet.",
				"properties": {
					"software_id": {
						"type": "string",
						"description": "Unique ecosystem identifier for the verifier\nDefaults to \"https://{host}/{path_prefix}/v1.0/diagency/trust/anchor/{agent_id}\""
					},
					"software_version": {
						"type": "string",
						"description": "Optional version identifier for the client software"
					},
					"response_types": {
						"items": {
							"$ref": "#/components/schemas/OID4VPResponseType"
						},
						"type": "array",
						"description": "Response types supported\nDefaults to [\"vp_token\"]"
					},
					"vp_formats_supported": {
						"$ref": "#/components/schemas/OID4VPFormatsSupported",
						"description": "Supported VP formats"
					},
					"verifier_info": {
						"items": {
							"$ref": "#/components/schemas/OID4VPVerifierInfo"
						},
						"type": "array",
						"description": "Optional verifier attestation information"
					},
					"tos_uri": {
						"type": "string",
						"description": "Optional URL to terms of service"
					},
					"policy_uri": {
						"type": "string",
						"description": "Optional URL to privacy policy"
					},
					"jwks": {
						"$ref": "#/components/schemas/JWKSet",
						"description": "Public keys used by the verifier acting as an OAuth client.\nThese keys will typically be exchange session ephemeral keys.\nThese keys are used by the wallet to encrypt authorization\nresponses containing the \"vp_token\"."
					},
					"encrypted_response_enc_values_supported": {
						"items": {
							"$ref": "#/components/schemas/OID4VPAznResponseEncryptionEncValues"
						},
						"type": "array",
						"description": "Supported encryption algorithms for encrypted responses sent from the wallet.\nThis informs the wallet about the values supported by the verifier for\nencrypted vp_token responses.\n\nApplicable only when response_mode is \"direct_post.jwt\".  It will be ignored\notherwise.\n\nDefault is \"A256GCM\""
					},
					"request_object_signing_alg": {
						"$ref": "#/components/schemas/OID4VPAznRequestSigAlgValues",
						"description": "Defined in JWT Secured Authorization request spec: https://www.rfc-editor.org/rfc/rfc9101.html#section-4\n\nThe signature algorithm the verifier will use to sign the authorization request\nJWT.\n\nApplicable when request_mode is \"by_value_jwt\" or \"by_reference_jwt\".  Additionally,\nIf set when response_mode is \"direct_post.jwt\", then the authorization request will\nbe signed and then encrypted.\n\nThe default is \"ES256\"."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPBase64TransactionDataArray": {
				"items": {
					"type": "string"
				},
				"type": "array"
			},
			"OID4VPAuthorizationRequest": {
				"description": "OpenID4VP Authorization Request as defined in OpenID for Verifiable Presentations specification\nhttps://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-authorization-request\n\nThis interface represents a verifier's authorization request to a wallet, which is used to\nrequest the presentation of verifiable credentials.",
				"properties": {
					"response_type": {
						"type": "string",
						"enum": [
							"vp_token"
						],
						"nullable": false,
						"description": "REQUIRED. The response type for OpenID4VP requests.\nMust be set to \"vp_token\" to request verifiable presentations."
					},
					"client_id": {
						"type": "string",
						"description": "REQUIRED. The client identifier for the verifier.\nMay include a Client Identifier Prefix (e.g., \"redirect_uri:\", \"x509_hash:\")\nthat determines how the wallet should interpret and validate the client."
					},
					"redirect_uri": {
						"$ref": "#/components/schemas/url.URL",
						"description": "OPTIONAL. The URI to redirect to after the wallet processes the request.\nUsed with response modes that involve redirects (e.g., \"fragment\")."
					},
					"response_uri": {
						"$ref": "#/components/schemas/url.URL",
						"description": "OPTIONAL. The URI where the wallet should POST the response.\nUsed with response mode \"direct_post\" or \"direct_post.jwt\".\nMust not be present if redirect_uri is present."
					},
					"request_uri": {
						"$ref": "#/components/schemas/url.URL",
						"description": "OPTIONAL. URI from which the wallet can retrieve the full request object.\nUsed to keep the initial request small, especially for QR codes."
					},
					"request_uri_method": {
						"$ref": "#/components/schemas/OID4VPRequestUriMethod",
						"description": "OPTIONAL. HTTP method to use when retrieving the request object.\nValues can be \"GET\" (default) or \"POST\"."
					},
					"response_mode": {
						"$ref": "#/components/schemas/OID4VPResponseMode",
						"description": "REQUIRED. Determines how the authorization response is returned.\nValues include \"fragment\", \"direct_post\", or \"direct_post.jwt\"."
					},
					"nonce": {
						"type": "string",
						"description": "REQUIRED for requests with cryptographic holder binding.\nA cryptographically random value used to prevent replay attacks\nand to bind the presentation to this specific transaction."
					},
					"wallet_nonce": {
						"type": "string",
						"description": "OPTIONAL. A value provided by the wallet to mitigate replay attacks.\nWhen received, the verifier must include this value in the signed\nauthorization request object."
					},
					"scope": {
						"type": "string",
						"description": "OPTIONAL. Space-delimited list of scope values.\nCan be used as an alternative to dcql_query to request presentations\nusing predefined scope values that map to DCQL queries."
					},
					"dcql_query": {
						"$ref": "#/components/schemas/DcqlQuery",
						"description": "OPTIONAL. Digital Credentials Query Language (DCQL) object that specifies\nthe requested credentials and claims. Either dcql_query or scope must be present."
					},
					"client_metadata": {
						"$ref": "#/components/schemas/OID4VPVerifierExchangeMetadata",
						"description": "OPTIONAL. Object containing verifier metadata parameters.\nUsed when the client is not pre-registered with the wallet."
					},
					"state": {
						"type": "string",
						"description": "REQUIRED. Opaque value used to maintain state between request and response.\nUsed to prevent cross-site request forgery and to correlate responses."
					},
					"transaction_data": {
						"$ref": "#/components/schemas/OID4VPBase64TransactionDataArray",
						"description": "OPTIONAL. Non-empty array of strings, where each string is a base64url-encoded\nJSON object that contains a typed parameter set with details about the\ntransaction that the Verifier is requesting the End-User to authorize."
					},
					"verifier_info": {
						"items": {
							"$ref": "#/components/schemas/OID4VPVerifierInfo"
						},
						"type": "array",
						"description": "OPTIONAL. Array of attestations about the verifier relevant to the credential request.\nMay include verifier metadata, policies, trust status, or authorizations."
					}
				},
				"required": [
					"response_type",
					"client_id",
					"response_mode",
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPWalletMetadataVPFormatMsoMdoc": {
				"properties": {
					"issuerauth_alg_values": {
						"items": {
							"type": "number",
							"format": "double"
						},
						"type": "array"
					},
					"deviceauth_alg_values": {
						"items": {
							"type": "number",
							"format": "double"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPWalletMetadataFormatSdJwt": {
				"properties": {
					"sd-jwt_alg_values": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"kb-jwt_alg_values": {
						"items": {
							"type": "string"
						},
						"type": "array"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPWalletMetataVPFormatsSupported": {
				"properties": {
					"mso_mdoc": {
						"$ref": "#/components/schemas/OID4VPWalletMetadataVPFormatMsoMdoc"
					},
					"dc+sd-jwt": {
						"$ref": "#/components/schemas/OID4VPWalletMetadataFormatSdJwt"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"WalletMetadata": {
				"description": "Wallet Metadata as defined in OpenID4VP specification and RFC 8414\nhttps://openid.net/specs/openid-4-verifiable-presentations-1_0.html#as_metadata_parameters\nhttps://www.rfc-editor.org/rfc/rfc8414.html#section-2",
				"properties": {
					"vp_formats_supported": {
						"$ref": "#/components/schemas/OID4VPWalletMetataVPFormatsSupported",
						"description": "REQUIRED. An object containing a list of name/value pairs, where the name is a Credential Format Identifier\nand the value defines format-specific parameters that a Wallet supports."
					},
					"client_id_prefixes_supported": {
						"anyOf": [
							{
								"items": {
									"$ref": "#/components/schemas/OID4VPClientIdPrefix"
								},
								"type": "array"
							},
							{
								"items": {
									"type": "string"
								},
								"type": "array"
							}
						],
						"description": "OPTIONAL. A non-empty array of strings containing the values of the Client Identifier Prefixes that the Wallet supports.\nThe values defined by the specification are `pre-registered` (which represents the behavior when no Client Identifier Prefix is used),\n`redirect_uri`, `openid_federation`, `verifier_attestation`, `decentralized_identifier`, `x509_san_dns` and `x509_hash`.\nIf omitted, the default value is `pre-registered`."
					},
					"issuer": {
						"type": "string",
						"description": "REQUIRED. The authorization server's issuer identifier, which is a URL that uses the \"https\" scheme\nand has no query or fragment components."
					},
					"authorization_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the authorization server's authorization endpoint."
					},
					"token_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the authorization server's token endpoint."
					},
					"jwks_uri": {
						"$ref": "#/components/schemas/url.URL",
						"description": "OPTIONAL. URL of the authorization server's JWK Set document.\nContains the signing key(s) the client uses to validate signatures from the authorization server."
					},
					"registration_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the authorization server's OAuth 2.0 Dynamic Client Registration endpoint."
					},
					"scopes_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "RECOMMENDED. JSON array containing a list of the OAuth 2.0 \"scope\" values that this authorization server supports."
					},
					"response_types_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "REQUIRED. JSON array containing a list of the OAuth 2.0 \"response_type\" values that this authorization server supports."
					},
					"response_modes_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of the OAuth 2.0 \"response_mode\" values that this authorization server supports.\nIf omitted, the default is [\"query\", \"fragment\"]."
					},
					"grant_types_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of the OAuth 2.0 grant type values that this authorization server supports.\nIf omitted, the default value is [\"authorization_code\", \"implicit\"]."
					},
					"token_endpoint_auth_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of client authentication methods supported by this token endpoint.\nIf omitted, the default is \"client_secret_basic\"."
					},
					"token_endpoint_auth_signing_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of the JWS signing algorithms supported by the token endpoint\nfor the signature on the JWT used to authenticate the client at the token endpoint."
					},
					"service_documentation": {
						"type": "string",
						"description": "OPTIONAL. URL of a page containing human-readable information that developers might want or need to know\nwhen using the authorization server."
					},
					"ui_locales_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. Languages and scripts supported for the user interface, represented as a JSON array of language tag values."
					},
					"op_policy_uri": {
						"type": "string",
						"description": "OPTIONAL. URL that the authorization server provides to the person registering the client to read about\nthe authorization server's requirements on how the client can use the data provided by the authorization server."
					},
					"op_tos_uri": {
						"type": "string",
						"description": "OPTIONAL. URL that the authorization server provides to the person registering the client\nto read about the authorization server's terms of service."
					},
					"revocation_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the authorization server's OAuth 2.0 revocation endpoint."
					},
					"revocation_endpoint_auth_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of client authentication methods supported by the revocation endpoint."
					},
					"revocation_endpoint_auth_signing_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of the JWS signing algorithms supported by the revocation endpoint."
					},
					"introspection_endpoint": {
						"type": "string",
						"description": "OPTIONAL. URL of the authorization server's OAuth 2.0 introspection endpoint."
					},
					"introspection_endpoint_auth_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of client authentication methods supported by the introspection endpoint."
					},
					"introspection_endpoint_auth_signing_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of the JWS signing algorithms supported by the introspection endpoint."
					},
					"code_challenge_methods_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "OPTIONAL. JSON array containing a list of PKCE code challenge methods supported by this authorization server."
					},
					"authorization_encryption_enc_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "List of the JWE [RFC7516] encryption algorithms (enc values) supported by the\nauthorization endpoint to encrypt the response."
					},
					"authorization_encryption_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "List of the JWE [RFC7516] encryption algorithms (alg values)\nsupported by the authorization endpoint to encrypt the response."
					},
					"request_object_signing_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "List of the JWE [RFC7516] signing algorithms\nsupported by the authorization endpoint for signed\nauthorization requests."
					},
					"request_object_encryption_enc_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"request_object_encryption_alg_values_supported": {
						"items": {
							"type": "string"
						},
						"type": "array"
					},
					"jwks": {
						"$ref": "#/components/schemas/JWKSet",
						"description": "The public keys to be used to encrypt authorization requests"
					}
				},
				"required": [
					"vp_formats_supported"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"WalletJARRequest": {
				"description": "The wallets request to retrieve a JWT Secured Authorization request\nfrom a verifier",
				"properties": {
					"wallet_metadata": {
						"$ref": "#/components/schemas/WalletMetadata",
						"description": "OPTIONAL. Wallet, as authorization server, metadata parameters"
					},
					"wallet_nonce": {
						"type": "string",
						"description": "OPTIONAL. A string value used to mitigate replay attacks of the Authorization Request.\nWhen received, the Verifier MUST use it as the wallet_nonce value in the signed\nauthorization request object. Value can be a base64url-encoded, fresh,\ncryptographically random number with sufficient entropy"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeKey": {
				"description": "Type for OID4VP exchange key material.  This is the public key material\nthat will be used to sign or encrypt the JWT authorization request.",
				"properties": {
					"id": {
						"type": "string",
						"description": "The ID of the key"
					},
					"certificate": {
						"type": "string",
						"description": "PEM encoded certificate"
					},
					"publicKey": {
						"$ref": "#/components/schemas/JWK",
						"description": "The public key as a JWK"
					}
				},
				"required": [
					"id",
					"publicKey"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeKeys": {
				"items": {
					"$ref": "#/components/schemas/OID4VPExchangeKey"
				},
				"type": "array"
			},
			"OID4VPExchange": {
				"description": "VP Exchange session model representing an active VP exchange",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "Unique identifier for the VP exchange\nThis will be used as the `state` in the authorize request"
					},
					"template_id": {
						"type": "string",
						"description": "The ID of the template used for this exchange"
					},
					"authorize_request": {
						"$ref": "#/components/schemas/OID4VPAuthorizationRequest",
						"description": "Authorization request constructed according to the `verifier_profile` settings"
					},
					"wallet_engagement": {
						"type": "string",
						"description": "The payload to be sent to the wallet\nThis value will be empty if the request is sent by value"
					},
					"wallet_jar_request": {
						"$ref": "#/components/schemas/WalletJARRequest",
						"description": "If sent by the wallet, the details that wallet\nsent the verifier when it fetched the authorization\nrequest."
					},
					"authorize_request_jwt": {
						"type": "string",
						"description": "If present, this is the authorization request as a signed jwt\nthat was sent to or fetched by the wallet."
					},
					"execution_state": {
						"$ref": "#/components/schemas/OID4VPExchangeStatus",
						"description": "The state of the transaction.\nValid values include:\n- created: The initial state after creation in the case of `direct_post` response modes\n- sent: The state after the wallet has fetched the authorization payload, or when no `direct_post` response mode was set\n- success: Completed with success after successful validation of a vp_token\n- error: Completed but with an error. See `message` attribute\n- cancel: Canceled via PUT API\n- expired: The exchange transaction timed out.\nNote, consumers should inspect this attribute or expires_at attribute to determine\nif the exchange transaction has timed out or reached a completion state."
					},
					"message": {
						"type": "string",
						"description": "Any message that was recorded"
					},
					"nonce": {
						"type": "string",
						"description": "Nonce that was generated and injected into the authorization request"
					},
					"response_mode": {
						"$ref": "#/components/schemas/OID4VPResponseMode",
						"description": "The response mode of the request"
					},
					"keys": {
						"$ref": "#/components/schemas/OID4VPExchangeKeys",
						"description": "Key material associated with the exchange.  Typically, this\nincludes the keys used to sign and encrypt JWT authorization requests sent\nto the wallet."
					},
					"created_at": {
						"type": "string",
						"format": "date-time",
						"description": "Creation timestamp"
					},
					"expires_at": {
						"type": "string",
						"format": "date-time",
						"description": "Expiration timestamp.\nNote, consumers should inspect this attribute or execution_state attribute to determine\nif the exchange transaction has timed out or reached a completion state."
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "Last modification timestamp"
					}
				},
				"required": [
					"owner_id",
					"id",
					"template_id",
					"authorize_request",
					"execution_state",
					"created_at",
					"expires_at",
					"modified_at"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/OID4VPExchange"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeAPIResponse": {
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "Unique identifier for the VP exchange\nThis will be used as the `state` in the authorize request"
					},
					"template_id": {
						"type": "string",
						"description": "The ID of the template used for this exchange"
					},
					"authorize_request": {
						"$ref": "#/components/schemas/OID4VPAuthorizationRequest",
						"description": "Authorization request constructed according to the `verifier_profile` settings"
					},
					"wallet_engagement": {
						"type": "string",
						"description": "The payload to be sent to the wallet\nThis value will be empty if the request is sent by value"
					},
					"wallet_jar_request": {
						"$ref": "#/components/schemas/WalletJARRequest",
						"description": "If sent by the wallet, the details that wallet\nsent the verifier when it fetched the authorization\nrequest."
					},
					"authorize_request_jwt": {
						"type": "string",
						"description": "If present, this is the authorization request as a signed jwt\nthat was sent to or fetched by the wallet."
					},
					"execution_state": {
						"$ref": "#/components/schemas/OID4VPExchangeStatus",
						"description": "The state of the transaction.\nValid values include:\n- created: The initial state after creation in the case of `direct_post` response modes\n- sent: The state after the wallet has fetched the authorization payload, or when no `direct_post` response mode was set\n- success: Completed with success after successful validation of a vp_token\n- error: Completed but with an error. See `message` attribute\n- cancel: Canceled via PUT API\n- expired: The exchange transaction timed out.\nNote, consumers should inspect this attribute or expires_at attribute to determine\nif the exchange transaction has timed out or reached a completion state."
					},
					"message": {
						"type": "string",
						"description": "Any message that was recorded"
					},
					"nonce": {
						"type": "string",
						"description": "Nonce that was generated and injected into the authorization request"
					},
					"response_mode": {
						"$ref": "#/components/schemas/OID4VPResponseMode",
						"description": "The response mode of the request"
					},
					"keys": {
						"$ref": "#/components/schemas/OID4VPExchangeKeys",
						"description": "Key material associated with the exchange.  Typically, this\nincludes the keys used to sign and encrypt JWT authorization requests sent\nto the wallet."
					},
					"created_at": {
						"type": "string",
						"format": "date-time",
						"description": "Creation timestamp"
					},
					"expires_at": {
						"type": "string",
						"format": "date-time",
						"description": "Expiration timestamp.\nNote, consumers should inspect this attribute or execution_state attribute to determine\nif the exchange transaction has timed out or reached a completion state."
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "Last modification timestamp"
					},
					"qr": {
						"type": "string",
						"description": "Base64 encoded representation of the `authorize_request` or `wallet_engagement` if set"
					}
				},
				"required": [
					"owner_id",
					"id",
					"template_id",
					"authorize_request",
					"execution_state",
					"created_at",
					"expires_at",
					"modified_at"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPTransactionData": {
				"description": "Transaction data for authorization requests",
				"properties": {
					"type": {
						"type": "string",
						"description": "Type of transaction data"
					},
					"credential_ids": {
						"items": {
							"type": "string"
						},
						"type": "array",
						"description": "Array of credential IDs that can be used to authorize this transaction"
					}
				},
				"required": [
					"type",
					"credential_ids"
				],
				"type": "object",
				"additionalProperties": {}
			},
			"OID4VPExchangeCreateRequest": {
				"description": "Request body for creating a VP exchange",
				"properties": {
					"template_id": {
						"type": "string",
						"description": "The ID of the presentation exchange template to use for this exchange"
					},
					"with_qr_code": {
						"type": "boolean",
						"description": "If true, the QR code to be scanned by the wallet is returned in the\nresponse payload.  Default is false."
					},
					"transaction_data": {
						"items": {
							"$ref": "#/components/schemas/OID4VPTransactionData"
						},
						"type": "array",
						"description": "Optional authorization request transaction data."
					}
				},
				"required": [
					"template_id"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeModifyRequest": {
				"description": "Request body for modifying a VP exchange",
				"properties": {
					"execution_state": {
						"$ref": "#/components/schemas/OID4VPExchangeStatus",
						"description": "The state of the transaction.  The only valid value that can be set here is \"cancel\"."
					}
				},
				"required": [
					"execution_state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"VPErrorType": {
				"description": "Error types for VP token processing",
				"enum": [
					"success",
					"invalid_vp_payload",
					"invalid_vp_token",
					"invalid_exchange",
					"invalid_exchange",
					"verification_failed",
					"decryption_failed",
					"internal_error",
					"expired",
					"error_wallet_invalid_scope",
					"error_wallet_invalid_request",
					"error_wallet_invalid_client",
					"error_wallet_access_denied",
					"error_wallet_vp_formats_not_supported",
					"error_wallet_invalid_request_uri_method",
					"error_wallet_invalid_transaction_data",
					"error_wallet_wallet_unavailable",
					"wallet_authorization_error",
					"invalid_encryption_enc",
					"invalid_encryption_alg",
					"invalid_signing_alg",
					"wallet_metadata_unsupported"
				],
				"type": "string"
			},
			"OID4VPRespEndpointResponse": {
				"properties": {
					"error": {
						"$ref": "#/components/schemas/VPErrorType",
						"description": "Short status code. If the transaction succeeded, this will not be sent."
					},
					"error_description": {
						"type": "string",
						"description": "Message text if available"
					},
					"redirect_uri": {
						"type": "string",
						"description": "Instruct wallet where to redirect the UX\nfollowing authorization response processing."
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"Record_string.string-Array_": {
				"properties": {},
				"additionalProperties": {
					"items": {
						"type": "string"
					},
					"type": "array"
				},
				"type": "object",
				"description": "Construct a type with a set of properties K of type T"
			},
			"VPToken": {
				"$ref": "#/components/schemas/Record_string.string-Array_",
				"description": "A vp_token is structure of keys to an array of strings.\nThe keys should match identifiers in DCQL.\nThe values are format specific credential encodings."
			},
			"WalletAuthorizationResponseSuccessUnencrypted": {
				"properties": {
					"vp_token": {
						"$ref": "#/components/schemas/VPToken",
						"description": "The verifiable presentation token.\nThis can be a string or an object depending on the credential format.\nThis must be present for unencrypted response_modes"
					},
					"state": {
						"type": "string",
						"description": "The state parameter from the authorization request"
					}
				},
				"required": [
					"state"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WalletAuthorizationResponseEncrypted": {
				"properties": {
					"response": {
						"type": "string",
						"description": "The verifiable presentation token and an encrypted JWE.\nThis must be present for encrypted response_modes"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"WalletAuthorizationResponseFailure": {
				"properties": {
					"state": {
						"type": "string",
						"description": "The state parameter from the authorization request"
					},
					"error": {
						"type": "string",
						"description": "Error code from the wallets authorization endpoint."
					},
					"error_description": {
						"type": "string",
						"description": "OPTIONAL.  Wallet provided error text."
					},
					"error_uri": {
						"type": "string",
						"description": "OPTIONAL.  Wallet provided error URI."
					}
				},
				"required": [
					"state",
					"error"
				],
				"type": "object",
				"additionalProperties": false
			},
			"WalletAuthorizationResponseAPI": {
				"anyOf": [
					{
						"$ref": "#/components/schemas/WalletAuthorizationResponseSuccessUnencrypted"
					},
					{
						"$ref": "#/components/schemas/WalletAuthorizationResponseEncrypted"
					},
					{
						"$ref": "#/components/schemas/WalletAuthorizationResponseFailure"
					}
				]
			},
			"OID4VPExchangeTemplateRecord": {
				"description": "Presentation Template model representing an OID4VP authorization request template",
				"properties": {
					"owner_id": {
						"type": "string"
					},
					"id": {
						"type": "string",
						"description": "Unique identifier for the presentation template"
					},
					"name": {
						"type": "string",
						"description": "Name of the presentation template"
					},
					"description": {
						"type": "string",
						"description": "Optional description of the presentation template"
					},
					"exchange_template": {
						"$ref": "#/components/schemas/OID4VPExchangeTemplate",
						"description": "The exchange template"
					},
					"created_at": {
						"type": "string",
						"format": "date-time",
						"description": "Creation timestamp"
					},
					"modified_at": {
						"type": "string",
						"format": "date-time",
						"description": "Last modification timestamp"
					}
				},
				"required": [
					"owner_id",
					"id",
					"name",
					"exchange_template",
					"created_at",
					"modified_at"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeTemplateList": {
				"properties": {
					"count": {
						"type": "number",
						"format": "double"
					},
					"items": {
						"items": {
							"$ref": "#/components/schemas/OID4VPExchangeTemplateRecord"
						},
						"type": "array"
					}
				},
				"required": [
					"count",
					"items"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeTemplateForCreate": {
				"properties": {
					"client_id_prefix": {
						"$ref": "#/components/schemas/OID4VPClientIdPrefix",
						"description": "Client ID prefix to use in authorization requests"
					},
					"request_mode": {
						"$ref": "#/components/schemas/OID4VPAuthorizationRequestMode",
						"description": "Authorization request modes define how an authorization\nrequest shall be conveyed to a wallet.  Note, \"by_value_params\"\nis the only method used when th client_id_prefix is \"redirect_uri\".\nThe default value for all other cases of client_id_prefix\"\nis \"by_reference_jwt\"."
					},
					"exchange_completed_redirect_uri": {
						"type": "string",
						"description": "URI to redirect to after exchange is completed"
					},
					"response_mode": {
						"$ref": "#/components/schemas/OID4VPResponseMode",
						"description": "Response mode for authorization requests"
					},
					"encrypted_response_enc_values_supported": {
						"items": {
							"$ref": "#/components/schemas/OID4VPAznResponseEncryptionEncValues"
						},
						"type": "array",
						"description": "Supported encryption algorithms for encrypted responses sent from the wallet.\nThis informs the wallet about the values supported by the verifier for\nencrypted vp_token responses.\n\nApplicable only when response_mode is \"direct_post.jwt\".  It will be ignored\notherwise.\n\nDefault is \"A256GCM\""
					},
					"encrypted_response_alg_values_supported": {
						"items": {
							"$ref": "#/components/schemas/OID4VPAznResponseEncryptionAlgOptions"
						},
						"type": "array",
						"description": "Supported content encryption key algorithms for encrypted responses sent from the wallet.\nThis informs the wallet about the values supported by the verifier for\nencrypted vp_token responses.\n\nApplicable only when response_mode is \"direct_post.jwt\".  It will be ignored\nin all other cases if set.\n\nThis settings controls parameters used to create the ephemeral keys generated by\nthe verifier and provided to the wallet when encrypting authorization responses.\n\nDefault is { \"alg: \"ECDH-ES\", \"crv\": \"P-256\" }"
					},
					"request_object_signing_alg": {
						"$ref": "#/components/schemas/OID4VPAznRequestSigAlgValues",
						"description": "The signature algorithm the verifier will use to sign the authorization request\nJWT.\n\nApplicable when request_mode is \"by_value_jwt\" or \"by_reference_jwt\".  Additionally,\nIf set when response_mode is \"direct_post.jwt\", then the authorization request will\nbe signed and then encrypted.\n\nThe default is \"ES256\"."
					},
					"default_authorization_url_scheme": {
						"type": "string",
						"description": "DEPRECATED, use default_authorization_url\n\nDefault URL scheme for authorization requests\nDefaults to \"openid4vp://\""
					},
					"default_authorization_url": {
						"$ref": "#/components/schemas/url.URL",
						"description": "Default authorization URL for the wallet as the authorization server\nDefaults to \"openid4vp://\""
					},
					"dcql_query": {
						"$ref": "#/components/schemas/DcqlQuery",
						"description": "DCQL query for credential requests"
					},
					"trust_registries_to_use": {
						"$ref": "#/components/schemas/TrustRegistriesToUse",
						"description": "Optional refinement of trust configuration. If this is not specified or\notherwise empty, all configured trust registries will be used."
					},
					"ttl": {
						"type": "number",
						"format": "double",
						"description": "Time-to-live for authorization requests in seconds\nDefaults to 120 seconds"
					},
					"san_dns": {
						"type": "string",
						"description": "The DNS hostname to use as the Subject Alternative Name (SAN DNS) in the signing\nephemeral leaf certificate. When set, this value is used instead of the\nroot-of-trust certificate SAN DNS or CN fallbacks for x509_san_dns client\nidentifiers.\n\nApplicable only when client_id_prefix is x509_san_dns, ignored otherwise.\n\nWhen not set, the effective SAN DNS is resolved in priorority order:\n1. Root-of-trust certificate SAN DNS (first entry)\n2. Root-of-trust certificate CN (if it is a valid DNS hostname)\n3. Auto-generated fallback: \"verifier${agentId}\""
					},
					"certificate_profile": {
						"$ref": "#/components/schemas/OID4VPCertificateProfileConfig"
					}
				},
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeTemplateCreateRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the presentation template"
					},
					"description": {
						"type": "string",
						"description": "Optional description of the presentation template"
					},
					"exchange_template": {
						"$ref": "#/components/schemas/OID4VPExchangeTemplateForCreate",
						"description": "The exchange template"
					}
				},
				"required": [
					"name",
					"exchange_template"
				],
				"type": "object",
				"additionalProperties": false
			},
			"OID4VPExchangeTemplateUpdateRequest": {
				"properties": {
					"name": {
						"type": "string",
						"description": "Name of the presentation template"
					},
					"description": {
						"type": "string",
						"description": "Optional description of the presentation template"
					},
					"exchange_template": {
						"$ref": "#/components/schemas/OID4VPExchangeTemplateForCreate",
						"description": "The exchange template"
					}
				},
				"required": [
					"name",
					"exchange_template"
				],
				"type": "object",
				"additionalProperties": false
			}
		},
		"securitySchemes": {
			"login": {
				"type": "oauth2",
				"flows": {
					"clientCredentials": {
						"tokenUrl": "/oauth2/token",
						"scopes": {}
					}
				}
			}
		}
	},
	"info": {
		"title": "agency-server",
		"version": "1.0.0",
		"description": "IBM Verify Identity Access Digital Credentials",
		"contact": {
			"name": "iamdev@us.ibm.com"
		}
	},
	"paths": {
		"/v1.0/oidvc/vci/{agentId}/metadata": {
			"get": {
				"operationId": "oidvcGetMetaData",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Oid4vciAgentMetadata"
								},
								"examples": {
									"Example 1": {
										"value": {
											"issuer": "oid4vc",
											"credential_configurations_supported": {
												"UniversityDegreeCredential": {
													"format": "jwt_vc_json",
													"scope": "openid",
													"cryptographic_binding_methods_supported": [
														"did:example"
													],
													"credential_signing_alg_values_supported": [
														"ES256"
													],
													"credential_definition": {
														"type": [
															"VerifiableCredential",
															"UniversityDegreeCredential"
														],
														"credentialSubject": {
															"given_name": {
																"display": [
																	{
																		"name": "Given Name",
																		"locale": "en-US"
																	}
																]
															}
														}
													},
													"proof_types_supported": {
														"di_vp": {
															"proof_signing_alg_values_supported": [
																"Ed25519Signature2020",
																"eddsa-rdfc-2022"
															]
														}
													}
												}
											},
											"credential_issuer": "https://agencyhost/v1.0/diagency/trust/anchor/uuid0987",
											"credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"nonce_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/nonce",
											"authorization_servers": [
												"https://op.com/oauth2"
											],
											"batch_credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"deferred_credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"notification_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/notif",
											"credential_response_encryption": {
												"alg_values_supported": [
													"RS256",
													"ES256"
												],
												"enc_values_supported": [
													"A128GCM",
													"A256GCM"
												]
											}
										}
									}
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get OID4VCI issuer metadata for the given agent.\nCredential Issuer Metadata contains information on the Credential Issuer's technical capabilities,\n supported Credentials, and (internationalized) display information.",
				"summary": "OID4VCI issuer metadata for the given agent",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vci/public/nonce/{agentId}": {
			"post": {
				"operationId": "oidvcGenerateNonce",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/NonceResponseObj"
								},
								"examples": {
									"Example 1": {
										"value": {
											"c_nonce": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "The Nonce Endpoint for retrieving a new `c_nonce` for a given agent. This\nvalue is to be used when a proof is required during issuance. Nonces are\nonly valid for a single issuance to be completed within 30 seconds by\ndefault. This is an unauthenticated endpoint.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vci/offers": {
			"post": {
				"operationId": "oidvcCreateOffer",
				"responses": {
					"201": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Oid4vciCreateCredOfferResponse"
								}
							}
						}
					},
					"400": {
						"description": "If any of the supplied credential definition id's is invalid"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					}
				},
				"description": "Create an OID4VCI issuer credential offer.\nThis endpoint should be invoked using the issuing agents authenticated context or access token.",
				"summary": "Create an OID4VCI issuer credential offer.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "List of previously created credential definitions .",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Oid4vciCreateCredOfferRequest",
								"description": "List of previously created credential definitions ."
							}
						}
					}
				}
			},
			"get": {
				"operationId": "oidvcGetAllOffers",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OpenId4vcIssuanceSessionInfoList"
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					}
				},
				"description": "List all (or filtered) credential offers that this agent is entitled to access.",
				"summary": "List all (or filtered) credential offers that this agent is entitled to access.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vci/offers/{id}": {
			"get": {
				"operationId": "oidvcGetAllOffersId",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Oid4vciCreateCredOfferResponse"
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "If the credential offer does not exist"
					}
				},
				"description": "Get an OID4VCI issuer credential offer by id.\nThis endpoint should be invoked using the issuing agents authenticated context or access token.",
				"summary": "Get an OID4VCI issuer credential offer by id. Can accept application/json, image/png or image/svg+xml.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"in": "query",
						"name": "scheme",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "oidvcDeleteOffer",
				"responses": {
					"204": {
						"description": "Success"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					}
				},
				"description": "Delete an OID4VCI issuer credential offer by id.\nThis endpoint should be invoked using the issuing agents authenticated context or access token.\nUnauthenticated requests should return 401 (Standard auth required) as opposed to returning 204",
				"summary": "Delete an OID4VCI issuer credential offer by id.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vci/{agentId}/credential": {
			"post": {
				"operationId": "oidvcIssueCredential",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/Oid4vciCredentialResponse"
										},
										{
											"$ref": "#/components/schemas/Oid4vciErrorResponse"
										}
									]
								}
							}
						}
					},
					"400": {
						"description": "Invalid request"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized"
					}
				},
				"description": "Issue a VC as the agent identified by the agentId.\nThis endpoint must be invoked using an access token authorized to request VC defined\nby a credential offer.  The token is introspected to determine the authorized scope\nof access included VC types.",
				"summary": "Issue a VC as the agent identified by the agentId.",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent that will sign and issue one or more VC's.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Oid4vciCredentialRequest"
							}
						}
					}
				}
			}
		},
		"/v1.0/oidvc/vci/haip_compliance": {
			"get": {
				"operationId": "haipComplianceCheck",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VCIHAIPComplianceCheckResponse"
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized"
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Checks current credential definitions against the OpenID4VC High\nAssurance Interoperability Profile 1.0 - Editor's draft, dated September\n2, 2025 (OID4VC HAIP). The absense of a specific check in the response to\nthis API means it has not been assessed.",
				"summary": "Check HAIP compliance for all credential definitions of an agent",
				"tags": [
					"OpenID for Verifiable Credential Issuance"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/.well-known/agency-configuration": {
			"get": {
				"operationId": "getAgencyConfiguration",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgencyMetadata"
								}
							}
						}
					}
				},
				"description": "Agency configuration metadata endpoint.",
				"summary": "Agency configuration metadata endpoint. Can accept application/json, image/png or image/svg+xml.",
				"tags": [
					"Well Known"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/verifications": {
			"get": {
				"operationId": "GetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IGetAllVerificationsResponse"
								}
							}
						}
					}
				},
				"description": "Retrieve a list of all verifications.",
				"summary": "Retrieve a list all verifications.",
				"tags": [
					"Verifications"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "Create",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/VerificationInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new verification request.",
				"summary": "Create a new verification request.",
				"tags": [
					"Verifications"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the verification information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateVerificationArgs",
								"description": "The request body containing the verification information."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/verifications/{id}": {
			"get": {
				"operationId": "GetOne",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/VerificationInfo"
								}
							}
						}
					}
				},
				"description": "Retrieve a verification by id.",
				"summary": "Retrieve a verification by id.",
				"tags": [
					"Verifications"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the verification to retrieve.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "Update",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/VerificationInfo"
								}
							}
						}
					}
				},
				"description": "Update a verification by id.",
				"summary": "Update a verification by id.",
				"tags": [
					"Verifications"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the verification to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the verification information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateVerificationArgs",
								"description": "The request body containing the verification information."
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "Delete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a verification by id.",
				"summary": "Delete a verification by id.",
				"tags": [
					"Verifications"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the verification to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/proof_schemas": {
			"get": {
				"operationId": "proofSchemaGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IGetAllProofSchemasResponse"
								}
							}
						}
					}
				},
				"description": "Retrieve a list of all proof schemas.",
				"summary": "Retrieve a list of all proof schemas.",
				"tags": [
					"DIDComm - Proof Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "proofSchemaCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ProofSchemaInfo"
								}
							}
						}
					}
				},
				"description": "Create a new proof schema.",
				"summary": "Create a new proof schema.",
				"tags": [
					"DIDComm - Proof Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The body containing the proof schema data.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateProofSchemaArgs",
								"description": "The body containing the proof schema data."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/proof_schemas/{id}": {
			"get": {
				"operationId": "proofSchemaGetOne",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ProofSchemaInfo"
								}
							}
						}
					}
				},
				"description": "Retrieve a proof schema by id.",
				"summary": "Retrieve a proof schema by id.",
				"tags": [
					"DIDComm - Proof Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the schema to retrieve.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "proofSchemaDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a proof schema by id.",
				"summary": "Delete a proof schema by id.",
				"tags": [
					"DIDComm - Proof Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the schema to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/metrics": {
			"get": {
				"operationId": "metricsGet",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/MetricInfo"
								}
							}
						}
					}
				},
				"description": "Get metrics associated with the agent and all of it's children.\nIncludes counts of all `proof_schemas`, `invitations`, `connections`,\n `credentials` and `verifications`.",
				"summary": "Get metrics associated with the agent.",
				"tags": [
					"Metrics"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/metrics/{id}": {
			"get": {
				"operationId": "metricsGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/MetricInfo"
								}
							}
						}
					}
				},
				"description": "Get metrics by agent id and all of it's children.\nIncludes counts of all `proof_schemas`, `invitations`, `connections`,\n `credentials` and `verifications`.",
				"summary": "Get metrics by agent id.",
				"tags": [
					"Metrics"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/invitations": {
			"get": {
				"operationId": "invitationsGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/InvitationList"
								}
							}
						}
					}
				},
				"description": "Retrieve a list of all invitations.",
				"summary": "Retrieve a list of all invitations.",
				"tags": [
					"DIDComm - Invitations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "invitationsCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create an invitation.",
				"summary": "Create an invitation.",
				"tags": [
					"DIDComm - Invitations"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the invitation information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateInvitationArgs",
								"description": "The request body containing the invitation information."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/invitations/{id}": {
			"get": {
				"operationId": "invitationsGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					}
				},
				"description": "Retrieve an invitation by id.",
				"summary": "Retrieve an invitation by id.",
				"tags": [
					"DIDComm - Invitations"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "invitationsDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete an invitation by id.",
				"summary": "Delete an invitation by id.",
				"tags": [
					"DIDComm - Invitations"
				],
				"security": [],
				"parameters": [
					{
						"description": "The id of the invitation to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/invitation_processor": {
			"put": {
				"operationId": "invitationProcessor",
				"responses": {
					"201": {
						"description": "Processed",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ProcessInvitationOutput"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Inspect or accept an Invitation from a url/short_url.",
				"summary": "Inspect or accept an Invitation.",
				"tags": [
					"DIDComm - Invitations"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/ProcessInvitationInput"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/info": {
			"get": {
				"operationId": "infoGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgentInfo"
								}
							}
						}
					}
				},
				"description": "Retrieve information about an Agent.",
				"summary": "Retrieve information about an Agent.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/agents": {
			"get": {
				"operationId": "agentGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IGetAllAgentsResponse"
								}
							}
						}
					}
				},
				"description": "Get a list of all child agents.",
				"summary": "Get a list of child agents.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "agentCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgentInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new agent on the platform.",
				"summary": "Create a new agent.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "(required) — an object containing the following fields:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateAgentArgs",
								"description": "(required) — an object containing the following fields:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/agents/{id}": {
			"get": {
				"operationId": "agentGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgentInfo"
								}
							}
						}
					}
				},
				"description": "Get information about an agent by id.",
				"summary": "Get information about an agent by id.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent to retrieve information about.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "agentPatch",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgentInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Apply a patch to an agent by id.",
				"summary": "Apply a patch to an agent by id.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent to patch.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/PatchAgentArgs"
							}
						}
					}
				}
			},
			"put": {
				"operationId": "agentUpdate",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AgentInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update an agent by id.",
				"summary": "Update an agent by id.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateAgentArgs"
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "agentDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete an agent by id.",
				"summary": "Delete an agent by id.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Force the deletion of all child agents; otherwise, if not specified and the agent has children, an error is returned.",
						"in": "query",
						"name": "force",
						"required": false,
						"schema": {
							"type": "boolean"
						}
					}
				]
			}
		},
		"/v1.0/diagency/agents/{id}/did.json": {
			"get": {
				"operationId": "agentGetDiD",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/DidDoc"
								}
							}
						}
					}
				},
				"description": "Get DID document for the agent by id.",
				"summary": "Get DID document for the agent by id.",
				"tags": [
					"Agents"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/connections": {
			"get": {
				"operationId": "connectionsGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ConnectionList"
								}
							}
						}
					}
				},
				"description": "Get a list of all connections known to the agent.",
				"summary": "Get a list of connections.",
				"tags": [
					"DIDComm - Connections"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "connectionsCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ConnectionInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new connection and return an invitation.",
				"summary": "Create a connection.",
				"tags": [
					"DIDComm - Connections"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "(required) — an object containing the following fields:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateConnectionArgs",
								"description": "(required) — an object containing the following fields:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/connections/{id}": {
			"get": {
				"operationId": "connectionsGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ConnectionInfo"
								}
							}
						}
					}
				},
				"description": "Get a single connection by id.",
				"summary": "Get a single connection by id.",
				"tags": [
					"DIDComm - Connections"
				],
				"security": [],
				"parameters": [
					{
						"description": "- Unique id of the connection to return.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "connectionsUpdate",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/ConnectionInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update an existing connection record by id.\nAccept a connection offer. If a connection id is passed, that connection will be updated from state\n`inbound_offer` to `connected` on this agent. If a connection offer object from another agent is passed, the\nconnection will be created and set to the `connected` state on this agent.",
				"summary": "Update an existing connection record by id.",
				"tags": [
					"DIDComm - Connections"
				],
				"security": [],
				"parameters": [
					{
						"description": "-  Unique id of the connection to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — an object containing the following fields:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateConnectionArgs",
								"description": "(required) — an object containing the following fields:"
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "connectionsDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a connection record by id.",
				"summary": "Delete a connection record by id.",
				"tags": [
					"DIDComm - Connections"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the connection to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/credential_definitions": {
			"get": {
				"operationId": "credential_definitionsGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionList"
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `GET /v1.0/diagency/credential_configurations`.",
				"summary": "[Partially Deprecated] Get a list of credential definitions. Indy AnonCreds over DIDComm support only. Other formats are deprecated.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credential_definitionsCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `POST /v1.0/diagency/credential_configurations`.\n\nCreates a new credential definition, written permanently to the ledger.",
				"summary": "[Partially Deprecated] Create a new credential definition. Indy AnonCreds over DIDComm support only. Other formats are deprecated.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — The arguments to create the credential definition with:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateCredentialDefinitionArgs",
								"description": "(required) — The arguments to create the credential definition with:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credential_definitions/{id}": {
			"get": {
				"operationId": "credential_definitionsGetID",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionInfo"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `GET /v1.0/diagency/credential_configurations/{id}`.",
				"summary": "[Partially Deprecated] Get a credential definition by id. Indy AnonCreds over DIDComm support only. Other formats are deprecated.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the credential definition to return.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v2.0/diagency/credential_definitions": {
			"get": {
				"operationId": "credential_definitionsGetAllV2",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionV2List"
								}
							}
						}
					}
				},
				"description": "Get a list of credential definitions.",
				"summary": "Get a list of credential definitions.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credential_definitionsCreateV2",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionV2Response"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"summary": "[Deprecated - use /v1.0/diagency/credential_configurations instead] Create a new credential definition.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"deprecated": true,
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — The arguments to create the credential definition with",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CredentialDefinitionV2Request",
								"description": "(required) — The arguments to create the credential definition with"
							}
						}
					}
				}
			}
		},
		"/v2.0/diagency/credential_definitions/{id}": {
			"get": {
				"operationId": "credential_definitionsGetIDV2",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialDefinitionV2Response"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Get a credential definition by id.",
				"summary": "Get a credential definition by id.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the credential definition to return.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "credential_definitionsPatch",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/W3cDidDoc"
								}
							}
						}
					}
				},
				"description": "Applies a patch operation to a credential definition by id. Note that the id can be either a v1 or v2 credential definition id which means this endpoint can handle key rotation/deletion for both v1 and v2 credential definition\nOnly the owning agent can successfully execute this endpoint.\nSupported operations:\n\"key_rollover\" - Creates a new signing key while making the previous key 'deprecated', which means\nthat it may be removed in the future but can still be used prior to removal.\n\"key_remove\" - Removes a deprecated signing key by key id.",
				"summary": "Applies a patch operation to a credential definition by id.",
				"tags": [
					"Credential Configurations - Definitions"
				],
				"security": [],
				"parameters": [
					{
						"description": "- The id of the credential definition to patch. This id can be either a v1 or v2 credential definition id",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — The arguments to patch the credential definition with",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/PatchCredentialDefinitionRequest",
								"description": "(required) — The arguments to patch the credential definition with"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credentials": {
			"get": {
				"operationId": "credentialsGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialList"
								}
							}
						}
					}
				},
				"description": "Retrieve all credentials from the agent.",
				"summary": "Retrieve all credentials from the agent.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credentialsCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialInfo"
								}
							}
						}
					}
				},
				"description": "Create a new credential.",
				"summary": "Create a new credential.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the credential information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateCredentialArgs",
								"description": "The request body containing the credential information."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credentials/{id}": {
			"get": {
				"operationId": "credentialsGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialInfo"
								}
							}
						}
					}
				},
				"description": "Retrieve credentials by id.",
				"summary": "Retrieve credentials by id.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "- The id of the credential to retrieve.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "credentialsUpdate",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialInfo"
								}
							}
						}
					}
				},
				"description": "Update a credential by id.",
				"summary": "Update credential by id.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "- The id of the credential to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the credential information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateCredentialArgs",
								"description": "The request body containing the credential information."
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "credentialsDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a credential by id.\nNote that if the credential to be deleted had credentialStatuses associated with it,\ntheir status states remain unchanged.",
				"summary": "Delete credential by id.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "- The id of the credential to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/credentials/{id}/status": {
			"patch": {
				"operationId": "credentialsStatusUpdate",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Update a credential status by id.\nNote that only the original issuer of this credential can successfully execute this endpoint.",
				"summary": "Update credential status by id.",
				"tags": [
					"Credentials"
				],
				"security": [],
				"parameters": [
					{
						"description": "- The id of the credential to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The request body containing the credential information.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/UpdateCredentialStatusArgs",
								"description": "The request body containing the credential information."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credential_schemas": {
			"get": {
				"operationId": "credentialSchemasGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaList"
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `GET /v1.0/diagency/credential_configurations`.",
				"summary": "Retrieve all credential schemas from the agent.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credentialSchemasCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaInfo"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `POST /v1.0/diagency/credential_configurations`.",
				"summary": "Create a new credential schema.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The content of the schema",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CreateCredentialSchemaArgs",
								"description": "The content of the schema"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credential_schemas/{id}": {
			"get": {
				"operationId": "credentialSchemasGetID",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaInfo"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "**Note:** Only supported for Indy AnonCreds / DIDComm. For all other credential formats\nuse `GET /v1.0/diagency/credential_configurations/{id}`.",
				"summary": "Retrieve credential schema by id.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "The credential schema identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v2.0/diagency/credential_schemas": {
			"get": {
				"operationId": "credentialSchemasGetAllV2",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaV2List"
								}
							}
						}
					}
				},
				"description": "Retrieve all credential schemas from the agent.",
				"summary": "Retrieve all credential schemas from the agent.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credentialSchemasCreateV2",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaV2Response"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"summary": "[Deprecated - use /v1.0/diagency/credential_configurations instead] Create a new credential schema.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"deprecated": true,
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The content of the schema",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CredentialSchemaV2Request",
								"description": "The content of the schema"
							}
						}
					}
				}
			}
		},
		"/v2.0/diagency/credential_schemas/{id}": {
			"get": {
				"operationId": "credentialSchemasGetIDV2",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialSchemaV2Response"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve credential schema by id.",
				"summary": "Retrieve credential schema by id.",
				"tags": [
					"Credential Configurations - Schemas"
				],
				"security": [],
				"parameters": [
					{
						"description": "The credential schema identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/did.json": {
			"get": {
				"operationId": "GetDidDoc",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/DidWebDoc"
								}
							}
						}
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get DID document for the agent.",
				"summary": "Get DID document for the agent",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/.well-known/openid-credential-issuer": {
			"get": {
				"operationId": "oidvcGetMetaDataWell",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/Oid4vciAgentMetadata"
								},
								"examples": {
									"Example 1": {
										"value": {
											"issuer": "oid4vc",
											"credential_configurations_supported": {
												"UniversityDegreeCredential": {
													"format": "jwt_vc_json",
													"scope": "openid",
													"cryptographic_binding_methods_supported": [
														"did:example"
													],
													"credential_signing_alg_values_supported": [
														"ES256"
													],
													"credential_definition": {
														"type": [
															"VerifiableCredential",
															"UniversityDegreeCredential"
														],
														"credentialSubject": {
															"given_name": {
																"display": [
																	{
																		"name": "Given Name",
																		"locale": "en-US"
																	}
																]
															}
														}
													},
													"proof_types_supported": {
														"di_vp": {
															"proof_signing_alg_values_supported": [
																"Ed25519Signature2020",
																"eddsa-rdfc-2022"
															]
														}
													}
												}
											},
											"credential_issuer": "https://agencyhost/v1.0/diagency/trust/anchor/uuid0987",
											"credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"nonce_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/nonce",
											"authorization_servers": [
												"https://op.com/oauth2"
											],
											"batch_credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"deferred_credential_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/credential",
											"notification_endpoint": "https://agencyhost/v1.0/diagency/oidvc/vci/uuid0987/notif",
											"credential_response_encryption": {
												"alg_values_supported": [
													"RS256",
													"ES256"
												],
												"enc_values_supported": [
													"A128GCM",
													"A256GCM"
												]
											}
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get OID4VCI issuer metadata for the given agent (/.well-known/openid-credential-issuer).\nCredential Issuer Metadata contains information on the Credential Issuer's technical capabilities,\n supported Credentials, and (internationalized) display information.",
				"summary": "OID4VCI issuer metadata for the given agent.",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/.well-known/jwt-vc-issuer": {
			"get": {
				"operationId": "jwtVcIssuerMetadata",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/JwtVcIssuerMetadata"
								}
							}
						}
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get JWT VC Issuer Metadata for the given agent (/.well-known/jwt-vc-issuer).\nJWT VC Issuer Metadata contains information on the Issuer's public keys used for SD-JWT VC issuance.\nThis endpoint is required for compliance with the SD-JWT VC specification section 5.",
				"summary": "JWT VC Issuer Metadata for the given agent.",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/vical": {
			"get": {
				"operationId": "agentGetVical",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					}
				},
				"description": "Get VICAL (Verified Issuer Certificate Authority List) for an agent by\nID. This will include the issuer's root of trust certificate and\nassociation with as many docType values as their credential definitions\ndefine.",
				"summary": "Get VICAL for an agent by id.",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/vical/{registryId}": {
			"get": {
				"operationId": "agentGetVicalForRegistry",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					},
					"404": {
						"description": "Registry not found"
					}
				},
				"description": "Get VICAL (Verified Issuer Certificate Authority List) for a specific\nlocal trust registry. For this endpoint to return data, an administrator\nmust have first performed the operation to publish the VICAL for the\nlocal registry.",
				"summary": "Get VICAL for a local trust registry.",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Unique id of the local trust registry.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/anchor/{agentId}/.well-known/jwks.json": {
			"get": {
				"operationId": "agentGetJwks",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get JSON Web Key Set (JWKS) containing root of trust certificates for the agent.\nThis endpoint returns all root of trust certificates for the specified agent encoded\nusing the x5c property per RFC 7517.",
				"summary": "Get JWKS with root of trust certificates for the agent.",
				"tags": [
					"Trust - Anchors"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the agent.",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/ledgers": {
			"get": {
				"operationId": "ledgersGetAll",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/GetAllLedgersResponse"
								}
							}
						}
					}
				},
				"description": "Get All Ledgers associated with the agency.",
				"summary": "Get All Ledgers.",
				"tags": [
					"Trust - Ledgers"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/ledgers/{id}": {
			"get": {
				"operationId": "ledgersGetID",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/LedgerInfo"
								}
							}
						}
					}
				},
				"description": "Get All Ledgers associated with the agency by id.",
				"summary": "Get All Ledgers by id.",
				"tags": [
					"Trust - Ledgers"
				],
				"security": [],
				"parameters": [
					{
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/local_providers/credstatus": {
			"get": {
				"operationId": "localStatusListProviderGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					}
				},
				"description": "Retrieve all local status list providers from the agency.",
				"summary": "Retrieve all local status list providers from the agency.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/local_providers/credstatus/{id}": {
			"get": {
				"operationId": "localStatusListProviderGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgLocalStatusListProviderResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve local status list provider by id.",
				"summary": "Retrieve local status list provider by id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "The local status list provider identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "localStatusListProviderUpdate",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgLocalStatusListProviderResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update a local status list provider by id.",
				"summary": "Update a local status list provider by id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "The local status list provider identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The updated local status list provider content.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustCfgLocalStatusListProviderUpdateRequest",
								"description": "The updated local status list provider content."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/trust/remote_providers/credstatus": {
			"get": {
				"operationId": "remoteStatusListProviderGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderList"
								}
							}
						}
					}
				},
				"description": "Retrieve all remote status list providers from the agent.",
				"summary": "Retrieve all remote status list providers from the agent.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "remoteStatusListProviderCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new remote status list provider.",
				"summary": "Create a new remote status list provider.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "The content of the remote status list provider:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderRequest",
								"description": "The content of the remote status list provider:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/trust/remote_providers/credstatus/{id}": {
			"patch": {
				"operationId": "remoteStatusListProviderUpdate",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update a remote status list provider by id.",
				"summary": "Update a remote status list provider by id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the remote status list provider to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderUpdateRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "remoteStatusListProviderGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustCfgRemoteStatusListProviderResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve remote status list provider by id.",
				"summary": "Retrieve remote status list provider by id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "The remote status list provider identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "remoteStatusListProviderDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a remote status list provider by id.",
				"summary": "Delete an remote status list provider by id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the remote status list provider to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/credstatus/{id}/connection_test": {
			"post": {
				"operationId": "remoteStatusListProviderRunConnectionTest",
				"responses": {
					"204": {
						"description": ""
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"502": {
						"description": "Bad Gateway",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Run a connection test for the specified remote status list provider.",
				"summary": "Run connection test for the specified remote status list provider by its id.",
				"tags": [
					"Trust - Credential Status"
				],
				"security": [],
				"parameters": [
					{
						"description": "The remote status list provider identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/credential_configuration_templates": {
			"get": {
				"operationId": "credentialConfigurationTemplatesGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"items": {
										"$ref": "#/components/schemas/CredentialConfigurationTemplateResponse"
									},
									"type": "array"
								}
							}
						}
					}
				},
				"description": "Retrieve all credential configuration templates.",
				"summary": "Retrieve all credential configuration templates.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/credential_configuration_templates/{id}": {
			"get": {
				"operationId": "credentialConfigurationTemplatesGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialConfigurationTemplateResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve a specific credential configuration template by ID.",
				"summary": "Retrieve a specific credential configuration template by ID.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "The ID of the credential configuration template to retrieve",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/local_providers/registries": {
			"get": {
				"operationId": "trustRegistryLocalGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustRegistryList"
								}
							}
						}
					}
				},
				"description": "Retrieve all local trust registries from the agent.",
				"summary": "Retrieve all local trust registries from the agent.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "trustRegistryLocalCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustRegistryResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new local trust registry.",
				"summary": "Create a new local trust registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "The content of the trust registry:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustRegistryRequest",
								"description": "The content of the trust registry:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/trust/local_providers/registries/{registryId}": {
			"get": {
				"operationId": "trustRegistryLocalGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustRegistryResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve local trust registry by id.",
				"summary": "Retrieve local trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"put": {
				"operationId": "trustRegistryLocalUpdate",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustRegistryResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update a local trust registry by id.",
				"summary": "Update a local trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The updated trust registry content.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustRegistryRequest",
								"description": "The updated trust registry content."
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "trustRegistryLocalDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a local trust registry by id.",
				"summary": "Delete a local trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the trust registry to delete.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"patch": {
				"operationId": "trustRegistryLocalPatchVical",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"anyOf": [
										{
											"$ref": "#/components/schemas/VicalPublishResponse"
										},
										{}
									]
								}
							}
						}
					},
					"204": {
						"description": "No Content",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Manage VICAL publishing for a local trust registry. Once the\npublish_vical operation is called, the VICAL can be accessed at the path:\n\n/v1.0/diagency/trust/anchor/{agentId}/vical/{registryId}\n\nIf the publish operation isn't called, or the unpublish_vical operation\nis called, the registry will no longer be served from the above endpoint.",
				"summary": "Manage VICAL publishing for a local trust registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The VICAL publish operation request.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/VicalPublishRequest",
								"description": "The VICAL publish operation request."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/trust/local_providers/registries/{registryId}/entities": {
			"post": {
				"operationId": "trustRegistryLocalCreateEntity",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new trusted issuer entity for a registry.",
				"summary": "Create a new trusted issuer entity for a registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The trusted entity content.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustedEntityAPIRequest",
								"description": "The trusted entity content."
							}
						}
					}
				}
			},
			"get": {
				"operationId": "trustRegistryLocalGetEntities",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve all trusted issuer entities for a registry.",
				"summary": "Retrieve all trusted issuer entities for a registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/local_providers/registries/{registryId}/entities/{entityId}": {
			"get": {
				"operationId": "trustRegistryLocalGetEntity",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve a trusted issuer entity by id.",
				"summary": "Retrieve a trusted issuer entity by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "The trusted issuer entity identifier.",
						"in": "path",
						"name": "entityId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"put": {
				"operationId": "trustRegistryLocalUpdateEntity",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update a trusted issuer entity by id.",
				"summary": "Update a trusted issuer entity by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "The trusted issuer entity identifier.",
						"in": "path",
						"name": "entityId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The updated trusted issuer entity content.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/TrustedEntityAPIRequest",
								"description": "The updated trusted issuer entity content."
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "trustRegistryLocalDeleteEntity",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a trusted issuer entity by id.",
				"summary": "Delete a trusted issuer entity by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "The trusted issuer entity identifier.",
						"in": "path",
						"name": "entityId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/credential_configurations": {
			"get": {
				"operationId": "credential_configurationsGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialConfigurationList"
								}
							}
						}
					}
				},
				"description": "Get a list of credential configurations.",
				"summary": "Get a list of credential configurations.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "credential_configurationsCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialConfigurationResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new credential configuration.",
				"summary": "Create a new credential configuration.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — The arguments to create the credential configuration with.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CredentialConfigurationRequest",
								"description": "(required) — The arguments to create the credential configuration with."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/credential_configurations/{id}": {
			"put": {
				"operationId": "credential_configurationsPut",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialConfigurationResponse"
								}
							}
						}
					}
				},
				"description": "Applies a put operation to a credential configuration by id.",
				"summary": "Applies a put operation to a credential configuration by id.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "-",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "(required) — The arguments to update the credential configuration with.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/CredentialConfigurationUpdateRequest",
								"description": "(required) — The arguments to update the credential configuration with."
							}
						}
					}
				}
			},
			"get": {
				"operationId": "credential_configurationsGetID",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/CredentialConfigurationResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Get a credential configuration by id.",
				"summary": "Get a credential configuration by id.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the credential configuration to return.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "credential_configurationsDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a credential configuration by id.",
				"summary": "Delete a credential configuration by id.",
				"tags": [
					"Credential Configurations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the configuration to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v2.0/diagency/credential_definition_options": {
			"get": {
				"operationId": "credentialConfigurationOptionsGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"items": {
										"$ref": "#/components/schemas/CredentialDefinitionOptionsResponse"
									},
									"type": "array"
								}
							}
						}
					}
				},
				"description": "Retrieve all credential configuration definition options.",
				"summary": "Retrieve all credential definition options.",
				"tags": [
					"Credential Definition Options"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/trust/remote_providers/registries": {
			"get": {
				"operationId": "trustRegistryRemoteGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/RemoteTrustRegistryList"
								}
							}
						}
					}
				},
				"description": "Retrieve all remote trust registries from the agent.",
				"summary": "Retrieve all remote trust registries from the agent.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "trustRegistryRemoteCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/RemoteTrustRegistryResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new remote trust registry.",
				"summary": "Create a new remote trust registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "The content of the remote trust registry:",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/RemoteTrustRegistryRequest",
								"description": "The content of the remote trust registry:"
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/trust/remote_providers/registries/{registryId}": {
			"get": {
				"operationId": "trustRegistryRemoteGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/RemoteTrustRegistryResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve remote trust registry by id.",
				"summary": "Retrieve remote trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"put": {
				"operationId": "trustRegistryRemoteUpdate",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/RemoteTrustRegistryResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update a remote trust registry by id.",
				"summary": "Update a remote trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "The updated trust registry content.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/RemoteTrustRegistryRequest",
								"description": "The updated trust registry content."
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "trustRegistryRemoteDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete a remote trust registry by id.",
				"summary": "Delete a remote trust registry by id.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the trust registry to delete.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/registries/{registryId}/fetch": {
			"post": {
				"operationId": "trustRegistryRemoteFetch",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedIssuerEntityList"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Fetch trusted issuer entities from a remote registry.",
				"summary": "Fetch trusted issuer entities from a remote registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/registries/{registryId}/entities": {
			"get": {
				"operationId": "trustRegistryRemoteGetEntities",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve all trusted issuer entities for a remote registry.",
				"summary": "Retrieve all trusted issuer entities for a remote registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/trust/remote_providers/registries/{registryId}/entities/{entityId}": {
			"get": {
				"operationId": "trustRegistryRemoteGetEntity",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/TrustedEntityAPIResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve a trusted issuer entity by id from a remote registry.",
				"summary": "Retrieve a trusted issuer entity by id from a remote registry.",
				"tags": [
					"Trust - Entities"
				],
				"security": [],
				"parameters": [
					{
						"description": "The trust registry identifier.",
						"in": "path",
						"name": "registryId",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "The trusted issuer entity identifier.",
						"in": "path",
						"name": "entityId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/diagency/auth_introspection_config": {
			"get": {
				"operationId": "authIntrospectionConfigGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AuthIntrospectionConfigResponse"
								}
							}
						}
					},
					"403": {
						"description": "Forbidden",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve the auth introspection configuration from the YAML config.\nThis configuration is read-only and applied to all non-holder agents.\nIt cannot be modified via API.",
				"summary": "Retrieve the auth introspection configuration from YAML.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": []
			}
		},
		"/v1.0/diagency/auth_introspection_config/providers": {
			"get": {
				"operationId": "authIntrospectionProviderGetAll",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AuthIntrospectionProviderList"
								}
							}
						}
					}
				},
				"description": "Retrieve all auth introspection providers from the agent database.\nThese providers are used to authenticate holder agents.",
				"summary": "Retrieve all auth introspection providers.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "authIntrospectionProviderCreate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AuthIntrospectionProviderResponse"
								}
							}
						}
					},
					"400": {
						"description": "Bad Request",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Create a new auth introspection provider.\nMust be performed by a tenant admin.",
				"summary": "Create a new auth introspection provider.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": [],
				"requestBody": {
					"description": "The content of the auth introspection provider.",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/AuthIntrospectionProviderRequest",
								"description": "The content of the auth introspection provider."
							}
						}
					}
				}
			}
		},
		"/v1.0/diagency/auth_introspection_config/providers/{id}": {
			"patch": {
				"operationId": "authIntrospectionProviderUpdate",
				"responses": {
					"200": {
						"description": "Success",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AuthIntrospectionProviderResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Update an auth introspection provider by id.\nMust be performed by a tenant admin.",
				"summary": "Update an auth introspection provider by id.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the auth introspection provider to update.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/AuthIntrospectionProviderUpdateRequest"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "authIntrospectionProviderGet",
				"responses": {
					"200": {
						"description": "OK",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/AuthIntrospectionProviderResponse"
								}
							}
						}
					},
					"404": {
						"description": "Not Found",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/IviApiErrorResponse"
								},
								"examples": {
									"Example 1": {
										"value": {
											"messageId": "",
											"messageDescription": ""
										}
									}
								}
							}
						}
					}
				},
				"description": "Retrieve auth introspection provider by id.",
				"summary": "Retrieve auth introspection provider by id.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": [
					{
						"description": "The auth introspection provider identifier.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"delete": {
				"operationId": "authIntrospectionProviderDelete",
				"responses": {
					"204": {
						"description": "Success"
					}
				},
				"description": "Delete an auth introspection provider by id.\nMust be performed by a tenant admin.",
				"summary": "Delete an auth introspection provider by id.",
				"tags": [
					"Auth Introspection Config"
				],
				"security": [],
				"parameters": [
					{
						"description": "Unique id of the auth introspection provider to delete.",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vp/exchange": {
			"get": {
				"operationId": "GetExchanges",
				"responses": {
					"200": {
						"description": "Array of VP exchanges",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeList"
								},
								"examples": {
									"Example VP exchanges response": {
										"value": [
											{
												"id": "exchange-123",
												"template_id": "template-123",
												"wallet_engagement": "openid4vp:///authorize?client_id=x509_hash:s6BhdRkqt3&request_uri=https%3A%2F%2Fverifier.example.org%2Fv1.0%2Foidvc%2Fvp%2Fexchange%2F1234%2Fjar",
												"execution_state": "created",
												"created_at": "2025-08-11T00:00:00.000Z",
												"expires_at": "2025-08-11T00:02:00.000Z",
												"modified_at": "2025-08-11T00:00:00.000Z",
												"authorize_request": {
													"response_type": "vp_token",
													"client_id": "x509_hash:s6BhdRkqt3",
													"response_mode": "direct_post",
													"state": "c0700f0b-6d3c-7540-a0b6-4f0ee71fa8ad"
												},
												"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
											}
										]
									}
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized. The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get all VP exchanges",
				"summary": "List all (or filtered) VP exchanges for the requesting agent",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "CreateExchange",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeAPIResponse"
								},
								"examples": {
									"Example VP exchange response": {
										"value": {
											"id": "exchange-123",
											"template_id": "template-123",
											"wallet_engagement": "openid4vp:///authorize?client_id=x509_hash:s6BhdRkqt3&request_uri=https%3A%2F%2Fverifier.example.org%2Fv1.0%2Foidvc%2Fvp%2Fexchange%2F1234%2Fjar",
											"execution_state": "created",
											"created_at": "2025-08-11T00:00:00.000Z",
											"expires_at": "2025-08-11T00:02:00.000Z",
											"modified_at": "2025-08-11T00:00:00.000Z",
											"authorize_request": {
												"response_type": "vp_token",
												"client_id": "x509_hash:s6BhdRkqt3",
												"response_mode": "direct_post",
												"state": "c0700f0b-6d3c-7540-a0b6-4f0ee71fa8ad"
											},
											"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
										}
									}
								}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					}
				},
				"summary": "Create a new VP exchange",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "VP exchange request body",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/OID4VPExchangeCreateRequest",
								"description": "VP exchange request body"
							}
						}
					}
				}
			}
		},
		"/v1.0/oidvc/vp/exchange/{id}": {
			"get": {
				"operationId": "GetExchange",
				"responses": {
					"200": {
						"description": "VP exchange",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchange"
								},
								"examples": {
									"Example VP exchange response": {
										"value": {
											"id": "exchange-123",
											"template_id": "template-123",
											"wallet_engagement": "openid4vp:///authorize?client_id=x509_hash:s6BhdRkqt3&request_uri=https%3A%2F%2Fverifier.example.org%2Fv1.0%2Foidvc%2Fvp%2Fexchange%2F1234%2Fjar",
											"execution_state": "created",
											"created_at": "2025-08-11T00:00:00.000Z",
											"expires_at": "2025-08-11T00:02:00.000Z",
											"modified_at": "2025-08-11T00:00:00.000Z",
											"authorize_request": {
												"response_type": "vp_token",
												"client_id": "x509_hash:s6BhdRkqt3",
												"response_mode": "direct_post",
												"state": "c0700f0b-6d3c-7540-a0b6-4f0ee71fa8ad"
											},
											"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
										}
									}
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "Exchange not found"
					}
				},
				"summary": "Get a specific VP exchange by ID",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"put": {
				"operationId": "UpdateExchange",
				"responses": {
					"200": {
						"description": "Updated VP exchange",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchange"
								},
								"examples": {
									"Example VP exchange response": {
										"value": {
											"execution_state": "cancel"
										}
									}
								}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "Exchange not found"
					}
				},
				"summary": "Update a VP exchange",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "Updated exchange data",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/OID4VPExchangeModifyRequest",
								"description": "Updated exchange data"
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "DeleteExchange",
				"responses": {
					"204": {
						"description": "No content"
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					}
				},
				"summary": "Delete a VP exchange",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vp/exchange/public/jar/{agentId}/{id}": {
			"post": {
				"operationId": "PostJwtSecuredAuthorizationRequest",
				"responses": {
					"200": {
						"description": "JWT Secured Authorization response",
						"content": {
							"application/oauth-authz-req+jwt": {
								"schema": {}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"404": {
						"description": "Exchange not found"
					}
				},
				"summary": "Process a wallet's request for a JWT Secured Authorization request",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "Wallet metadata",
					"required": true,
					"content": {
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/WalletJARRequest",
								"description": "Wallet metadata"
							}
						}
					}
				}
			},
			"get": {
				"operationId": "GetJwtSecuredAuthorizationRequest",
				"responses": {
					"200": {
						"description": "JWT Secured Authorization response",
						"content": {
							"application/oauth-authz-req+jwt": {
								"schema": {}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"404": {
						"description": "Exchange not found"
					}
				},
				"summary": "Process a wallet's request for a JWT Secured Authorization request",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		},
		"/v1.0/oidvc/vp/exchange/public/response/{agentId}/{id}": {
			"post": {
				"operationId": "ProcessVPTokenResponse",
				"responses": {
					"200": {
						"description": "Success response",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPRespEndpointResponse"
								}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"404": {
						"description": "Exchange not found"
					}
				},
				"summary": "Process a wallet's response containing a vp_token",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Exchange ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Agent ID",
						"in": "path",
						"name": "agentId",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "VP token response from wallet",
					"required": true,
					"content": {
						"application/x-www-form-urlencoded": {
							"schema": {
								"$ref": "#/components/schemas/WalletAuthorizationResponseAPI",
								"description": "VP token response from wallet"
							}
						}
					}
				}
			}
		},
		"/v1.0/oidvc/vp/exchange_templates": {
			"get": {
				"operationId": "GetTemplates",
				"responses": {
					"200": {
						"description": "Array of exchange templates",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeTemplateList"
								},
								"examples": {
									"Example exchange templates response": {
										"value": [
											{
												"id": "template-sd-jwt-123",
												"name": "Identity Verification (SD-JWT)",
												"description": "Request for identity verification using government ID in SD-JWT format",
												"exchange_template": {
													"dcql_query": {
														"credentials": [
															{
																"id": "gov_identity",
																"format": "dc+sd-jwt",
																"meta": {
																	"vct_values": [
																		"https://credentials.example.com/identity_credential"
																	]
																},
																"claims": [
																	{
																		"path": [
																			"given_name"
																		]
																	},
																	{
																		"path": [
																			"family_name"
																		]
																	},
																	{
																		"path": [
																			"birthdate"
																		]
																	}
																]
															}
														]
													},
													"response_mode": "direct_post",
													"ttl": 120
												},
												"created_at": "2025-08-11T00:00:00.000Z",
												"modified_at": "2025-08-11T00:00:00.000Z",
												"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
											},
											{
												"id": "template-mdoc-456",
												"name": "Mobile Driving License (mDL)",
												"description": "Request for mobile driving license verification using ISO mdoc format",
												"exchange_template": {
													"dcql_query": {
														"credentials": [
															{
																"id": "driving_license",
																"format": "mso_mdoc",
																"meta": {
																	"doctype_value": "org.iso.18013.5.1.mDL"
																},
																"claims": [
																	{
																		"path": [
																			"org.iso.18013.5.1",
																			"family_name"
																		]
																	},
																	{
																		"path": [
																			"org.iso.18013.5.1",
																			"given_name"
																		]
																	},
																	{
																		"path": [
																			"org.iso.18013.5.1",
																			"birth_date"
																		]
																	},
																	{
																		"path": [
																			"org.iso.18013.5.1",
																			"portrait"
																		]
																	},
																	{
																		"path": [
																			"org.iso.18013.5.1",
																			"driving_privileges"
																		]
																	}
																]
															}
														]
													},
													"response_mode": "direct_post",
													"ttl": 120
												},
												"created_at": "2025-08-11T00:00:00.000Z",
												"modified_at": "2025-08-11T00:00:00.000Z",
												"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
											},
											{
												"id": "template-jsonld-789",
												"name": "University Degree Verification",
												"description": "Request for university degree verification using W3C JSON-LD format",
												"exchange_template": {
													"dcql_query": {
														"credentials": [
															{
																"id": "university_degree",
																"format": "ldp_vc",
																"meta": {
																	"type_values": [
																		[
																			"VerifiableCredential",
																			"UniversityDegreeCredential"
																		]
																	]
																},
																"claims": [
																	{
																		"path": [
																			"credentialSubject",
																			"degree",
																			"type"
																		]
																	},
																	{
																		"path": [
																			"credentialSubject",
																			"degree",
																			"name"
																		]
																	},
																	{
																		"path": [
																			"credentialSubject",
																			"college"
																		]
																	},
																	{
																		"path": [
																			"credentialSubject",
																			"name"
																		]
																	}
																]
															}
														]
													},
													"response_mode": "direct_post",
													"ttl": 120
												},
												"created_at": "2025-08-11T00:00:00.000Z",
												"modified_at": "2025-08-11T00:00:00.000Z",
												"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
											}
										]
									}
								}
							}
						}
					},
					"401": {
						"description": "Access token missing or expired"
					},
					"403": {
						"description": "Access token is valid but not authorized.  The access token must belong to the issuing agent ID"
					},
					"404": {
						"description": "Agent not found"
					}
				},
				"description": "Get all exchange templates",
				"summary": "List all (or filtered) exchange templates for the requesting agent",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Controls the results that are returned in a page.\n\nYou can use the following query parameters:\n- page - Use to identify the requested page, or the offset. The default value is 1.\n- limit - Use to define the total number of results that are returned per page. The default value is 200 and the maximum allowed value is 1000.\n\nThe pagination parameter value must be HTML encoded. For example, to obtain the first page and only 5 results (i.e. `page=1&limit=5`), send `pagination=page%3D1%26limit%3D5`",
						"in": "query",
						"name": "pagination",
						"required": false,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "Returns results based on search criteria. The value of filter must be HTML encoded JSON object. Not every field of every record type can be queried.\n\nFor example, if the record has a `credential_document_type` field, you may prepare a filter value like `filter={\"credential_document_type\":\"org.iso.18013.5.1.mdl\"}` which would then be encoded as `filter=%7B\"credential_document_type\"%3A\"org.iso.18013.5.1.mdl\"%7D` for sending.",
						"in": "query",
						"name": "filter",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"post": {
				"operationId": "CreateTemplate",
				"responses": {
					"201": {
						"description": "Created",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeTemplateRecord"
								},
								"examples": {
									"Example exchange template response": {
										"value": {
											"id": "template-combined-101",
											"name": "Identity and Qualification Verification",
											"description": "Request for identity and qualification verification with multiple credential format options",
											"exchange_template": {
												"dcql_query": {
													"credentials": [
														{
															"id": "government_id",
															"format": "dc+sd-jwt",
															"meta": {
																"vct_values": [
																	"https://credentials.example.com/identity_credential"
																]
															},
															"claims": [
																{
																	"path": [
																		"given_name"
																	]
																},
																{
																	"path": [
																		"family_name"
																	]
																},
																{
																	"path": [
																		"birthdate"
																	]
																}
															]
														},
														{
															"id": "mobile_id",
															"format": "mso_mdoc",
															"meta": {
																"doctype_value": "org.iso.18013.5.1.mDL"
															},
															"claims": [
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"family_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"given_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"birth_date"
																	]
																}
															]
														},
														{
															"id": "degree_credential",
															"format": "ldp_vc",
															"meta": {
																"type_values": [
																	[
																		"VerifiableCredential",
																		"UniversityDegreeCredential"
																	]
																]
															},
															"claims": [
																{
																	"path": [
																		"credentialSubject",
																		"degree",
																		"name"
																	]
																},
																{
																	"path": [
																		"credentialSubject",
																		"college"
																	]
																}
															]
														}
													],
													"credential_sets": [
														{
															"options": [
																[
																	"government_id"
																],
																[
																	"mobile_id"
																]
															]
														},
														{
															"required": false,
															"options": [
																[
																	"degree_credential"
																]
															]
														}
													]
												},
												"response_mode": "direct_post",
												"ttl": 120
											},
											"created_at": "2025-08-11T00:00:00.000Z",
											"modified_at": "2025-08-11T00:00:00.000Z",
											"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
										}
									}
								}
							}
						}
					},
					"400": {
						"description": "Validation error"
					}
				},
				"summary": "Create a new exchange template",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "Exchange template request body",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/OID4VPExchangeTemplateCreateRequest",
								"description": "Exchange template request body"
							}
						}
					}
				}
			}
		},
		"/v1.0/oidvc/vp/exchange_templates/{id}": {
			"get": {
				"operationId": "GetTemplate",
				"responses": {
					"200": {
						"description": "Exchange template",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeTemplateRecord"
								},
								"examples": {
									"Example exchange template response": {
										"value": {
											"id": "template-combined-101",
											"name": "Identity and Qualification Verification",
											"description": "Request for identity and qualification verification with multiple credential format options",
											"exchange_template": {
												"dcql_query": {
													"credentials": [
														{
															"id": "government_id",
															"format": "dc+sd-jwt",
															"meta": {
																"vct_values": [
																	"https://credentials.example.com/identity_credential"
																]
															},
															"claims": [
																{
																	"path": [
																		"given_name"
																	]
																},
																{
																	"path": [
																		"family_name"
																	]
																},
																{
																	"path": [
																		"birthdate"
																	]
																}
															]
														},
														{
															"id": "mobile_id",
															"format": "mso_mdoc",
															"meta": {
																"doctype_value": "org.iso.18013.5.1.mDL"
															},
															"claims": [
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"family_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"given_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"birth_date"
																	]
																}
															]
														},
														{
															"id": "degree_credential",
															"format": "ldp_vc",
															"meta": {
																"type_values": [
																	[
																		"VerifiableCredential",
																		"UniversityDegreeCredential"
																	]
																]
															},
															"claims": [
																{
																	"path": [
																		"credentialSubject",
																		"degree",
																		"name"
																	]
																},
																{
																	"path": [
																		"credentialSubject",
																		"college"
																	]
																}
															]
														}
													],
													"credential_sets": [
														{
															"options": [
																[
																	"government_id"
																],
																[
																	"mobile_id"
																]
															]
														},
														{
															"required": false,
															"options": [
																[
																	"degree_credential"
																]
															]
														}
													]
												},
												"response_mode": "direct_post",
												"ttl": 120
											},
											"created_at": "2025-08-11T00:00:00.000Z",
											"modified_at": "2025-08-11T00:00:00.000Z",
											"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
										}
									}
								}
							}
						}
					},
					"404": {
						"description": "Template not found"
					}
				},
				"summary": "Get a specific exchange template by ID",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Template ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					}
				]
			},
			"put": {
				"operationId": "UpdateTemplate",
				"responses": {
					"200": {
						"description": "Updated exchange template",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OID4VPExchangeTemplateRecord"
								},
								"examples": {
									"Example exchange template response": {
										"value": {
											"id": "template-combined-101",
											"name": "Identity and Qualification Verification",
											"description": "Request for identity and qualification verification with multiple credential format options",
											"exchange_template": {
												"dcql_query": {
													"credentials": [
														{
															"id": "government_id",
															"format": "dc+sd-jwt",
															"meta": {
																"vct_values": [
																	"https://credentials.example.com/identity_credential"
																]
															},
															"claims": [
																{
																	"path": [
																		"given_name"
																	]
																},
																{
																	"path": [
																		"family_name"
																	]
																},
																{
																	"path": [
																		"birthdate"
																	]
																}
															]
														},
														{
															"id": "mobile_id",
															"format": "mso_mdoc",
															"meta": {
																"doctype_value": "org.iso.18013.5.1.mDL"
															},
															"claims": [
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"family_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"given_name"
																	]
																},
																{
																	"path": [
																		"org.iso.18013.5.1",
																		"birth_date"
																	]
																}
															]
														},
														{
															"id": "degree_credential",
															"format": "ldp_vc",
															"meta": {
																"type_values": [
																	[
																		"VerifiableCredential",
																		"UniversityDegreeCredential"
																	]
																]
															},
															"claims": [
																{
																	"path": [
																		"credentialSubject",
																		"degree",
																		"name"
																	]
																},
																{
																	"path": [
																		"credentialSubject",
																		"college"
																	]
																}
															]
														}
													],
													"credential_sets": [
														{
															"options": [
																[
																	"government_id"
																],
																[
																	"mobile_id"
																]
															]
														},
														{
															"required": false,
															"options": [
																[
																	"degree_credential"
																]
															]
														}
													]
												},
												"response_mode": "direct_post",
												"ttl": 120
											},
											"created_at": "2025-08-11T00:00:00.000Z",
											"modified_at": "2025-08-11T00:00:00.000Z",
											"owner_id": "33d58c9d-f6f9-7117-830b-b1c9d02bddfd"
										}
									}
								}
							}
						}
					},
					"400": {
						"description": "Validation error"
					},
					"404": {
						"description": "Template not found"
					}
				},
				"summary": "Update an exchange template",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Template ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				],
				"requestBody": {
					"description": "Updated template data",
					"required": true,
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/OID4VPExchangeTemplateUpdateRequest",
								"description": "Updated template data"
							}
						}
					}
				}
			},
			"delete": {
				"operationId": "DeleteTemplate",
				"responses": {
					"204": {
						"description": "No content"
					}
				},
				"summary": "Delete an exchange template",
				"tags": [
					"OpenID for Verifiable Presentations"
				],
				"security": [],
				"parameters": [
					{
						"description": "Template ID",
						"in": "path",
						"name": "id",
						"required": true,
						"schema": {
							"type": "string"
						}
					},
					{
						"description": "(optional) - The owning agent id to perform the query on behalf of. Tenant admin usage only.",
						"in": "query",
						"name": "owner_agent_id",
						"required": false,
						"schema": {
							"type": "string"
						}
					}
				]
			}
		}
	},
	"servers": [
		{
			"url": "/diagency"
		}
	],
	"tags": [
		{
			"name": "Agents"
		},
		{
			"name": "Trust - Anchors"
		},
		{
			"name": "Trust - Credential Status"
		},
		{
			"name": "Trust - Entities"
		},
		{
			"name": "Trust - Ledgers"
		},
		{
			"name": "Credential Configurations"
		},
		{
			"name": "OpenID for Verifiable Credential Issuance"
		},
		{
			"name": "OpenID for Verifiable Presentations"
		},
		{
			"name": "Credentials"
		},
		{
			"name": "Verifications"
		},
		{
			"name": "Well Known"
		},
		{
			"name": "DIDComm - Invitations"
		},
		{
			"name": "DIDComm - Connections"
		},
		{
			"name": "DIDComm - Proof Schemas"
		}
	]
}