{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/KmsRestClient.ts","../src/models/CoseKeyType.ts","../src/models/CoseKey.ts","../src/models/CoseKeyPair.ts","../src/models/KeyProviderType.ts","../src/models/KeyType.ts","../src/models/KeyVisibility.ts","../src/models/SignatureAlgorithm.ts","../src/models/KeyEncoding.ts","../src/models/Curve.ts","../src/models/KeyOperations.ts","../src/models/JwkUse.ts","../src/models/JwkKeyType.ts","../src/models/Jwk.ts","../src/models/KeyInfo.ts","../src/models/CreateRawSignature.ts","../src/models/CreateRawSignatureResponse.ts","../src/models/GenerateKey.ts","../src/models/GenerateKeyGlobal.ts","../src/models/JoseKeyPair.ts","../src/models/ManagedKeyPair.ts","../src/models/ManagedKeyInfo.ts","../src/models/IdentifierMethod.ts","../src/models/KeyProvider.ts","../src/models/KeyProviderResponse.ts","../src/models/ListKeyProvidersResponse.ts","../src/models/ListKeysResponse.ts","../src/models/Resolver.ts","../src/models/ListResolversResponse.ts","../src/models/ResolvePublicKey.ts","../src/models/ResolvedKeyInfo.ts","../src/models/StoreKey.ts","../src/models/VerifyRawSignature.ts","../src/models/VerifyRawSignatureResponse.ts"],"sourcesContent":["{\n  \"IKmsRestClient\": {\n    \"components\": {\n      \"schemas\": {\n        \"KmsCreateRawSignatureArgs\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"keyInfo\": {\n              \"$ref\": \"#/components/schemas/KeyInfo\"\n            },\n            \"input\": {\n              \"type\": \"string\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"input\",\n            \"keyInfo\"\n          ]\n        },\n        \"KeyInfo\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\"\n            },\n            \"key\": {\n              \"$ref\": \"#/components/schemas/Jwk\"\n            },\n            \"signatureAlgorithm\": {\n              \"$ref\": \"#/components/schemas/SignatureAlgorithm\"\n            },\n            \"keyVisibility\": {\n              \"$ref\": \"#/components/schemas/KeyVisibility\"\n            },\n            \"x5c\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain associated with the key.\"\n            },\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"A reference or alias to the key in the Key Management Service (KMS).\"\n            },\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"The Key Management System (KMS) identifier associated with the key.\"\n            },\n            \"keyType\": {\n              \"$ref\": \"#/components/schemas/KeyType\"\n            },\n            \"keyEncoding\": {\n              \"$ref\": \"#/components/schemas/KeyEncoding\"\n            },\n            \"opts\": {\n              \"type\": \"object\",\n              \"additionalProperties\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"Additional configuration options as key-value pairs.\"\n            }\n          },\n          \"additionalProperties\": false,\n          \"description\": \"Information about a cryptographic key, providing metadata and configuration details necessary for cryptographic operations.\"\n        },\n        \"Jwk\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kty\": {\n              \"$ref\": \"#/components/schemas/JwkKeyType\"\n            },\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Key identifier used to uniquely identify the key.\"\n            },\n            \"alg\": {\n              \"type\": \"string\",\n              \"description\": \"The algorithm intended for use with the key (JWA algorithm name).\"\n            },\n            \"use\": {\n              \"$ref\": \"#/components/schemas/JwkUse\"\n            },\n            \"keyOps\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/KeyOperations\"\n              },\n              \"description\": \"The allowed cryptographic operations for the key.\"\n            },\n            \"crv\": {\n              \"$ref\": \"#/components/schemas/Curve\"\n            },\n            \"x\": {\n              \"type\": \"string\",\n              \"description\": \"The x coordinate for elliptic curve keys (base64url-encoded).\"\n            },\n            \"y\": {\n              \"type\": \"string\",\n              \"description\": \"The y coordinate for elliptic curve keys (base64url-encoded).\"\n            },\n            \"d\": {\n              \"type\": \"string\",\n              \"description\": \"The private key parameter (base64url-encoded).\"\n            },\n            \"n\": {\n              \"type\": \"string\",\n              \"description\": \"The modulus value for RSA keys (base64url-encoded).\"\n            },\n            \"e\": {\n              \"type\": \"string\",\n              \"description\": \"The public exponent for RSA keys (base64url-encoded).\"\n            },\n            \"p\": {\n              \"type\": \"string\",\n              \"description\": \"The first prime factor for RSA private keys (base64url-encoded).\"\n            },\n            \"q\": {\n              \"type\": \"string\",\n              \"description\": \"The second prime factor for RSA private keys (base64url-encoded).\"\n            },\n            \"dp\": {\n              \"type\": \"string\",\n              \"description\": \"The first factor CRT exponent for RSA private keys (base64url-encoded).\"\n            },\n            \"dq\": {\n              \"type\": \"string\",\n              \"description\": \"The second factor CRT exponent for RSA private keys (base64url-encoded).\"\n            },\n            \"qi\": {\n              \"type\": \"string\",\n              \"description\": \"The first CRT coefficient for RSA private keys (base64url-encoded).\"\n            },\n            \"k\": {\n              \"type\": \"string\",\n              \"description\": \"The symmetric key value (base64url-encoded).\"\n            },\n            \"x5c\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain as base64-encoded DER certificates.\"\n            },\n            \"x5t\": {\n              \"type\": \"string\",\n              \"description\": \"X.509 certificate SHA-1 thumbprint (base64url-encoded).\"\n            },\n            \"x5u\": {\n              \"type\": \"string\",\n              \"description\": \"URL pointing to X.509 certificate or certificate chain.\"\n            },\n            \"x5tS256\": {\n              \"type\": \"string\",\n              \"description\": \"X.509 certificate SHA-256 thumbprint (base64url-encoded).\"\n            }\n          },\n          \"required\": [\n            \"kty\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a JSON Web Key (JWK) as defined by the JSON Web Key specification.\"\n        },\n        \"JwkKeyType\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"EC\",\n            \"RSA\",\n            \"OKP\",\n            \"oct\"\n          ],\n          \"description\": \"JSON Web Key (JWK) key type parameter identifying the cryptographic algorithm family.\"\n        },\n        \"JwkUse\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"sig\",\n            \"enc\"\n          ],\n          \"description\": \"Intended use of the key (signing or encryption).\"\n        },\n        \"KeyOperations\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"sign\",\n            \"verify\",\n            \"encrypt\",\n            \"decrypt\",\n            \"wrapKey\",\n            \"unwrapKey\",\n            \"deriveKey\",\n            \"deriveBits\"\n          ],\n          \"description\": \"Specific operations the key is intended for.\"\n        },\n        \"Curve\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"P-256\",\n            \"P-384\",\n            \"P-521\",\n            \"secp256k1\",\n            \"Ed25519\",\n            \"Ed448\",\n            \"X25519\",\n            \"X448\"\n          ],\n          \"description\": \"Elliptic curve identifier.\"\n        },\n        \"SignatureAlgorithm\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"ED25519\",\n            \"ECDSA_SHA256\",\n            \"ECDSA_SHA384\",\n            \"ECDSA_SHA512\",\n            \"ES256K\",\n            \"ECKA_DH_SHA256\",\n            \"HMAC_SHA256\",\n            \"HMAC_SHA384\",\n            \"HMAC_SHA512\",\n            \"RSA_SSA_PSS_SHA256_MGF1\",\n            \"RSA_SSA_PSS_SHA384_MGF1\",\n            \"RSA_SSA_PSS_SHA512_MGF1\"\n          ],\n          \"description\": \"Cryptographic signature algorithm identifier.\"\n        },\n        \"KeyVisibility\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"PUBLIC\",\n            \"PRIVATE\"\n          ],\n          \"description\": \"Indicates the visibility status of a cryptographic key.\"\n        },\n        \"KeyType\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"OKP\",\n            \"EC\",\n            \"RSA\"\n          ],\n          \"description\": \"Cryptographic key type identifier.\"\n        },\n        \"KeyEncoding\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"COSE\",\n            \"JOSE\"\n          ],\n          \"description\": \"The encoding format of the cryptographic key.\"\n        },\n        \"CreateRawSignatureResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"signature\": {\n              \"type\": \"string\",\n              \"description\": \"The created signature encoded as a base64 string.\"\n            }\n          },\n          \"required\": [\n            \"signature\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing the created signature.\"\n        },\n        \"KmsDeleteKeyArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"aliasOrKid\": {\n              \"type\": \"string\"\n            }\n          },\n          \"additionalProperties\": false\n        },\n        \"KmsGenerateKeyArgs\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"Alias for the generated key.\"\n            },\n            \"use\": {\n              \"$ref\": \"#/components/schemas/JwkUse\"\n            },\n            \"keyOperations\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/KeyOperations\"\n              }\n            },\n            \"alg\": {\n              \"$ref\": \"#/components/schemas/SignatureAlgorithm\"\n            },\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"Optional provider ID. If not specified, the default provider will be used.\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"ManagedKeyPair\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Key identifier, may be null.\"\n            },\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"Key Management System identifier.\"\n            },\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"Reference to the key in the KMS.\"\n            },\n            \"cose\": {\n              \"$ref\": \"#/components/schemas/CoseKeyPair\"\n            },\n            \"jose\": {\n              \"$ref\": \"#/components/schemas/JoseKeyPair\"\n            }\n          },\n          \"required\": [\n            \"providerId\",\n            \"alias\",\n            \"cose\",\n            \"jose\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a key pair used by a crypto provider, encapsulating both JOSE and COSE key pairs.\"\n        },\n        \"CoseKeyPair\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"privateCoseKey\": {\n              \"$ref\": \"#/components/schemas/CoseKey\"\n            },\n            \"publicCoseKey\": {\n              \"$ref\": \"#/components/schemas/CoseKey\"\n            }\n          },\n          \"required\": [\n            \"publicCoseKey\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a cryptographic key pair for COSE (CBOR Object Signing and Encryption) operations.\"\n        },\n        \"CoseKey\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kty\": {\n              \"$ref\": \"#/components/schemas/CoseKeyType\"\n            },\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Key identifier (base64url-encoded byte string).\"\n            },\n            \"alg\": {\n              \"type\": \"number\",\n              \"description\": \"The COSE algorithm identifier (e.g., -7=ES256, -35=ES384, -36=ES512, -8=EdDSA).\"\n            },\n            \"keyOps\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"number\"\n              },\n              \"description\": \"The allowed COSE key operations (1=sign, 2=verify, 3=encrypt, 4=decrypt, etc.).\"\n            },\n            \"baseIV\": {\n              \"type\": \"string\",\n              \"description\": \"Base initialization vector (base64url-encoded).\"\n            },\n            \"crv\": {\n              \"type\": \"number\",\n              \"description\": \"The COSE curve identifier (1=P-256, 2=P-384, 3=P-521, 8=secp256k1, 6=Ed25519, etc.).\"\n            },\n            \"x\": {\n              \"type\": \"string\",\n              \"description\": \"The x coordinate (base64url-encoded byte string).\"\n            },\n            \"y\": {\n              \"type\": \"string\",\n              \"description\": \"The y coordinate (base64url-encoded byte string).\"\n            },\n            \"d\": {\n              \"type\": \"string\",\n              \"description\": \"The private key parameter (base64url-encoded byte string).\"\n            },\n            \"x5chain\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain as base64-encoded certificates.\"\n            }\n          },\n          \"required\": [\n            \"kty\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a COSE (CBOR Object Signing and Encryption) key in JSON format.\"\n        },\n        \"CoseKeyType\": {\n          \"type\": \"number\",\n          \"enum\": [\n            1,\n            2,\n            3,\n            4\n          ],\n          \"description\": \"COSE key type parameter. 1=OKP (Octet Key Pair), 2=EC2 (Elliptic Curve), 3=RSA, 4=Symmetric.\"\n        },\n        \"JoseKeyPair\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"privateJwk\": {\n              \"$ref\": \"#/components/schemas/Jwk\"\n            },\n            \"publicJwk\": {\n              \"$ref\": \"#/components/schemas/Jwk\"\n            }\n          },\n          \"required\": [\n            \"publicJwk\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Data class representing a cryptographic key pair used with JOSE (JSON Object Signing and Encryption).\"\n        },\n        \"KmsGetKeyArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"aliasOrKid\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"aliasOrKid\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"ManagedKeyInfo\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\"\n            },\n            \"key\": {\n              \"$ref\": \"#/components/schemas/Jwk\"\n            },\n            \"signatureAlgorithm\": {\n              \"$ref\": \"#/components/schemas/SignatureAlgorithm\"\n            },\n            \"keyVisibility\": {\n              \"$ref\": \"#/components/schemas/KeyVisibility\"\n            },\n            \"x5c\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain associated with the key.\"\n            },\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"A reference or alias to the key in the Key Management Service (KMS).\"\n            },\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"The Key Management System (KMS) identifier associated with the key.\"\n            },\n            \"keyType\": {\n              \"$ref\": \"#/components/schemas/KeyType\"\n            },\n            \"keyEncoding\": {\n              \"$ref\": \"#/components/schemas/KeyEncoding\"\n            },\n            \"opts\": {\n              \"type\": \"object\",\n              \"additionalProperties\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"Additional configuration options as key-value pairs.\"\n            }\n          },\n          \"required\": [\n            \"key\",\n            \"alias\",\n            \"providerId\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a managed cryptographic key information that is guaranteed to be present and resolved, part of a KMS providing concrete access to the key.\"\n        },\n        \"KmsGetKeyProviderArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"additionalProperties\": false\n        },\n        \"KeyProviderResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"The unique identifier assigned to the Key Provider instance upon creation.\"\n            },\n            \"type\": {\n              \"$ref\": \"#/components/schemas/KeyProviderType\"\n            }\n          },\n          \"required\": [\n            \"providerId\",\n            \"type\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing the details of a Key Provider instance.\"\n        },\n        \"KeyProviderType\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"SOFTWARE\",\n            \"AZURE_KEYVAULT\",\n            \"AWS_KMS\"\n          ],\n          \"description\": \"The type of Key Provider. Determines the required configuration settings. - AZURE_KEYVAULT: Microsoft Azure Key Vault or Managed HSM. - AWS_KMS: Amazon Web Services Key Management Service.\"\n        },\n        \"kmsGetResolverArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"resolverId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"resolverId\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"Resolver\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"resolverId\": {\n              \"type\": \"string\",\n              \"description\": \"Unique identifier for the resolver.\"\n            },\n            \"supportedIdentifierMethods\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/IdentifierMethod\"\n              },\n              \"description\": \"List of identifier methods supported by this resolver.\"\n            },\n            \"supportedKeyTypes\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/KeyType\"\n              },\n              \"description\": \"List of key types supported by this resolver.\"\n            }\n          },\n          \"required\": [\n            \"resolverId\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a key resolver configuration.\"\n        },\n        \"IdentifierMethod\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"JWK\",\n            \"KID\",\n            \"COSE_KEY\",\n            \"X5C\",\n            \"DID\"\n          ],\n          \"description\": \"Method used to identify cryptographic keys.\"\n        },\n        \"KmsIsValidRawSignatureArgs\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"keyInfo\": {\n              \"$ref\": \"#/components/schemas/KeyInfo\"\n            },\n            \"input\": {\n              \"type\": \"string\"\n            },\n            \"signature\": {\n              \"type\": \"string\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"input\",\n            \"keyInfo\",\n            \"signature\"\n          ]\n        },\n        \"VerifyRawSignatureResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"isValid\": {\n              \"type\": \"boolean\",\n              \"description\": \"Indicates whether the signature is valid or not.\"\n            }\n          },\n          \"required\": [\n            \"isValid\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing the details of the signature verification.\"\n        },\n        \"KmsListKeyProvidersArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          },\n          \"additionalProperties\": false\n        },\n        \"ListKeyProvidersResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"providers\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/KeyProvider\"\n              }\n            }\n          },\n          \"required\": [\n            \"providers\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing the details of a Key Provider instance.\"\n        },\n        \"KeyProvider\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"The unique identifier assigned to the Key Provider instance upon creation.\"\n            },\n            \"type\": {\n              \"$ref\": \"#/components/schemas/KeyProviderType\"\n            }\n          },\n          \"required\": [\n            \"providerId\",\n            \"type\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing the details of a Key Provider instance.\"\n        },\n        \"KmsListKeysArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"additionalProperties\": false\n        },\n        \"ListKeysResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"keyInfos\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n              }\n            }\n          },\n          \"required\": [\n            \"keyInfos\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing all the managed keys.\"\n        },\n        \"KmsListResolversArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          },\n          \"additionalProperties\": false\n        },\n        \"ListResolversResponse\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"resolvers\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/Resolver\"\n              }\n            }\n          },\n          \"required\": [\n            \"resolvers\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Response body containing all the resolvers.\"\n        },\n        \"KmsProviderDeleteKeyArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            },\n            \"aliasOrKid\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"providerId\",\n            \"aliasOrKid\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"KmsProviderGenerateKey\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"Alias for the generated key.\"\n            },\n            \"use\": {\n              \"$ref\": \"#/components/schemas/JwkUse\"\n            },\n            \"keyOperations\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/components/schemas/KeyOperations\"\n              }\n            },\n            \"alg\": {\n              \"$ref\": \"#/components/schemas/SignatureAlgorithm\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"providerId\"\n          ]\n        },\n        \"KmsProviderGetKeyArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            },\n            \"aliasOrKid\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"providerId\",\n            \"aliasOrKid\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"KmsProviderListKeysArgs\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"providerId\"\n          ],\n          \"additionalProperties\": false\n        },\n        \"KmsProviderStoreKey\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"keyInfo\": {\n              \"$ref\": \"#/components/schemas/ResolvedKeyInfo\"\n            },\n            \"certChain\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain as base64-encoded DER certificates.\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"providerId\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"keyInfo\",\n            \"providerId\"\n          ]\n        },\n        \"ResolvedKeyInfo\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"kid\": {\n              \"type\": \"string\",\n              \"description\": \"Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\"\n            },\n            \"key\": {\n              \"$ref\": \"#/components/schemas/Jwk\"\n            },\n            \"signatureAlgorithm\": {\n              \"$ref\": \"#/components/schemas/SignatureAlgorithm\"\n            },\n            \"keyVisibility\": {\n              \"$ref\": \"#/components/schemas/KeyVisibility\"\n            },\n            \"x5c\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain associated with the key.\"\n            },\n            \"alias\": {\n              \"type\": \"string\",\n              \"description\": \"A reference or alias to the key in the Key Management Service (KMS).\"\n            },\n            \"providerId\": {\n              \"type\": \"string\",\n              \"description\": \"The Key Management System (KMS) identifier associated with the key.\"\n            },\n            \"keyType\": {\n              \"$ref\": \"#/components/schemas/KeyType\"\n            },\n            \"keyEncoding\": {\n              \"$ref\": \"#/components/schemas/KeyEncoding\"\n            },\n            \"opts\": {\n              \"type\": \"object\",\n              \"additionalProperties\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"Additional configuration options as key-value pairs.\"\n            }\n          },\n          \"required\": [\n            \"key\"\n          ],\n          \"additionalProperties\": false,\n          \"description\": \"Represents a resolved cryptographic key information where the key is guaranteed to be present and resolved, providing concrete access to the key.\"\n        },\n        \"KmsResolveKeyArgs\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"keyInfo\": {\n              \"$ref\": \"#/components/schemas/KeyInfo\"\n            },\n            \"identifierMethod\": {\n              \"$ref\": \"#/components/schemas/IdentifierMethod\"\n            },\n            \"trustedCerts\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"Optional array of trusted certificates (base64-encoded) that may be used in the resolution process.\"\n            },\n            \"verifyX509CertificateChain\": {\n              \"type\": \"boolean\",\n              \"description\": \"Optional boolean indicating whether the X.509 certificate chain should be verified.\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            },\n            \"resolverId\": {\n              \"$ref\": \"#/components/schemas/String\"\n            }\n          },\n          \"required\": [\n            \"keyInfo\",\n            \"resolverId\"\n          ]\n        },\n        \"String\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"length\": {\n              \"type\": \"number\"\n            }\n          },\n          \"required\": [\n            \"length\"\n          ],\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"KmsStoreKeyArgs\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"keyInfo\": {\n              \"$ref\": \"#/components/schemas/ResolvedKeyInfo\"\n            },\n            \"certChain\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"string\"\n              },\n              \"description\": \"X.509 certificate chain as base64-encoded DER certificates.\"\n            },\n            \"baseUrl\": {\n              \"type\": \"string\"\n            }\n          },\n          \"required\": [\n            \"keyInfo\"\n          ]\n        }\n      },\n      \"methods\": {\n        \"kmsCreateRawSignature\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsCreateRawSignatureArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/CreateRawSignatureResponse\"\n          }\n        },\n        \"kmsDeleteKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsDeleteKeyArgs\"\n          },\n          \"returnType\": {\n            \"type\": \"boolean\"\n          }\n        },\n        \"kmsGenerateKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsGenerateKeyArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyPair\"\n          }\n        },\n        \"kmsGetKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsGetKeyArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n          }\n        },\n        \"kmsGetKeyProvider\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsGetKeyProviderArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/KeyProviderResponse\"\n          }\n        },\n        \"kmsGetResolver\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/kmsGetResolverArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/Resolver\"\n          }\n        },\n        \"kmsIsValidRawSignature\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsIsValidRawSignatureArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/VerifyRawSignatureResponse\"\n          }\n        },\n        \"kmsListKeyProviders\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsListKeyProvidersArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ListKeyProvidersResponse\"\n          }\n        },\n        \"kmsListKeys\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsListKeysArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ListKeysResponse\"\n          }\n        },\n        \"kmsListResolvers\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsListResolversArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ListResolversResponse\"\n          }\n        },\n        \"kmsProviderDeleteKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsProviderDeleteKeyArgs\"\n          },\n          \"returnType\": {\n            \"type\": \"boolean\"\n          }\n        },\n        \"kmsProviderGenerateKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsProviderGenerateKey\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyPair\"\n          }\n        },\n        \"kmsProviderGetKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsProviderGetKeyArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n          }\n        },\n        \"kmsProviderListKeys\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsProviderListKeysArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ListKeysResponse\"\n          }\n        },\n        \"kmsProviderStoreKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsProviderStoreKey\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n          }\n        },\n        \"kmsResolveKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsResolveKeyArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ResolvedKeyInfo\"\n          }\n        },\n        \"kmsStoreKey\": {\n          \"description\": \"\",\n          \"arguments\": {\n            \"$ref\": \"#/components/schemas/KmsStoreKeyArgs\"\n          },\n          \"returnType\": {\n            \"$ref\": \"#/components/schemas/ManagedKeyInfo\"\n          }\n        }\n      }\n    }\n  }\n}","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { KmsRestClient } from './agent/KmsRestClient'\nexport type * from './types/IKmsRestClient'\n","import { IAgentPlugin } from '@veramo/core'\nimport { Loggers } from '@sphereon/ssi-types'\nimport { fetch } from 'cross-fetch'\nimport type {\n  kmsGetResolverArgs,\n  KmsListResolversArgs,\n  IKmsRestClient,\n  KmsResolveKeyArgs,\n  KmsCreateRawSignatureArgs,\n  KmsGetKeyArgs,\n  KmsListKeysArgs,\n  KmsStoreKeyArgs,\n  KmsGenerateKeyArgs,\n  KmsDeleteKeyArgs,\n  KmsGetKeyProviderArgs,\n  KmsListKeyProvidersArgs,\n  KmsProviderListKeysArgs,\n  KmsProviderStoreKey,\n  KmsProviderGenerateKey,\n  KmsProviderGetKeyArgs,\n  KmsProviderDeleteKeyArgs,\n  RestClientAuthenticationOpts,\n  KmsRestClientArgs,\n  KmsIsValidRawSignatureArgs\n} from '../types/IKmsRestClient'\nimport type {\n  CreateRawSignature,\n  CreateRawSignatureResponse,\n  GenerateKey,\n  GenerateKeyGlobal,\n  ListKeyProvidersResponse,\n  ListKeysResponse,\n  ListResolversResponse,\n  ManagedKeyInfo,\n  ManagedKeyPair,\n  ResolvedKeyInfo,\n  ResolvePublicKey,\n  Resolver,\n  VerifyRawSignatureResponse,\n  StoreKey,\n  VerifyRawSignature,\n  KeyProviderResponse,\n} from '../models'\nimport {\n  CreateRawSignatureToJSONTyped,\n  CreateRawSignatureResponseFromJSONTyped,\n  GenerateKeyGlobalToJSONTyped,\n  GenerateKeyToJSONTyped,\n  ListKeyProvidersResponseFromJSONTyped,\n  ListKeysResponseFromJSONTyped,\n  ListResolversResponseFromJSONTyped,\n  ManagedKeyInfoFromJSONTyped,\n  ManagedKeyPairFromJSONTyped,\n  ResolvePublicKeyToJSONTyped,\n  ResolvedKeyInfoFromJSONTyped,\n  ResolverFromJSONTyped,\n  VerifyRawSignatureResponseFromJSONTyped,\n  StoreKeyToJSONTyped,\n  VerifyRawSignatureToJSONTyped,\n  KeyProviderResponseFromJSONTyped\n} from '../models'\n\nconst logger = Loggers.DEFAULT.get('sphereon:ssi-sdk:kms:rest-client')\n\n/**\n * {@inheritDoc IKmsRestClient}\n */\nexport class KmsRestClient implements IAgentPlugin {\n  readonly methods: IKmsRestClient = {\n    kmsGetKey: this.kmsGetKey.bind(this),\n    kmsListKeys: this.kmsListKeys.bind(this),\n    kmsStoreKey: this.kmsStoreKey.bind(this),\n    kmsGenerateKey: this.kmsGenerateKey.bind(this),\n    kmsDeleteKey: this.kmsDeleteKey.bind(this),\n\n    kmsGetKeyProvider: this.kmsGetKeyProvider.bind(this),\n    kmsListKeyProviders: this.kmsListKeyProviders.bind(this),\n    kmsProviderListKeys: this.kmsProviderListKeys.bind(this),\n    kmsProviderStoreKey: this.kmsProviderStoreKey.bind(this),\n    kmsProviderGenerateKey: this.kmsProviderGenerateKey.bind(this),\n    kmsProviderGetKey: this.kmsProviderGetKey.bind(this),\n    kmsProviderDeleteKey: this.kmsProviderDeleteKey.bind(this),\n\n    kmsGetResolver: this.kmsGetResolver.bind(this),\n    kmsListResolvers: this.kmsListResolvers.bind(this),\n    kmsResolveKey: this.kmsResolveKey.bind(this),\n\n    kmsCreateRawSignature: this.kmsCreateRawSignature.bind(this),\n    kmsIsValidRawSignature: this.kmsIsValidRawSignature.bind(this)\n  }\n\n  private readonly agentBaseUrl?: string\n  private readonly authOpts?: RestClientAuthenticationOpts\n\n  constructor(args?: KmsRestClientArgs) {\n    if (args?.baseUrl) {\n      this.agentBaseUrl = args.baseUrl\n    }\n    this.authOpts = args?.authentication\n  }\n\n  private static urlWithBase(path: string, baseUrl: string): string {\n    return `${baseUrl}${path.startsWith('/') ? path : `/${path}`}`\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsGetResolver} */\n  private async kmsGetResolver(args: kmsGetResolverArgs): Promise<Resolver> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/resolvers/${args.resolverId}`, baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`get resolver response: ${response}`)\n\n    try {\n      return ResolverFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsListResolvers} */\n  private async kmsListResolvers(args: KmsListResolversArgs): Promise<ListResolversResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase('/resolvers', baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`list resolvers response: ${response}`)\n\n    try {\n      return ListResolversResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsResolveKey} */\n  private async kmsResolveKey(args: KmsResolveKeyArgs): Promise<ResolvedKeyInfo> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/resolvers/${args.resolverId}/resolve`, baseUrl)\n\n    const body = {\n      keyInfo: args.keyInfo,\n      identifierMethod: args.identifierMethod,\n      trustedCerts: args.trustedCerts,\n      verifyX509CertificateChain: args.verifyX509CertificateChain\n    } satisfies ResolvePublicKey\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(ResolvePublicKeyToJSONTyped(body)),\n    })\n    logger.debug(`resolve key response: ${response}`)\n\n    try {\n      return ResolvedKeyInfoFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsCreateRawSignature} */\n  private async kmsCreateRawSignature(args: KmsCreateRawSignatureArgs): Promise<CreateRawSignatureResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/signatures/raw`, baseUrl)\n\n    const body = {\n      keyInfo: args.keyInfo,\n      input: args.input,\n    } satisfies CreateRawSignature\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(CreateRawSignatureToJSONTyped(body)),\n    })\n    logger.debug(`create raw signature response: ${response}`)\n\n    try {\n      return CreateRawSignatureResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsIsValidRawSignature} */\n  private async kmsIsValidRawSignature(args: KmsIsValidRawSignatureArgs): Promise<VerifyRawSignatureResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/signatures/raw/verify`, baseUrl)\n\n    const body = {\n      keyInfo: args.keyInfo,\n      signature: args.signature,\n      input: args.input,\n    } satisfies VerifyRawSignature\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(VerifyRawSignatureToJSONTyped(body)),\n    })\n    logger.debug(`verify raw signature response: ${response}`)\n\n    try {\n      return VerifyRawSignatureResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsGetKey} */\n  private async kmsGetKey(args: KmsGetKeyArgs): Promise<ManagedKeyInfo> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/keys/${args.aliasOrKid}`, baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`get key response: ${response}`)\n\n    try {\n      return ManagedKeyInfoFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsListKeys} */\n  private async kmsListKeys(args: KmsListKeysArgs): Promise<ListKeysResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = this.addSearchParams(KmsRestClient.urlWithBase('/keys', baseUrl), { ...(args.providerId && { providerId: args.providerId }) })\n    const response = await fetch(url, {\n      method: 'GET',\n    })\n    logger.debug(`list keys response: ${response}`)\n\n    try {\n      const xx = await response.json()\n      return ListKeysResponseFromJSONTyped(xx, false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsStoreKey} */\n  private async kmsStoreKey(args: KmsStoreKeyArgs): Promise<ManagedKeyInfo> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/keys`, baseUrl)\n\n    const body = {\n      keyInfo: args.keyInfo,\n      certChain: args.certChain,\n    } satisfies StoreKey\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(StoreKeyToJSONTyped(body)),\n    })\n    logger.debug(`store key response: ${response}`)\n\n    try {\n      return ManagedKeyInfoFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsGenerateKey} */\n  private async kmsGenerateKey(args: KmsGenerateKeyArgs): Promise<ManagedKeyPair> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/keys/generate`, baseUrl)\n\n    const body = {\n      alg: args.alg,\n      keyOperations: args.keyOperations,\n      providerId: args.providerId,\n      use: args.use,\n    } satisfies GenerateKeyGlobal\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(GenerateKeyGlobalToJSONTyped(body)),\n    })\n    logger.debug(`generate key response: ${response}`)\n\n    try {\n      return ManagedKeyPairFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsDeleteKey} */\n  private async kmsDeleteKey(args: KmsDeleteKeyArgs): Promise<boolean> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/keys/${args.aliasOrKid}`, baseUrl)\n\n    await fetch(url, {\n      method: 'DELETE'\n    })\n\n    return true\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsGetKeyProvider} */\n  private async kmsGetKeyProvider(args: KmsGetKeyProviderArgs): Promise<KeyProviderResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/providers/${args.providerId}`, baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`get provider response: ${response}`)\n\n    try {\n      return KeyProviderResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsListKeyProviders} */\n  private async kmsListKeyProviders(args: KmsListKeyProvidersArgs): Promise<ListKeyProvidersResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase('/providers', baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`list providers response: ${response}`)\n\n    try {\n      return ListKeyProvidersResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsProviderListKeys} */\n  private async kmsProviderListKeys(args: KmsProviderListKeysArgs): Promise<ListKeysResponse> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/providers/${args.providerId}/keys`, baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`list provider keys response: ${response}`)\n\n    try {\n      return ListKeysResponseFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsProviderStoreKey} */\n  private async kmsProviderStoreKey(args: KmsProviderStoreKey): Promise<ManagedKeyInfo> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/providers/${args.providerId}/keys`, baseUrl)\n\n    const body = {\n      keyInfo: args.keyInfo,\n      certChain: args.certChain,\n    } satisfies StoreKey\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(StoreKeyToJSONTyped(body)),\n    })\n    logger.debug(`provider store key response: ${response}`)\n\n    try {\n      return ManagedKeyInfoFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsProviderGenerateKey} */\n  private async kmsProviderGenerateKey(args: KmsProviderGenerateKey): Promise<ManagedKeyPair> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/providers/${args.providerId}/keys/generate`, baseUrl)\n\n    const body = {\n      alg: args.alg,\n      keyOperations: args.keyOperations,\n      use: args.use,\n    } satisfies GenerateKey\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: await this.createHeaders({ 'Content-Type': 'application/json' }),\n      body: JSON.stringify(GenerateKeyToJSONTyped(body)),\n    })\n    logger.debug(`provider generate key response: ${response}`)\n\n    try {\n      return ManagedKeyPairFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsProviderGetKey} */\n  private async kmsProviderGetKey(args: KmsProviderGetKeyArgs): Promise<ManagedKeyInfo> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`/providers/${args.providerId}/keys/${args.aliasOrKid}`, baseUrl)\n\n    const response = await fetch(url, {\n      method: 'GET'\n    })\n    logger.debug(`get provider key response: ${response}`)\n\n    try {\n      return ManagedKeyInfoFromJSONTyped(await response.json(), false)\n    } catch (error) {\n      return Promise.reject(Error(`request to ${url} returned ${error}`))\n    }\n  }\n\n  /** {@inheritDoc IKmsRestClient.kmsProviderDeleteKey} */\n  private async kmsProviderDeleteKey(args: KmsProviderDeleteKeyArgs): Promise<boolean> {\n    const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)\n    const url = KmsRestClient.urlWithBase(`providers/${args.providerId}/keys/${args.aliasOrKid}`, baseUrl)\n\n    await fetch(url, {\n      method: 'DELETE'\n    })\n\n    return true\n  }\n\n  private assertedAgentBaseUrl(baseUrl?: string): string {\n    if (baseUrl) {\n      return baseUrl\n    } else if (this.agentBaseUrl) {\n      return this.agentBaseUrl\n    }\n    throw new Error('No base url has been provided')\n  }\n\n  private async createHeaders(existing?: Record<string, any>): Promise<HeadersInit> {\n    const headers: HeadersInit = {\n      ...existing,\n      Accept: 'application/json',\n    }\n    if (this.authOpts?.enabled === true) {\n      if (!this.authOpts.bearerToken) {\n        throw Error(`Cannot have authentication enabled, whilst not enabling static bearer tokens at this point`)\n      }\n      headers.Authorization = `Bearer ${\n        typeof this.authOpts.bearerToken === 'string' ? this.authOpts.bearerToken : await this.authOpts.bearerToken()\n      }`\n    }\n    return headers\n  }\n\n  private addSearchParams(baseUrl: string, params: Record<string, string | number | boolean>): URL {\n    const url = new URL(baseUrl);\n\n    for (const [key, value] of Object.entries(params)) {\n      url.searchParams.set(key, String(value));\n    }\n\n    return url;\n  }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * COSE key type parameter. 1=OKP (Octet Key Pair), 2=EC2 (Elliptic Curve), 3=RSA, 4=Symmetric.\n * @export\n */\nexport const CoseKeyType = {\n    NUMBER_1: 1,\n    NUMBER_2: 2,\n    NUMBER_3: 3,\n    NUMBER_4: 4\n} as const;\nexport type CoseKeyType = typeof CoseKeyType[keyof typeof CoseKeyType];\n\n\nexport function instanceOfCoseKeyType(value: any): boolean {\n    for (const key in CoseKeyType) {\n        if (Object.prototype.hasOwnProperty.call(CoseKeyType, key)) {\n            if (CoseKeyType[key as keyof typeof CoseKeyType] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function CoseKeyTypeFromJSON(json: any): CoseKeyType {\n    return CoseKeyTypeFromJSONTyped(json, false);\n}\n\nexport function CoseKeyTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoseKeyType {\n    return json as CoseKeyType;\n}\n\nexport function CoseKeyTypeToJSON(value?: CoseKeyType | null): any {\n    return value as any;\n}\n\nexport function CoseKeyTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): CoseKeyType {\n    return value as CoseKeyType;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { CoseKeyType } from './CoseKeyType';\nimport {\n    CoseKeyTypeFromJSON,\n    CoseKeyTypeToJSON,\n} from './CoseKeyType';\n\n/**\n * Represents a COSE (CBOR Object Signing and Encryption) key in JSON format.\n * @export\n * @interface CoseKey\n */\nexport interface CoseKey {\n    /**\n     *\n     * @type {CoseKeyType}\n     * @memberof CoseKey\n     */\n    kty: CoseKeyType;\n    /**\n     * Key identifier (base64url-encoded byte string).\n     * @type {string}\n     * @memberof CoseKey\n     */\n    kid?: string;\n    /**\n     * The COSE algorithm identifier (e.g., -7=ES256, -35=ES384, -36=ES512, -8=EdDSA).\n     * @type {number}\n     * @memberof CoseKey\n     */\n    alg?: number;\n    /**\n     * The allowed COSE key operations (1=sign, 2=verify, 3=encrypt, 4=decrypt, etc.).\n     * @type {Array<number>}\n     * @memberof CoseKey\n     */\n    keyOps?: Array<number>;\n    /**\n     * Base initialization vector (base64url-encoded).\n     * @type {string}\n     * @memberof CoseKey\n     */\n    baseIV?: string;\n    /**\n     * The COSE curve identifier (1=P-256, 2=P-384, 3=P-521, 8=secp256k1, 6=Ed25519, etc.).\n     * @type {number}\n     * @memberof CoseKey\n     */\n    crv?: number;\n    /**\n     * The x coordinate (base64url-encoded byte string).\n     * @type {string}\n     * @memberof CoseKey\n     */\n    x?: string;\n    /**\n     * The y coordinate (base64url-encoded byte string).\n     * @type {string}\n     * @memberof CoseKey\n     */\n    y?: string;\n    /**\n     * The private key parameter (base64url-encoded byte string).\n     * @type {string}\n     * @memberof CoseKey\n     */\n    d?: string;\n    /**\n     * X.509 certificate chain as base64-encoded certificates.\n     * @type {Array<string>}\n     * @memberof CoseKey\n     */\n    x5chain?: Array<string>;\n}\n\n\n\n/**\n * Check if a given object implements the CoseKey interface.\n */\nexport function instanceOfCoseKey(value: object): value is CoseKey {\n    if (!('kty' in value) || value['kty'] === undefined) return false;\n    return true;\n}\n\nexport function CoseKeyFromJSON(json: any): CoseKey {\n    return CoseKeyFromJSONTyped(json, false);\n}\n\nexport function CoseKeyFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoseKey {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kty': CoseKeyTypeFromJSON(json['kty']),\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'alg': json['alg'] == null ? undefined : json['alg'],\n        'keyOps': json['key_ops'] == null ? undefined : json['key_ops'],\n        'baseIV': json['baseIV'] == null ? undefined : json['baseIV'],\n        'crv': json['crv'] == null ? undefined : json['crv'],\n        'x': json['x'] == null ? undefined : json['x'],\n        'y': json['y'] == null ? undefined : json['y'],\n        'd': json['d'] == null ? undefined : json['d'],\n        'x5chain': json['x5chain'] == null ? undefined : json['x5chain'],\n    };\n}\n\nexport function CoseKeyToJSON(json: any): CoseKey {\n    return CoseKeyToJSONTyped(json, false);\n}\n\nexport function CoseKeyToJSONTyped(value?: CoseKey | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kty': CoseKeyTypeToJSON(value['kty']),\n        'kid': value['kid'],\n        'alg': value['alg'],\n        'key_ops': value['keyOps'],\n        'baseIV': value['baseIV'],\n        'crv': value['crv'],\n        'x': value['x'],\n        'y': value['y'],\n        'd': value['d'],\n        'x5chain': value['x5chain'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { CoseKey } from './CoseKey';\nimport {\n    CoseKeyFromJSON,\n    CoseKeyToJSON,\n} from './CoseKey';\n\n/**\n * Represents a cryptographic key pair for COSE (CBOR Object Signing and Encryption) operations.\n * @export\n * @interface CoseKeyPair\n */\nexport interface CoseKeyPair {\n    /**\n     *\n     * @type {CoseKey}\n     * @memberof CoseKeyPair\n     */\n    privateCoseKey?: CoseKey;\n    /**\n     *\n     * @type {CoseKey}\n     * @memberof CoseKeyPair\n     */\n    publicCoseKey: CoseKey;\n}\n\n/**\n * Check if a given object implements the CoseKeyPair interface.\n */\nexport function instanceOfCoseKeyPair(value: object): value is CoseKeyPair {\n    if (!('publicCoseKey' in value) || value['publicCoseKey'] === undefined) return false;\n    return true;\n}\n\nexport function CoseKeyPairFromJSON(json: any): CoseKeyPair {\n    return CoseKeyPairFromJSONTyped(json, false);\n}\n\nexport function CoseKeyPairFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoseKeyPair {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'privateCoseKey': json['privateCoseKey'] == null ? undefined : CoseKeyFromJSON(json['privateCoseKey']),\n        'publicCoseKey': CoseKeyFromJSON(json['publicCoseKey']),\n    };\n}\n\nexport function CoseKeyPairToJSON(json: any): CoseKeyPair {\n    return CoseKeyPairToJSONTyped(json, false);\n}\n\nexport function CoseKeyPairToJSONTyped(value?: CoseKeyPair | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'privateCoseKey': CoseKeyToJSON(value['privateCoseKey']),\n        'publicCoseKey': CoseKeyToJSON(value['publicCoseKey']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of Key Provider. Determines the required configuration settings. - AZURE_KEYVAULT: Microsoft Azure Key Vault or Managed HSM. - AWS_KMS: Amazon Web Services Key Management Service.\n * @export\n */\nexport const KeyProviderType = {\n    Software: 'SOFTWARE',\n    AzureKeyvault: 'AZURE_KEYVAULT',\n    AwsKms: 'AWS_KMS'\n} as const;\nexport type KeyProviderType = typeof KeyProviderType[keyof typeof KeyProviderType];\n\n\nexport function instanceOfKeyProviderType(value: any): boolean {\n    for (const key in KeyProviderType) {\n        if (Object.prototype.hasOwnProperty.call(KeyProviderType, key)) {\n            if (KeyProviderType[key as keyof typeof KeyProviderType] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function KeyProviderTypeFromJSON(json: any): KeyProviderType {\n    return KeyProviderTypeFromJSONTyped(json, false);\n}\n\nexport function KeyProviderTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyProviderType {\n    return json as KeyProviderType;\n}\n\nexport function KeyProviderTypeToJSON(value?: KeyProviderType | null): any {\n    return value as any;\n}\n\nexport function KeyProviderTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): KeyProviderType {\n    return value as KeyProviderType;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Cryptographic key type identifier.\n * @export\n */\nexport const KeyType = {\n    Okp: 'OKP',\n    Ec: 'EC',\n    Rsa: 'RSA'\n} as const;\nexport type KeyType = typeof KeyType[keyof typeof KeyType];\n\n\nexport function instanceOfKeyType(value: any): boolean {\n    for (const key in KeyType) {\n        if (Object.prototype.hasOwnProperty.call(KeyType, key)) {\n            if (KeyType[key as keyof typeof KeyType] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function KeyTypeFromJSON(json: any): KeyType {\n    return KeyTypeFromJSONTyped(json, false);\n}\n\nexport function KeyTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyType {\n    return json as KeyType;\n}\n\nexport function KeyTypeToJSON(value?: KeyType | null): any {\n    return value as any;\n}\n\nexport function KeyTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): KeyType {\n    return value as KeyType;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicates the visibility status of a cryptographic key.\n * @export\n */\nexport const KeyVisibility = {\n    Public: 'PUBLIC',\n    Private: 'PRIVATE'\n} as const;\nexport type KeyVisibility = typeof KeyVisibility[keyof typeof KeyVisibility];\n\n\nexport function instanceOfKeyVisibility(value: any): boolean {\n    for (const key in KeyVisibility) {\n        if (Object.prototype.hasOwnProperty.call(KeyVisibility, key)) {\n            if (KeyVisibility[key as keyof typeof KeyVisibility] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function KeyVisibilityFromJSON(json: any): KeyVisibility {\n    return KeyVisibilityFromJSONTyped(json, false);\n}\n\nexport function KeyVisibilityFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyVisibility {\n    return json as KeyVisibility;\n}\n\nexport function KeyVisibilityToJSON(value?: KeyVisibility | null): any {\n    return value as any;\n}\n\nexport function KeyVisibilityToJSONTyped(value: any, ignoreDiscriminator: boolean): KeyVisibility {\n    return value as KeyVisibility;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Cryptographic signature algorithm identifier.\n * @export\n */\nexport const SignatureAlgorithm = {\n    Ed25519: 'ED25519',\n    EcdsaSha256: 'ECDSA_SHA256',\n    EcdsaSha384: 'ECDSA_SHA384',\n    EcdsaSha512: 'ECDSA_SHA512',\n    Es256K: 'ES256K',\n    EckaDhSha256: 'ECKA_DH_SHA256',\n    HmacSha256: 'HMAC_SHA256',\n    HmacSha384: 'HMAC_SHA384',\n    HmacSha512: 'HMAC_SHA512',\n    RsaSsaPssSha256Mgf1: 'RSA_SSA_PSS_SHA256_MGF1',\n    RsaSsaPssSha384Mgf1: 'RSA_SSA_PSS_SHA384_MGF1',\n    RsaSsaPssSha512Mgf1: 'RSA_SSA_PSS_SHA512_MGF1'\n} as const;\nexport type SignatureAlgorithm = typeof SignatureAlgorithm[keyof typeof SignatureAlgorithm];\n\n\nexport function instanceOfSignatureAlgorithm(value: any): boolean {\n    for (const key in SignatureAlgorithm) {\n        if (Object.prototype.hasOwnProperty.call(SignatureAlgorithm, key)) {\n            if (SignatureAlgorithm[key as keyof typeof SignatureAlgorithm] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function SignatureAlgorithmFromJSON(json: any): SignatureAlgorithm {\n    return SignatureAlgorithmFromJSONTyped(json, false);\n}\n\nexport function SignatureAlgorithmFromJSONTyped(json: any, ignoreDiscriminator: boolean): SignatureAlgorithm {\n    return json as SignatureAlgorithm;\n}\n\nexport function SignatureAlgorithmToJSON(value?: SignatureAlgorithm | null): any {\n    return value as any;\n}\n\nexport function SignatureAlgorithmToJSONTyped(value: any, ignoreDiscriminator: boolean): SignatureAlgorithm {\n    return value as SignatureAlgorithm;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The encoding format of the cryptographic key.\n * @export\n */\nexport const KeyEncoding = {\n    Cose: 'COSE',\n    Jose: 'JOSE'\n} as const;\nexport type KeyEncoding = typeof KeyEncoding[keyof typeof KeyEncoding];\n\n\nexport function instanceOfKeyEncoding(value: any): boolean {\n    for (const key in KeyEncoding) {\n        if (Object.prototype.hasOwnProperty.call(KeyEncoding, key)) {\n            if (KeyEncoding[key as keyof typeof KeyEncoding] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function KeyEncodingFromJSON(json: any): KeyEncoding {\n    return KeyEncodingFromJSONTyped(json, false);\n}\n\nexport function KeyEncodingFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyEncoding {\n    return json as KeyEncoding;\n}\n\nexport function KeyEncodingToJSON(value?: KeyEncoding | null): any {\n    return value as any;\n}\n\nexport function KeyEncodingToJSONTyped(value: any, ignoreDiscriminator: boolean): KeyEncoding {\n    return value as KeyEncoding;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Elliptic curve identifier.\n * @export\n */\nexport const Curve = {\n    P256: 'P-256',\n    P384: 'P-384',\n    P521: 'P-521',\n    Secp256k1: 'secp256k1',\n    Ed25519: 'Ed25519',\n    Ed448: 'Ed448',\n    X25519: 'X25519',\n    X448: 'X448'\n} as const;\nexport type Curve = typeof Curve[keyof typeof Curve];\n\n\nexport function instanceOfCurve(value: any): boolean {\n    for (const key in Curve) {\n        if (Object.prototype.hasOwnProperty.call(Curve, key)) {\n            if (Curve[key as keyof typeof Curve] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function CurveFromJSON(json: any): Curve {\n    return CurveFromJSONTyped(json, false);\n}\n\nexport function CurveFromJSONTyped(json: any, ignoreDiscriminator: boolean): Curve {\n    return json as Curve;\n}\n\nexport function CurveToJSON(value?: Curve | null): any {\n    return value as any;\n}\n\nexport function CurveToJSONTyped(value: any, ignoreDiscriminator: boolean): Curve {\n    return value as Curve;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Specific operations the key is intended for.\n * @export\n */\nexport const KeyOperations = {\n    Sign: 'sign',\n    Verify: 'verify',\n    Encrypt: 'encrypt',\n    Decrypt: 'decrypt',\n    WrapKey: 'wrapKey',\n    UnwrapKey: 'unwrapKey',\n    DeriveKey: 'deriveKey',\n    DeriveBits: 'deriveBits'\n} as const;\nexport type KeyOperations = typeof KeyOperations[keyof typeof KeyOperations];\n\n\nexport function instanceOfKeyOperations(value: any): boolean {\n    for (const key in KeyOperations) {\n        if (Object.prototype.hasOwnProperty.call(KeyOperations, key)) {\n            if (KeyOperations[key as keyof typeof KeyOperations] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function KeyOperationsFromJSON(json: any): KeyOperations {\n    return KeyOperationsFromJSONTyped(json, false);\n}\n\nexport function KeyOperationsFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyOperations {\n    return json as KeyOperations;\n}\n\nexport function KeyOperationsToJSON(value?: KeyOperations | null): any {\n    return value as any;\n}\n\nexport function KeyOperationsToJSONTyped(value: any, ignoreDiscriminator: boolean): KeyOperations {\n    return value as KeyOperations;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Intended use of the key (signing or encryption).\n * @export\n */\nexport const JwkUse = {\n    Sig: 'sig',\n    Enc: 'enc'\n} as const;\nexport type JwkUse = typeof JwkUse[keyof typeof JwkUse];\n\n\nexport function instanceOfJwkUse(value: any): boolean {\n    for (const key in JwkUse) {\n        if (Object.prototype.hasOwnProperty.call(JwkUse, key)) {\n            if (JwkUse[key as keyof typeof JwkUse] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function JwkUseFromJSON(json: any): JwkUse {\n    return JwkUseFromJSONTyped(json, false);\n}\n\nexport function JwkUseFromJSONTyped(json: any, ignoreDiscriminator: boolean): JwkUse {\n    return json as JwkUse;\n}\n\nexport function JwkUseToJSON(value?: JwkUse | null): any {\n    return value as any;\n}\n\nexport function JwkUseToJSONTyped(value: any, ignoreDiscriminator: boolean): JwkUse {\n    return value as JwkUse;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * JSON Web Key (JWK) key type parameter identifying the cryptographic algorithm family.\n * @export\n */\nexport const JwkKeyType = {\n    Ec: 'EC',\n    Rsa: 'RSA',\n    Okp: 'OKP',\n    Oct: 'oct'\n} as const;\nexport type JwkKeyType = typeof JwkKeyType[keyof typeof JwkKeyType];\n\n\nexport function instanceOfJwkKeyType(value: any): boolean {\n    for (const key in JwkKeyType) {\n        if (Object.prototype.hasOwnProperty.call(JwkKeyType, key)) {\n            if (JwkKeyType[key as keyof typeof JwkKeyType] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function JwkKeyTypeFromJSON(json: any): JwkKeyType {\n    return JwkKeyTypeFromJSONTyped(json, false);\n}\n\nexport function JwkKeyTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): JwkKeyType {\n    return json as JwkKeyType;\n}\n\nexport function JwkKeyTypeToJSON(value?: JwkKeyType | null): any {\n    return value as any;\n}\n\nexport function JwkKeyTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): JwkKeyType {\n    return value as JwkKeyType;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { Curve } from './Curve';\nimport {\n    CurveFromJSON,\n    CurveToJSON,\n} from './Curve';\nimport type { KeyOperations } from './KeyOperations';\nimport {\n    KeyOperationsFromJSON,\n    KeyOperationsToJSON,\n} from './KeyOperations';\nimport type { JwkUse } from './JwkUse';\nimport {\n    JwkUseFromJSON,\n    JwkUseToJSON,\n} from './JwkUse';\nimport type { JwkKeyType } from './JwkKeyType';\nimport {\n    JwkKeyTypeFromJSON,\n    JwkKeyTypeToJSON,\n} from './JwkKeyType';\n\n/**\n * Represents a JSON Web Key (JWK) as defined by the JSON Web Key specification.\n * @export\n * @interface Jwk\n */\nexport interface Jwk {\n    /**\n     *\n     * @type {JwkKeyType}\n     * @memberof Jwk\n     */\n    kty: JwkKeyType;\n    /**\n     * Key identifier used to uniquely identify the key.\n     * @type {string}\n     * @memberof Jwk\n     */\n    kid?: string;\n    /**\n     * The algorithm intended for use with the key (JWA algorithm name).\n     * @type {string}\n     * @memberof Jwk\n     */\n    alg?: string;\n    /**\n     *\n     * @type {JwkUse}\n     * @memberof Jwk\n     */\n    use?: JwkUse;\n    /**\n     * The allowed cryptographic operations for the key.\n     * @type {Array<KeyOperations>}\n     * @memberof Jwk\n     */\n    keyOps?: Array<KeyOperations>;\n    /**\n     *\n     * @type {Curve}\n     * @memberof Jwk\n     */\n    crv?: Curve;\n    /**\n     * The x coordinate for elliptic curve keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    x?: string;\n    /**\n     * The y coordinate for elliptic curve keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    y?: string;\n    /**\n     * The private key parameter (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    d?: string;\n    /**\n     * The modulus value for RSA keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    n?: string;\n    /**\n     * The public exponent for RSA keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    e?: string;\n    /**\n     * The first prime factor for RSA private keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    p?: string;\n    /**\n     * The second prime factor for RSA private keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    q?: string;\n    /**\n     * The first factor CRT exponent for RSA private keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    dp?: string;\n    /**\n     * The second factor CRT exponent for RSA private keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    dq?: string;\n    /**\n     * The first CRT coefficient for RSA private keys (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    qi?: string;\n    /**\n     * The symmetric key value (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    k?: string;\n    /**\n     * X.509 certificate chain as base64-encoded DER certificates.\n     * @type {Array<string>}\n     * @memberof Jwk\n     */\n    x5c?: Array<string>;\n    /**\n     * X.509 certificate SHA-1 thumbprint (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    x5t?: string;\n    /**\n     * URL pointing to X.509 certificate or certificate chain.\n     * @type {string}\n     * @memberof Jwk\n     */\n    x5u?: string;\n    /**\n     * X.509 certificate SHA-256 thumbprint (base64url-encoded).\n     * @type {string}\n     * @memberof Jwk\n     */\n    x5tS256?: string;\n}\n\n\n\n/**\n * Check if a given object implements the Jwk interface.\n */\nexport function instanceOfJwk(value: object): value is Jwk {\n    if (!('kty' in value) || value['kty'] === undefined) return false;\n    return true;\n}\n\nexport function JwkFromJSON(json: any): Jwk {\n    return JwkFromJSONTyped(json, false);\n}\n\nexport function JwkFromJSONTyped(json: any, ignoreDiscriminator: boolean): Jwk {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kty': JwkKeyTypeFromJSON(json['kty']),\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'alg': json['alg'] == null ? undefined : json['alg'],\n        'use': json['use'] == null ? undefined : JwkUseFromJSON(json['use']),\n        'keyOps': json['key_ops'] == null ? undefined : ((json['key_ops'] as Array<any>).map(KeyOperationsFromJSON)),\n        'crv': json['crv'] == null ? undefined : CurveFromJSON(json['crv']),\n        'x': json['x'] == null ? undefined : json['x'],\n        'y': json['y'] == null ? undefined : json['y'],\n        'd': json['d'] == null ? undefined : json['d'],\n        'n': json['n'] == null ? undefined : json['n'],\n        'e': json['e'] == null ? undefined : json['e'],\n        'p': json['p'] == null ? undefined : json['p'],\n        'q': json['q'] == null ? undefined : json['q'],\n        'dp': json['dp'] == null ? undefined : json['dp'],\n        'dq': json['dq'] == null ? undefined : json['dq'],\n        'qi': json['qi'] == null ? undefined : json['qi'],\n        'k': json['k'] == null ? undefined : json['k'],\n        'x5c': json['x5c'] == null ? undefined : json['x5c'],\n        'x5t': json['x5t'] == null ? undefined : json['x5t'],\n        'x5u': json['x5u'] == null ? undefined : json['x5u'],\n        'x5tS256': json['x5t#S256'] == null ? undefined : json['x5t#S256'],\n    };\n}\n\nexport function JwkToJSON(json: any): Jwk {\n    return JwkToJSONTyped(json, false);\n}\n\nexport function JwkToJSONTyped(value?: Jwk | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kty': JwkKeyTypeToJSON(value['kty']),\n        'kid': value['kid'],\n        'alg': value['alg'],\n        'use': JwkUseToJSON(value['use']),\n        'key_ops': value['keyOps'] == null ? undefined : ((value['keyOps'] as Array<any>).map(KeyOperationsToJSON)),\n        'crv': CurveToJSON(value['crv']),\n        'x': value['x'],\n        'y': value['y'],\n        'd': value['d'],\n        'n': value['n'],\n        'e': value['e'],\n        'p': value['p'],\n        'q': value['q'],\n        'dp': value['dp'],\n        'dq': value['dq'],\n        'qi': value['qi'],\n        'k': value['k'],\n        'x5c': value['x5c'],\n        'x5t': value['x5t'],\n        'x5u': value['x5u'],\n        'x5t#S256': value['x5tS256'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyType } from './KeyType';\nimport {\n    KeyTypeFromJSON,\n    KeyTypeToJSON,\n} from './KeyType';\nimport type { KeyVisibility } from './KeyVisibility';\nimport {\n    KeyVisibilityFromJSON,\n     KeyVisibilityToJSON,\n} from './KeyVisibility';\nimport type { SignatureAlgorithm } from './SignatureAlgorithm';\nimport {\n    SignatureAlgorithmFromJSON,\n    SignatureAlgorithmToJSON,\n} from './SignatureAlgorithm';\nimport type { KeyEncoding } from './KeyEncoding';\nimport {\n    KeyEncodingFromJSON,\n    KeyEncodingToJSON,\n} from './KeyEncoding';\nimport type { Jwk } from './Jwk';\nimport {\n    JwkFromJSON,\n    JwkToJSON,\n} from './Jwk';\n\n/**\n * Information about a cryptographic key, providing metadata and configuration details necessary for cryptographic operations.\n * @export\n * @interface KeyInfo\n */\nexport interface KeyInfo {\n    /**\n     * Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\n     * @type {string}\n     * @memberof KeyInfo\n     */\n    kid?: string;\n    /**\n     *\n     * @type {Jwk}\n     * @memberof KeyInfo\n     */\n    key?: Jwk;\n    /**\n     *\n     * @type {SignatureAlgorithm}\n     * @memberof KeyInfo\n     */\n    signatureAlgorithm?: SignatureAlgorithm;\n    /**\n     *\n     * @type {KeyVisibility}\n     * @memberof KeyInfo\n     */\n    keyVisibility?: KeyVisibility;\n    /**\n     * X.509 certificate chain associated with the key.\n     * @type {Array<string>}\n     * @memberof KeyInfo\n     */\n    x5c?: Array<string>;\n    /**\n     * A reference or alias to the key in the Key Management Service (KMS).\n     * @type {string}\n     * @memberof KeyInfo\n     */\n    alias?: string;\n    /**\n     * The Key Management System (KMS) identifier associated with the key.\n     * @type {string}\n     * @memberof KeyInfo\n     */\n    providerId?: string;\n    /**\n     *\n     * @type {KeyType}\n     * @memberof KeyInfo\n     */\n    keyType?: KeyType;\n    /**\n     *\n     * @type {KeyEncoding}\n     * @memberof KeyInfo\n     */\n    keyEncoding?: KeyEncoding;\n    /**\n     * Additional configuration options as key-value pairs.\n     * @type {{ [key: string]: string; }}\n     * @memberof KeyInfo\n     */\n    opts?: { [key: string]: string; };\n}\n\n\n\n/**\n * Check if a given object implements the KeyInfo interface.\n */\nexport function instanceOfKeyInfo(value: object): value is KeyInfo {\n    return true;\n}\n\nexport function KeyInfoFromJSON(json: any): KeyInfo {\n    return KeyInfoFromJSONTyped(json, false);\n}\n\nexport function KeyInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyInfo {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'key': json['key'] == null ? undefined : JwkFromJSON(json['key']),\n        'signatureAlgorithm': json['signatureAlgorithm'] == null ? undefined : SignatureAlgorithmFromJSON(json['signatureAlgorithm']),\n        'keyVisibility': json['keyVisibility'] == null ? undefined : KeyVisibilityFromJSON(json['keyVisibility']),\n        'x5c': json['x5c'] == null ? undefined : json['x5c'],\n        'alias': json['alias'] == null ? undefined : json['alias'],\n        'providerId': json['providerId'] == null ? undefined : json['providerId'],\n        'keyType': json['keyType'] == null ? undefined : KeyTypeFromJSON(json['keyType']),\n        'keyEncoding': json['keyEncoding'] == null ? undefined : KeyEncodingFromJSON(json['keyEncoding']),\n        'opts': json['opts'] == null ? undefined : json['opts'],\n    };\n}\n\nexport function KeyInfoToJSON(json: any): KeyInfo {\n    return KeyInfoToJSONTyped(json, false);\n}\n\nexport function KeyInfoToJSONTyped(value?: KeyInfo | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kid': value['kid'],\n        'key': JwkToJSON(value['key']),\n        'signatureAlgorithm': SignatureAlgorithmToJSON(value['signatureAlgorithm']),\n        'keyVisibility': KeyVisibilityToJSON(value['keyVisibility']),\n        'x5c': value['x5c'],\n        'alias': value['alias'],\n        'providerId': value['providerId'],\n        'keyType': KeyTypeToJSON(value['keyType']),\n        'keyEncoding': KeyEncodingToJSON(value['keyEncoding']),\n        'opts': value['opts'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyInfo } from './KeyInfo';\nimport {\n    KeyInfoFromJSON,\n    KeyInfoToJSON,\n} from './KeyInfo';\n\n/**\n * Request body for creating a raw signature.\n * @export\n * @interface CreateRawSignature\n */\nexport interface CreateRawSignature {\n    /**\n     *\n     * @type {KeyInfo}\n     * @memberof CreateRawSignature\n     */\n    keyInfo: KeyInfo;\n    /**\n     *\n     * @type {string}\n     * @memberof CreateRawSignature\n     */\n    input: string;\n}\n\n/**\n * Check if a given object implements the CreateRawSignature interface.\n */\nexport function instanceOfCreateRawSignature(value: object): value is CreateRawSignature {\n    if (!('keyInfo' in value) || value['keyInfo'] === undefined) return false;\n    if (!('input' in value) || value['input'] === undefined) return false;\n    return true;\n}\n\nexport function CreateRawSignatureFromJSON(json: any): CreateRawSignature {\n    return CreateRawSignatureFromJSONTyped(json, false);\n}\n\nexport function CreateRawSignatureFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRawSignature {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'keyInfo': KeyInfoFromJSON(json['keyInfo']),\n        'input': json['input'],\n    };\n}\n\nexport function CreateRawSignatureToJSON(json: any): CreateRawSignature {\n    return CreateRawSignatureToJSONTyped(json, false);\n}\n\nexport function CreateRawSignatureToJSONTyped(value?: CreateRawSignature | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'keyInfo': KeyInfoToJSON(value['keyInfo']),\n        'input': value['input'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Response body containing the created signature.\n * @export\n * @interface CreateRawSignatureResponse\n */\nexport interface CreateRawSignatureResponse {\n    /**\n     * The created signature encoded as a base64 string.\n     * @type {string}\n     * @memberof CreateRawSignatureResponse\n     */\n    signature: string;\n}\n\n/**\n * Check if a given object implements the CreateRawSignatureResponse interface.\n */\nexport function instanceOfCreateRawSignatureResponse(value: object): value is CreateRawSignatureResponse {\n    if (!('signature' in value) || value['signature'] === undefined) return false;\n    return true;\n}\n\nexport function CreateRawSignatureResponseFromJSON(json: any): CreateRawSignatureResponse {\n    return CreateRawSignatureResponseFromJSONTyped(json, false);\n}\n\nexport function CreateRawSignatureResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateRawSignatureResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'signature': json['signature'],\n    };\n}\n\nexport function CreateRawSignatureResponseToJSON(json: any): CreateRawSignatureResponse {\n    return CreateRawSignatureResponseToJSONTyped(json, false);\n}\n\nexport function CreateRawSignatureResponseToJSONTyped(value?: CreateRawSignatureResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'signature': value['signature'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyOperations } from './KeyOperations';\nimport {\n    KeyOperationsFromJSON,\n    KeyOperationsToJSON,\n} from './KeyOperations';\nimport type { SignatureAlgorithm } from './SignatureAlgorithm';\nimport {\n    SignatureAlgorithmFromJSON,\n    SignatureAlgorithmToJSON,\n} from './SignatureAlgorithm';\nimport type { JwkUse } from './JwkUse';\nimport {\n    JwkUseFromJSON,\n    JwkUseToJSON,\n} from './JwkUse';\n\n/**\n * Parameters for key generation.\n * @export\n * @interface GenerateKey\n */\nexport interface GenerateKey {\n    /**\n     * Alias for the generated key.\n     * @type {string}\n     * @memberof GenerateKey\n     */\n    alias?: string;\n    /**\n     *\n     * @type {JwkUse}\n     * @memberof GenerateKey\n     */\n    use?: JwkUse;\n    /**\n     *\n     * @type {Array<KeyOperations>}\n     * @memberof GenerateKey\n     */\n    keyOperations?: Array<KeyOperations>;\n    /**\n     *\n     * @type {SignatureAlgorithm}\n     * @memberof GenerateKey\n     */\n    alg?: SignatureAlgorithm;\n}\n\n\n\n/**\n * Check if a given object implements the GenerateKey interface.\n */\nexport function instanceOfGenerateKey(value: object): value is GenerateKey {\n    return true;\n}\n\nexport function GenerateKeyFromJSON(json: any): GenerateKey {\n    return GenerateKeyFromJSONTyped(json, false);\n}\n\nexport function GenerateKeyFromJSONTyped(json: any, ignoreDiscriminator: boolean): GenerateKey {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'alias': json['alias'] == null ? undefined : json['alias'],\n        'use': json['use'] == null ? undefined : JwkUseFromJSON(json['use']),\n        'keyOperations': json['keyOperations'] == null ? undefined : ((json['keyOperations'] as Array<any>).map(KeyOperationsFromJSON)),\n        'alg': json['alg'] == null ? undefined : SignatureAlgorithmFromJSON(json['alg']),\n    };\n}\n\nexport function GenerateKeyToJSON(json: any): GenerateKey {\n    return GenerateKeyToJSONTyped(json, false);\n}\n\nexport function GenerateKeyToJSONTyped(value?: GenerateKey | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'alias': value['alias'],\n        'use': JwkUseToJSON(value['use']),\n        'keyOperations': value['keyOperations'] == null ? undefined : ((value['keyOperations'] as Array<any>).map(KeyOperationsToJSON)),\n        'alg': SignatureAlgorithmToJSON(value['alg']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyOperations } from './KeyOperations';\nimport {\n    KeyOperationsFromJSON,\n    KeyOperationsToJSON,\n} from './KeyOperations';\nimport type { SignatureAlgorithm } from './SignatureAlgorithm';\nimport {\n    SignatureAlgorithmFromJSON,\n    SignatureAlgorithmToJSON,\n} from './SignatureAlgorithm';\nimport type { JwkUse } from './JwkUse';\nimport {\n    JwkUseFromJSON,\n    JwkUseToJSON,\n} from './JwkUse';\n\n/**\n * Parameters for global key generation with optional provider specification.\n * @export\n * @interface GenerateKeyGlobal\n */\nexport interface GenerateKeyGlobal {\n    /**\n     * Alias for the generated key.\n     * @type {string}\n     * @memberof GenerateKeyGlobal\n     */\n    alias?: string;\n    /**\n     *\n     * @type {JwkUse}\n     * @memberof GenerateKeyGlobal\n     */\n    use?: JwkUse;\n    /**\n     *\n     * @type {Array<KeyOperations>}\n     * @memberof GenerateKeyGlobal\n     */\n    keyOperations?: Array<KeyOperations>;\n    /**\n     *\n     * @type {SignatureAlgorithm}\n     * @memberof GenerateKeyGlobal\n     */\n    alg?: SignatureAlgorithm;\n    /**\n     * Optional provider ID. If not specified, the default provider will be used.\n     * @type {string}\n     * @memberof GenerateKeyGlobal\n     */\n    providerId?: string;\n}\n\n\n\n/**\n * Check if a given object implements the GenerateKeyGlobal interface.\n */\nexport function instanceOfGenerateKeyGlobal(value: object): value is GenerateKeyGlobal {\n    return true;\n}\n\nexport function GenerateKeyGlobalFromJSON(json: any): GenerateKeyGlobal {\n    return GenerateKeyGlobalFromJSONTyped(json, false);\n}\n\nexport function GenerateKeyGlobalFromJSONTyped(json: any, ignoreDiscriminator: boolean): GenerateKeyGlobal {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'alias': json['alias'] == null ? undefined : json['alias'],\n        'use': json['use'] == null ? undefined : JwkUseFromJSON(json['use']),\n        'keyOperations': json['keyOperations'] == null ? undefined : ((json['keyOperations'] as Array<any>).map(KeyOperationsFromJSON)),\n        'alg': json['alg'] == null ? undefined : SignatureAlgorithmFromJSON(json['alg']),\n        'providerId': json['providerId'] == null ? undefined : json['providerId'],\n    };\n}\n\nexport function GenerateKeyGlobalToJSON(json: any): GenerateKeyGlobal {\n    return GenerateKeyGlobalToJSONTyped(json, false);\n}\n\nexport function GenerateKeyGlobalToJSONTyped(value?: GenerateKeyGlobal | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'alias': value['alias'],\n        'use': JwkUseToJSON(value['use']),\n        'keyOperations': value['keyOperations'] == null ? undefined : ((value['keyOperations'] as Array<any>).map(KeyOperationsToJSON)),\n        'alg': SignatureAlgorithmToJSON(value['alg']),\n        'providerId': value['providerId'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { Jwk } from './Jwk';\nimport {\n    JwkFromJSON,\n    JwkToJSON,\n} from './Jwk';\n\n/**\n * Data class representing a cryptographic key pair used with JOSE (JSON Object Signing and Encryption).\n * @export\n * @interface JoseKeyPair\n */\nexport interface JoseKeyPair {\n    /**\n     *\n     * @type {Jwk}\n     * @memberof JoseKeyPair\n     */\n    privateJwk?: Jwk;\n    /**\n     *\n     * @type {Jwk}\n     * @memberof JoseKeyPair\n     */\n    publicJwk: Jwk;\n}\n\n/**\n * Check if a given object implements the JoseKeyPair interface.\n */\nexport function instanceOfJoseKeyPair(value: object): value is JoseKeyPair {\n    if (!('publicJwk' in value) || value['publicJwk'] === undefined) return false;\n    return true;\n}\n\nexport function JoseKeyPairFromJSON(json: any): JoseKeyPair {\n    return JoseKeyPairFromJSONTyped(json, false);\n}\n\nexport function JoseKeyPairFromJSONTyped(json: any, ignoreDiscriminator: boolean): JoseKeyPair {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'privateJwk': json['privateJwk'] == null ? undefined : JwkFromJSON(json['privateJwk']),\n        'publicJwk': JwkFromJSON(json['publicJwk']),\n    };\n}\n\nexport function JoseKeyPairToJSON(json: any): JoseKeyPair {\n    return JoseKeyPairToJSONTyped(json, false);\n}\n\nexport function JoseKeyPairToJSONTyped(value?: JoseKeyPair | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'privateJwk': JwkToJSON(value['privateJwk']),\n        'publicJwk': JwkToJSON(value['publicJwk']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { JoseKeyPair } from './JoseKeyPair';\nimport {\n    JoseKeyPairFromJSON,\n    JoseKeyPairToJSON,\n} from './JoseKeyPair';\nimport type { CoseKeyPair } from './CoseKeyPair';\nimport {\n    CoseKeyPairFromJSON,\n    CoseKeyPairToJSON,\n} from './CoseKeyPair';\n\n/**\n * Represents a key pair used by a crypto provider, encapsulating both JOSE and COSE key pairs.\n * @export\n * @interface ManagedKeyPair\n */\nexport interface ManagedKeyPair {\n    /**\n     * Key identifier, may be null.\n     * @type {string}\n     * @memberof ManagedKeyPair\n     */\n    kid?: string;\n    /**\n     * Key Management System identifier.\n     * @type {string}\n     * @memberof ManagedKeyPair\n     */\n    providerId: string;\n    /**\n     * Reference to the key in the KMS.\n     * @type {string}\n     * @memberof ManagedKeyPair\n     */\n    alias: string;\n    /**\n     *\n     * @type {CoseKeyPair}\n     * @memberof ManagedKeyPair\n     */\n    cose: CoseKeyPair;\n    /**\n     *\n     * @type {JoseKeyPair}\n     * @memberof ManagedKeyPair\n     */\n    jose: JoseKeyPair;\n}\n\n/**\n * Check if a given object implements the ManagedKeyPair interface.\n */\nexport function instanceOfManagedKeyPair(value: object): value is ManagedKeyPair {\n    if (!('providerId' in value) || value['providerId'] === undefined) return false;\n    if (!('alias' in value) || value['alias'] === undefined) return false;\n    if (!('cose' in value) || value['cose'] === undefined) return false;\n    if (!('jose' in value) || value['jose'] === undefined) return false;\n    return true;\n}\n\nexport function ManagedKeyPairFromJSON(json: any): ManagedKeyPair {\n    return ManagedKeyPairFromJSONTyped(json, false);\n}\n\nexport function ManagedKeyPairFromJSONTyped(json: any, ignoreDiscriminator: boolean): ManagedKeyPair {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'providerId': json['providerId'],\n        'alias': json['alias'],\n        'cose': CoseKeyPairFromJSON(json['cose']),\n        'jose': JoseKeyPairFromJSON(json['jose']),\n    };\n}\n\nexport function ManagedKeyPairToJSON(json: any): ManagedKeyPair {\n    return ManagedKeyPairToJSONTyped(json, false);\n}\n\nexport function ManagedKeyPairToJSONTyped(value?: ManagedKeyPair | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kid': value['kid'],\n        'providerId': value['providerId'],\n        'alias': value['alias'],\n        'cose': CoseKeyPairToJSON(value['cose']),\n        'jose': JoseKeyPairToJSON(value['jose']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyType } from './KeyType';\nimport {\n    KeyTypeFromJSON,\n    KeyTypeToJSON,\n} from './KeyType';\nimport type { KeyVisibility } from './KeyVisibility';\nimport {\n    KeyVisibilityFromJSON,\n    KeyVisibilityToJSON,\n} from './KeyVisibility';\nimport type { SignatureAlgorithm } from './SignatureAlgorithm';\nimport {\n    SignatureAlgorithmFromJSON,\n    SignatureAlgorithmToJSON,\n} from './SignatureAlgorithm';\nimport type { KeyEncoding } from './KeyEncoding';\nimport {\n    KeyEncodingFromJSON,\n    KeyEncodingToJSON,\n} from './KeyEncoding';\nimport type { Jwk } from './Jwk';\nimport {\n    JwkFromJSON,\n    JwkToJSON,\n} from './Jwk';\n\n/**\n * Represents a managed cryptographic key information that is guaranteed to be present and resolved, part of a KMS providing concrete access to the key.\n * @export\n * @interface ManagedKeyInfo\n */\nexport interface ManagedKeyInfo {\n    /**\n     * Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\n     * @type {string}\n     * @memberof ManagedKeyInfo\n     */\n    kid?: string;\n    /**\n     *\n     * @type {Jwk}\n     * @memberof ManagedKeyInfo\n     */\n    key: Jwk;\n    /**\n     *\n     * @type {SignatureAlgorithm}\n     * @memberof ManagedKeyInfo\n     */\n    signatureAlgorithm?: SignatureAlgorithm;\n    /**\n     *\n     * @type {KeyVisibility}\n     * @memberof ManagedKeyInfo\n     */\n    keyVisibility?: KeyVisibility;\n    /**\n     * X.509 certificate chain associated with the key.\n     * @type {Array<string>}\n     * @memberof ManagedKeyInfo\n     */\n    x5c?: Array<string>;\n    /**\n     * A reference or alias to the key in the Key Management Service (KMS).\n     * @type {string}\n     * @memberof ManagedKeyInfo\n     */\n    alias: string;\n    /**\n     * The Key Management System (KMS) identifier associated with the key.\n     * @type {string}\n     * @memberof ManagedKeyInfo\n     */\n    providerId: string;\n    /**\n     *\n     * @type {KeyType}\n     * @memberof ManagedKeyInfo\n     */\n    keyType?: KeyType;\n    /**\n     *\n     * @type {KeyEncoding}\n     * @memberof ManagedKeyInfo\n     */\n    keyEncoding?: KeyEncoding;\n    /**\n     * Additional configuration options as key-value pairs.\n     * @type {{ [key: string]: string; }}\n     * @memberof ManagedKeyInfo\n     */\n    opts?: { [key: string]: string; };\n}\n\n\n\n/**\n * Check if a given object implements the ManagedKeyInfo interface.\n */\nexport function instanceOfManagedKeyInfo(value: object): value is ManagedKeyInfo {\n    if (!('key' in value) || value['key'] === undefined) return false;\n    if (!('alias' in value) || value['alias'] === undefined) return false;\n    if (!('providerId' in value) || value['providerId'] === undefined) return false;\n    return true;\n}\n\nexport function ManagedKeyInfoFromJSON(json: any): ManagedKeyInfo {\n    return ManagedKeyInfoFromJSONTyped(json, false);\n}\n\nexport function ManagedKeyInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ManagedKeyInfo {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'key': JwkFromJSON(json['key']),\n        'signatureAlgorithm': json['signatureAlgorithm'] == null ? undefined : SignatureAlgorithmFromJSON(json['signatureAlgorithm']),\n        'keyVisibility': json['keyVisibility'] == null ? undefined : KeyVisibilityFromJSON(json['keyVisibility']),\n        'x5c': json['x5c'] == null ? undefined : json['x5c'],\n        'alias': json['alias'],\n        'providerId': json['providerId'],\n        'keyType': json['keyType'] == null ? undefined : KeyTypeFromJSON(json['keyType']),\n        'keyEncoding': json['keyEncoding'] == null ? undefined : KeyEncodingFromJSON(json['keyEncoding']),\n        'opts': json['opts'] == null ? undefined : json['opts'],\n    };\n}\n\nexport function ManagedKeyInfoToJSON(json: any): ManagedKeyInfo {\n    return ManagedKeyInfoToJSONTyped(json, false);\n}\n\nexport function ManagedKeyInfoToJSONTyped(value?: ManagedKeyInfo | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kid': value['kid'],\n        'key': JwkToJSON(value['key']),\n        'signatureAlgorithm': SignatureAlgorithmToJSON(value['signatureAlgorithm']),\n        'keyVisibility': KeyVisibilityToJSON(value['keyVisibility']),\n        'x5c': value['x5c'],\n        'alias': value['alias'],\n        'providerId': value['providerId'],\n        'keyType': KeyTypeToJSON(value['keyType']),\n        'keyEncoding': KeyEncodingToJSON(value['keyEncoding']),\n        'opts': value['opts'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations. \n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Method used to identify cryptographic keys.\n * @export\n */\nexport const IdentifierMethod = {\n    Jwk: 'JWK',\n    Kid: 'KID',\n    CoseKey: 'COSE_KEY',\n    X5C: 'X5C',\n    Did: 'DID'\n} as const;\nexport type IdentifierMethod = typeof IdentifierMethod[keyof typeof IdentifierMethod];\n\n\nexport function instanceOfIdentifierMethod(value: any): boolean {\n    for (const key in IdentifierMethod) {\n        if (Object.prototype.hasOwnProperty.call(IdentifierMethod, key)) {\n            if (IdentifierMethod[key as keyof typeof IdentifierMethod] === value) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nexport function IdentifierMethodFromJSON(json: any): IdentifierMethod {\n    return IdentifierMethodFromJSONTyped(json, false);\n}\n\nexport function IdentifierMethodFromJSONTyped(json: any, ignoreDiscriminator: boolean): IdentifierMethod {\n    return json as IdentifierMethod;\n}\n\nexport function IdentifierMethodToJSON(value?: IdentifierMethod | null): any {\n    return value as any;\n}\n\nexport function IdentifierMethodToJSONTyped(value: any, ignoreDiscriminator: boolean): IdentifierMethod {\n    return value as IdentifierMethod;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyProviderType } from './KeyProviderType';\nimport {\n    KeyProviderTypeFromJSON,\n    KeyProviderTypeToJSON,\n} from './KeyProviderType';\n\n/**\n * Response body containing the details of a Key Provider instance.\n * @export\n * @interface KeyProvider\n */\nexport interface KeyProvider {\n    /**\n     * The unique identifier assigned to the Key Provider instance upon creation.\n     * @type {string}\n     * @memberof KeyProvider\n     */\n    providerId: string;\n    /**\n     *\n     * @type {KeyProviderType}\n     * @memberof KeyProvider\n     */\n    type: KeyProviderType;\n}\n\n\n\n/**\n * Check if a given object implements the KeyProvider interface.\n */\nexport function instanceOfKeyProvider(value: object): value is KeyProvider {\n    if (!('providerId' in value) || value['providerId'] === undefined) return false;\n    if (!('type' in value) || value['type'] === undefined) return false;\n    return true;\n}\n\nexport function KeyProviderFromJSON(json: any): KeyProvider {\n    return KeyProviderFromJSONTyped(json, false);\n}\n\nexport function KeyProviderFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyProvider {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'providerId': json['providerId'],\n        'type': KeyProviderTypeFromJSON(json['type']),\n    };\n}\n\nexport function KeyProviderToJSON(json: any): KeyProvider {\n    return KeyProviderToJSONTyped(json, false);\n}\n\nexport function KeyProviderToJSONTyped(value?: KeyProvider | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'providerId': value['providerId'],\n        'type': KeyProviderTypeToJSON(value['type']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyProviderType } from './KeyProviderType';\nimport {\n    KeyProviderTypeFromJSON,\n    KeyProviderTypeToJSON,\n} from './KeyProviderType';\n\n/**\n * Response body containing the details of a Key Provider instance.\n * @export\n * @interface KeyProviderResponse\n */\nexport interface KeyProviderResponse {\n    /**\n     * The unique identifier assigned to the Key Provider instance upon creation.\n     * @type {string}\n     * @memberof KeyProviderResponse\n     */\n    providerId: string;\n    /**\n     *\n     * @type {KeyProviderType}\n     * @memberof KeyProviderResponse\n     */\n    type: KeyProviderType;\n}\n\n\n\n/**\n * Check if a given object implements the KeyProviderResponse interface.\n */\nexport function instanceOfKeyProviderResponse(value: object): value is KeyProviderResponse {\n    if (!('providerId' in value) || value['providerId'] === undefined) return false;\n    if (!('type' in value) || value['type'] === undefined) return false;\n    return true;\n}\n\nexport function KeyProviderResponseFromJSON(json: any): KeyProviderResponse {\n    return KeyProviderResponseFromJSONTyped(json, false);\n}\n\nexport function KeyProviderResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeyProviderResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'providerId': json['providerId'],\n        'type': KeyProviderTypeFromJSON(json['type']),\n    };\n}\n\nexport function KeyProviderResponseToJSON(json: any): KeyProviderResponse {\n    return KeyProviderResponseToJSONTyped(json, false);\n}\n\nexport function KeyProviderResponseToJSONTyped(value?: KeyProviderResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'providerId': value['providerId'],\n        'type': KeyProviderTypeToJSON(value['type']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyProvider } from './KeyProvider';\nimport {\n    KeyProviderFromJSON,\n    KeyProviderToJSON,\n} from './KeyProvider';\n\n/**\n * Response body containing the details of a Key Provider instance.\n * @export\n * @interface ListKeyProvidersResponse\n */\nexport interface ListKeyProvidersResponse {\n    /**\n     *\n     * @type {Array<KeyProvider>}\n     * @memberof ListKeyProvidersResponse\n     */\n    providers: Array<KeyProvider>;\n}\n\n/**\n * Check if a given object implements the ListKeyProvidersResponse interface.\n */\nexport function instanceOfListKeyProvidersResponse(value: object): value is ListKeyProvidersResponse {\n    if (!('providers' in value) || value['providers'] === undefined) return false;\n    return true;\n}\n\nexport function ListKeyProvidersResponseFromJSON(json: any): ListKeyProvidersResponse {\n    return ListKeyProvidersResponseFromJSONTyped(json, false);\n}\n\nexport function ListKeyProvidersResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ListKeyProvidersResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'providers': ((json['providers'] as Array<any>).map(KeyProviderFromJSON)),\n    };\n}\n\nexport function ListKeyProvidersResponseToJSON(json: any): ListKeyProvidersResponse {\n    return ListKeyProvidersResponseToJSONTyped(json, false);\n}\n\nexport function ListKeyProvidersResponseToJSONTyped(value?: ListKeyProvidersResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'providers': ((value['providers'] as Array<any>).map(KeyProviderToJSON)),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { ManagedKeyInfo } from './ManagedKeyInfo';\nimport {\n    ManagedKeyInfoFromJSON,\n    ManagedKeyInfoToJSON,\n} from './ManagedKeyInfo';\n\n/**\n * Response body containing all the managed keys.\n * @export\n * @interface ListKeysResponse\n */\nexport interface ListKeysResponse {\n    /**\n     *\n     * @type {Array<ManagedKeyInfo>}\n     * @memberof ListKeysResponse\n     */\n    keyInfos: Array<ManagedKeyInfo>;\n}\n\n/**\n * Check if a given object implements the ListKeysResponse interface.\n */\nexport function instanceOfListKeysResponse(value: object): value is ListKeysResponse {\n    if (!('keyInfos' in value) || value['keyInfos'] === undefined) return false;\n    return true;\n}\n\nexport function ListKeysResponseFromJSON(json: any): ListKeysResponse {\n    return ListKeysResponseFromJSONTyped(json, false);\n}\n\nexport function ListKeysResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ListKeysResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'keyInfos': ((json['keyInfos'] as Array<any>).map(ManagedKeyInfoFromJSON)),\n    };\n}\n\nexport function ListKeysResponseToJSON(json: any): ListKeysResponse {\n    return ListKeysResponseToJSONTyped(json, false);\n}\n\nexport function ListKeysResponseToJSONTyped(value?: ListKeysResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'keyInfos': ((value['keyInfos'] as Array<any>).map(ManagedKeyInfoToJSON)),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyType } from './KeyType';\nimport {\n    KeyTypeFromJSON,\n    KeyTypeToJSON,\n} from './KeyType';\nimport type { IdentifierMethod } from './IdentifierMethod';\nimport {\n    IdentifierMethodFromJSON,\n    IdentifierMethodToJSON,\n} from './IdentifierMethod';\n\n/**\n * Represents a key resolver configuration.\n * @export\n * @interface Resolver\n */\nexport interface Resolver {\n    /**\n     * Unique identifier for the resolver.\n     * @type {string}\n     * @memberof Resolver\n     */\n    resolverId: string;\n    /**\n     * List of identifier methods supported by this resolver.\n     * @type {Array<IdentifierMethod>}\n     * @memberof Resolver\n     */\n    supportedIdentifierMethods?: Array<IdentifierMethod>;\n    /**\n     * List of key types supported by this resolver.\n     * @type {Array<KeyType>}\n     * @memberof Resolver\n     */\n    supportedKeyTypes?: Array<KeyType>;\n}\n\n/**\n * Check if a given object implements the Resolver interface.\n */\nexport function instanceOfResolver(value: object): value is Resolver {\n    if (!('resolverId' in value) || value['resolverId'] === undefined) return false;\n    return true;\n}\n\nexport function ResolverFromJSON(json: any): Resolver {\n    return ResolverFromJSONTyped(json, false);\n}\n\nexport function ResolverFromJSONTyped(json: any, ignoreDiscriminator: boolean): Resolver {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'resolverId': json['resolverId'],\n        'supportedIdentifierMethods': json['supportedIdentifierMethods'] == null ? undefined : ((json['supportedIdentifierMethods'] as Array<any>).map(IdentifierMethodFromJSON)),\n        'supportedKeyTypes': json['supportedKeyTypes'] == null ? undefined : ((json['supportedKeyTypes'] as Array<any>).map(KeyTypeFromJSON)),\n    };\n}\n\nexport function ResolverToJSON(json: any): Resolver {\n    return ResolverToJSONTyped(json, false);\n}\n\nexport function ResolverToJSONTyped(value?: Resolver | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'resolverId': value['resolverId'],\n        'supportedIdentifierMethods': value['supportedIdentifierMethods'] == null ? undefined : ((value['supportedIdentifierMethods'] as Array<any>).map(IdentifierMethodToJSON)),\n        'supportedKeyTypes': value['supportedKeyTypes'] == null ? undefined : ((value['supportedKeyTypes'] as Array<any>).map(KeyTypeToJSON)),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { Resolver } from './Resolver';\nimport {\n    ResolverFromJSON,\n    ResolverToJSON,\n} from './Resolver';\n\n/**\n * Response body containing all the resolvers.\n * @export\n * @interface ListResolversResponse\n */\nexport interface ListResolversResponse {\n    /**\n     *\n     * @type {Array<Resolver>}\n     * @memberof ListResolversResponse\n     */\n    resolvers: Array<Resolver>;\n}\n\n/**\n * Check if a given object implements the ListResolversResponse interface.\n */\nexport function instanceOfListResolversResponse(value: object): value is ListResolversResponse {\n    if (!('resolvers' in value) || value['resolvers'] === undefined) return false;\n    return true;\n}\n\nexport function ListResolversResponseFromJSON(json: any): ListResolversResponse {\n    return ListResolversResponseFromJSONTyped(json, false);\n}\n\nexport function ListResolversResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ListResolversResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'resolvers': ((json['resolvers'] as Array<any>).map(ResolverFromJSON)),\n    };\n}\n\nexport function ListResolversResponseToJSON(json: any): ListResolversResponse {\n    return ListResolversResponseToJSONTyped(json, false);\n}\n\nexport function ListResolversResponseToJSONTyped(value?: ListResolversResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'resolvers': ((value['resolvers'] as Array<any>).map(ResolverToJSON)),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyInfo } from './KeyInfo';\nimport {\n    KeyInfoFromJSON,\n    KeyInfoToJSON,\n} from './KeyInfo';\nimport type { IdentifierMethod } from './IdentifierMethod';\nimport {\n    IdentifierMethodFromJSON,\n    IdentifierMethodToJSON,\n} from './IdentifierMethod';\n\n/**\n * Request body for resolving a public key.\n * @export\n * @interface ResolvePublicKey\n */\nexport interface ResolvePublicKey {\n    /**\n     *\n     * @type {KeyInfo}\n     * @memberof ResolvePublicKey\n     */\n    keyInfo: KeyInfo;\n    /**\n     *\n     * @type {IdentifierMethod}\n     * @memberof ResolvePublicKey\n     */\n    identifierMethod?: IdentifierMethod;\n    /**\n     * Optional array of trusted certificates (base64-encoded) that may be used in the resolution process.\n     * @type {Array<string>}\n     * @memberof ResolvePublicKey\n     */\n    trustedCerts?: Array<string>;\n    /**\n     * Optional boolean indicating whether the X.509 certificate chain should be verified.\n     * @type {boolean}\n     * @memberof ResolvePublicKey\n     */\n    verifyX509CertificateChain?: boolean;\n}\n\n\n\n/**\n * Check if a given object implements the ResolvePublicKey interface.\n */\nexport function instanceOfResolvePublicKey(value: object): value is ResolvePublicKey {\n    if (!('keyInfo' in value) || value['keyInfo'] === undefined) return false;\n    return true;\n}\n\nexport function ResolvePublicKeyFromJSON(json: any): ResolvePublicKey {\n    return ResolvePublicKeyFromJSONTyped(json, false);\n}\n\nexport function ResolvePublicKeyFromJSONTyped(json: any, ignoreDiscriminator: boolean): ResolvePublicKey {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'keyInfo': KeyInfoFromJSON(json['keyInfo']),\n        'identifierMethod': json['identifierMethod'] == null ? undefined : IdentifierMethodFromJSON(json['identifierMethod']),\n        'trustedCerts': json['trustedCerts'] == null ? undefined : json['trustedCerts'],\n        'verifyX509CertificateChain': json['verifyX509CertificateChain'] == null ? undefined : json['verifyX509CertificateChain'],\n    };\n}\n\nexport function ResolvePublicKeyToJSON(json: any): ResolvePublicKey {\n    return ResolvePublicKeyToJSONTyped(json, false);\n}\n\nexport function ResolvePublicKeyToJSONTyped(value?: ResolvePublicKey | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'keyInfo': KeyInfoToJSON(value['keyInfo']),\n        'identifierMethod': IdentifierMethodToJSON(value['identifierMethod']),\n        'trustedCerts': value['trustedCerts'],\n        'verifyX509CertificateChain': value['verifyX509CertificateChain'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyType } from './KeyType';\nimport {\n    KeyTypeFromJSON,\n    KeyTypeToJSON,\n} from './KeyType';\nimport type { KeyVisibility } from './KeyVisibility';\nimport {\n    KeyVisibilityFromJSON,\n    KeyVisibilityToJSON,\n} from './KeyVisibility';\nimport type { SignatureAlgorithm } from './SignatureAlgorithm';\nimport {\n    SignatureAlgorithmFromJSON,\n    SignatureAlgorithmToJSON,\n} from './SignatureAlgorithm';\nimport type { KeyEncoding } from './KeyEncoding';\nimport {\n    KeyEncodingFromJSON,\n    KeyEncodingToJSON,\n} from './KeyEncoding';\nimport type { Jwk } from './Jwk';\nimport {\n    JwkFromJSON,\n    JwkToJSON,\n} from './Jwk';\n\n/**\n * Represents a resolved cryptographic key information where the key is guaranteed to be present and resolved, providing concrete access to the key.\n * @export\n * @interface ResolvedKeyInfo\n */\nexport interface ResolvedKeyInfo {\n    /**\n     * Unique identifier for the cryptographic key. Can be null if the key identifier is not provided.\n     * @type {string}\n     * @memberof ResolvedKeyInfo\n     */\n    kid?: string;\n    /**\n     *\n     * @type {Jwk}\n     * @memberof ResolvedKeyInfo\n     */\n    key: Jwk;\n    /**\n     *\n     * @type {SignatureAlgorithm}\n     * @memberof ResolvedKeyInfo\n     */\n    signatureAlgorithm?: SignatureAlgorithm;\n    /**\n     *\n     * @type {KeyVisibility}\n     * @memberof ResolvedKeyInfo\n     */\n    keyVisibility?: KeyVisibility;\n    /**\n     * X.509 certificate chain associated with the key.\n     * @type {Array<string>}\n     * @memberof ResolvedKeyInfo\n     */\n    x5c?: Array<string>;\n    /**\n     * A reference or alias to the key in the Key Management Service (KMS).\n     * @type {string}\n     * @memberof ResolvedKeyInfo\n     */\n    alias?: string;\n    /**\n     * The Key Management System (KMS) identifier associated with the key.\n     * @type {string}\n     * @memberof ResolvedKeyInfo\n     */\n    providerId?: string;\n    /**\n     *\n     * @type {KeyType}\n     * @memberof ResolvedKeyInfo\n     */\n    keyType?: KeyType;\n    /**\n     *\n     * @type {KeyEncoding}\n     * @memberof ResolvedKeyInfo\n     */\n    keyEncoding?: KeyEncoding;\n    /**\n     * Additional configuration options as key-value pairs.\n     * @type {{ [key: string]: string; }}\n     * @memberof ResolvedKeyInfo\n     */\n    opts?: { [key: string]: string; };\n}\n\n\n\n/**\n * Check if a given object implements the ResolvedKeyInfo interface.\n */\nexport function instanceOfResolvedKeyInfo(value: object): value is ResolvedKeyInfo {\n    if (!('key' in value) || value['key'] === undefined) return false;\n    return true;\n}\n\nexport function ResolvedKeyInfoFromJSON(json: any): ResolvedKeyInfo {\n    return ResolvedKeyInfoFromJSONTyped(json, false);\n}\n\nexport function ResolvedKeyInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ResolvedKeyInfo {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'kid': json['kid'] == null ? undefined : json['kid'],\n        'key': JwkFromJSON(json['key']),\n        'signatureAlgorithm': json['signatureAlgorithm'] == null ? undefined : SignatureAlgorithmFromJSON(json['signatureAlgorithm']),\n        'keyVisibility': json['keyVisibility'] == null ? undefined : KeyVisibilityFromJSON(json['keyVisibility']),\n        'x5c': json['x5c'] == null ? undefined : json['x5c'],\n        'alias': json['alias'] == null ? undefined : json['alias'],\n        'providerId': json['providerId'] == null ? undefined : json['providerId'],\n        'keyType': json['keyType'] == null ? undefined : KeyTypeFromJSON(json['keyType']),\n        'keyEncoding': json['keyEncoding'] == null ? undefined : KeyEncodingFromJSON(json['keyEncoding']),\n        'opts': json['opts'] == null ? undefined : json['opts'],\n    };\n}\n\nexport function ResolvedKeyInfoToJSON(json: any): ResolvedKeyInfo {\n    return ResolvedKeyInfoToJSONTyped(json, false);\n}\n\nexport function ResolvedKeyInfoToJSONTyped(value?: ResolvedKeyInfo | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'kid': value['kid'],\n        'key': JwkToJSON(value['key']),\n        'signatureAlgorithm': SignatureAlgorithmToJSON(value['signatureAlgorithm']),\n        'keyVisibility': KeyVisibilityToJSON(value['keyVisibility']),\n        'x5c': value['x5c'],\n        'alias': value['alias'],\n        'providerId': value['providerId'],\n        'keyType': KeyTypeToJSON(value['keyType']),\n        'keyEncoding': KeyEncodingToJSON(value['keyEncoding']),\n        'opts': value['opts'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { ResolvedKeyInfo } from './ResolvedKeyInfo';\nimport {\n    ResolvedKeyInfoFromJSON,\n    ResolvedKeyInfoToJSON,\n} from './ResolvedKeyInfo';\n\n/**\n * Request body for storing a key.\n * @export\n * @interface StoreKey\n */\nexport interface StoreKey {\n    /**\n     *\n     * @type {ResolvedKeyInfo}\n     * @memberof StoreKey\n     */\n    keyInfo: ResolvedKeyInfo;\n    /**\n     * X.509 certificate chain as base64-encoded DER certificates.\n     * @type {Array<string>}\n     * @memberof StoreKey\n     */\n    certChain?: Array<string>;\n}\n\n/**\n * Check if a given object implements the StoreKey interface.\n */\nexport function instanceOfStoreKey(value: object): value is StoreKey {\n    if (!('keyInfo' in value) || value['keyInfo'] === undefined) return false;\n    return true;\n}\n\nexport function StoreKeyFromJSON(json: any): StoreKey {\n    return StoreKeyFromJSONTyped(json, false);\n}\n\nexport function StoreKeyFromJSONTyped(json: any, ignoreDiscriminator: boolean): StoreKey {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'keyInfo': ResolvedKeyInfoFromJSON(json['keyInfo']),\n        'certChain': json['certChain'] == null ? undefined : json['certChain'],\n    };\n}\n\nexport function StoreKeyToJSON(json: any): StoreKey {\n    return StoreKeyToJSONTyped(json, false);\n}\n\nexport function StoreKeyToJSONTyped(value?: StoreKey | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'keyInfo': ResolvedKeyInfoToJSON(value['keyInfo']),\n        'certChain': value['certChain'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport type { KeyInfo } from './KeyInfo';\nimport {\n    KeyInfoFromJSON,\n    KeyInfoToJSON,\n} from './KeyInfo';\n\n/**\n * Request body for verifying a raw signature.\n * @export\n * @interface VerifyRawSignature\n */\nexport interface VerifyRawSignature {\n    /**\n     *\n     * @type {KeyInfo}\n     * @memberof VerifyRawSignature\n     */\n    keyInfo: KeyInfo;\n    /**\n     *\n     * @type {string}\n     * @memberof VerifyRawSignature\n     */\n    input: string;\n    /**\n     *\n     * @type {string}\n     * @memberof VerifyRawSignature\n     */\n    signature: string;\n}\n\n/**\n * Check if a given object implements the VerifyRawSignature interface.\n */\nexport function instanceOfVerifyRawSignature(value: object): value is VerifyRawSignature {\n    if (!('keyInfo' in value) || value['keyInfo'] === undefined) return false;\n    if (!('input' in value) || value['input'] === undefined) return false;\n    if (!('signature' in value) || value['signature'] === undefined) return false;\n    return true;\n}\n\nexport function VerifyRawSignatureFromJSON(json: any): VerifyRawSignature {\n    return VerifyRawSignatureFromJSONTyped(json, false);\n}\n\nexport function VerifyRawSignatureFromJSONTyped(json: any, ignoreDiscriminator: boolean): VerifyRawSignature {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'keyInfo': KeyInfoFromJSON(json['keyInfo']),\n        'input': json['input'],\n        'signature': json['signature'],\n    };\n}\n\nexport function VerifyRawSignatureToJSON(json: any): VerifyRawSignature {\n    return VerifyRawSignatureToJSONTyped(json, false);\n}\n\nexport function VerifyRawSignatureToJSONTyped(value?: VerifyRawSignature | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'keyInfo': KeyInfoToJSON(value['keyInfo']),\n        'input': value['input'],\n        'signature': value['signature'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * KMS REST Server API\n * A REST API for managing cryptographic keys and performing signing and verification operations.\n *\n * The version of the OpenAPI document: 0.0.1\n * Contact: support@sphereon.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Response body containing the details of the signature verification.\n * @export\n * @interface VerifyRawSignatureResponse\n */\nexport interface VerifyRawSignatureResponse {\n    /**\n     * Indicates whether the signature is valid or not.\n     * @type {boolean}\n     * @memberof VerifyRawSignatureResponse\n     */\n    isValid: boolean;\n}\n\n/**\n * Check if a given object implements the VerifyRawSignatureResponse interface.\n */\nexport function instanceOfVerifyRawSignatureResponse(value: object): value is VerifyRawSignatureResponse {\n    if (!('isValid' in value) || value['isValid'] === undefined) return false;\n    return true;\n}\n\nexport function VerifyRawSignatureResponseFromJSON(json: any): VerifyRawSignatureResponse {\n    return VerifyRawSignatureResponseFromJSONTyped(json, false);\n}\n\nexport function VerifyRawSignatureResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): VerifyRawSignatureResponse {\n    if (json == null) {\n        return json;\n    }\n    return {\n\n        'isValid': json['isValid'],\n    };\n}\n\nexport function VerifyRawSignatureResponseToJSON(json: any): VerifyRawSignatureResponse {\n    return VerifyRawSignatureResponseToJSONTyped(json, false);\n}\n\nexport function VerifyRawSignatureResponseToJSONTyped(value?: VerifyRawSignatureResponse | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n\n        'isValid': value['isValid'],\n    };\n}\n\n"],"mappings":"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","names":["module","CoseKeyTypeFromJSON","json","CoseKeyTypeFromJSONTyped","ignoreDiscriminator","CoseKeyFromJSON","json","CoseKeyFromJSONTyped","ignoreDiscriminator","CoseKeyTypeFromJSON","undefined","CoseKeyPairFromJSON","json","CoseKeyPairFromJSONTyped","ignoreDiscriminator","undefined","CoseKeyFromJSON","KeyProviderTypeFromJSON","json","KeyProviderTypeFromJSONTyped","ignoreDiscriminator","KeyTypeFromJSON","json","KeyTypeFromJSONTyped","ignoreDiscriminator","KeyTypeToJSON","value","KeyVisibilityFromJSON","json","KeyVisibilityFromJSONTyped","ignoreDiscriminator","KeyVisibilityToJSON","value","SignatureAlgorithmFromJSON","json","SignatureAlgorithmFromJSONTyped","ignoreDiscriminator","SignatureAlgorithmToJSON","value","KeyEncodingFromJSON","json","KeyEncodingFromJSONTyped","ignoreDiscriminator","KeyEncodingToJSON","value","CurveFromJSON","json","CurveFromJSONTyped","ignoreDiscriminator","CurveToJSON","value","KeyOperationsFromJSON","json","KeyOperationsFromJSONTyped","ignoreDiscriminator","KeyOperationsToJSON","value","JwkUseFromJSON","json","JwkUseFromJSONTyped","ignoreDiscriminator","JwkUseToJSON","value","JwkKeyTypeFromJSON","json","JwkKeyTypeFromJSONTyped","ignoreDiscriminator","JwkKeyTypeToJSON","value","JwkFromJSON","json","JwkFromJSONTyped","ignoreDiscriminator","JwkKeyTypeFromJSON","undefined","JwkUseFromJSON","map","KeyOperationsFromJSON","CurveFromJSON","JwkToJSON","JwkToJSONTyped","value","JwkKeyTypeToJSON","JwkUseToJSON","KeyOperationsToJSON","CurveToJSON","KeyInfoToJSON","json","KeyInfoToJSONTyped","value","ignoreDiscriminator","JwkToJSON","SignatureAlgorithmToJSON","KeyVisibilityToJSON","KeyTypeToJSON","KeyEncodingToJSON","CreateRawSignatureToJSONTyped","value","ignoreDiscriminator","KeyInfoToJSON","CreateRawSignatureResponseFromJSONTyped","json","ignoreDiscriminator","GenerateKeyToJSONTyped","value","ignoreDiscriminator","JwkUseToJSON","undefined","map","KeyOperationsToJSON","SignatureAlgorithmToJSON","GenerateKeyGlobalToJSONTyped","value","ignoreDiscriminator","JwkUseToJSON","undefined","map","KeyOperationsToJSON","SignatureAlgorithmToJSON","JoseKeyPairFromJSON","json","JoseKeyPairFromJSONTyped","ignoreDiscriminator","undefined","JwkFromJSON","ManagedKeyPairFromJSONTyped","json","ignoreDiscriminator","undefined","CoseKeyPairFromJSON","JoseKeyPairFromJSON","ManagedKeyInfoFromJSON","json","ManagedKeyInfoFromJSONTyped","ignoreDiscriminator","undefined","JwkFromJSON","SignatureAlgorithmFromJSON","KeyVisibilityFromJSON","KeyTypeFromJSON","KeyEncodingFromJSON","IdentifierMethodFromJSON","json","IdentifierMethodFromJSONTyped","ignoreDiscriminator","IdentifierMethodToJSON","value","KeyProviderFromJSON","json","KeyProviderFromJSONTyped","ignoreDiscriminator","KeyProviderTypeFromJSON","KeyProviderResponseFromJSONTyped","json","ignoreDiscriminator","KeyProviderTypeFromJSON","ListKeyProvidersResponseFromJSONTyped","json","ignoreDiscriminator","map","KeyProviderFromJSON","ListKeysResponseFromJSONTyped","json","ignoreDiscriminator","map","ManagedKeyInfoFromJSON","ResolverFromJSON","json","ResolverFromJSONTyped","ignoreDiscriminator","undefined","map","IdentifierMethodFromJSON","KeyTypeFromJSON","ListResolversResponseFromJSONTyped","json","ignoreDiscriminator","map","ResolverFromJSON","ResolvePublicKeyToJSONTyped","value","ignoreDiscriminator","KeyInfoToJSON","IdentifierMethodToJSON","ResolvedKeyInfoFromJSONTyped","json","ignoreDiscriminator","undefined","JwkFromJSON","SignatureAlgorithmFromJSON","KeyVisibilityFromJSON","KeyTypeFromJSON","KeyEncodingFromJSON","ResolvedKeyInfoToJSON","ResolvedKeyInfoToJSONTyped","value","JwkToJSON","SignatureAlgorithmToJSON","KeyVisibilityToJSON","KeyTypeToJSON","KeyEncodingToJSON","StoreKeyToJSONTyped","value","ignoreDiscriminator","ResolvedKeyInfoToJSON","VerifyRawSignatureToJSONTyped","value","ignoreDiscriminator","KeyInfoToJSON","VerifyRawSignatureResponseFromJSONTyped","json","ignoreDiscriminator","logger","Loggers","DEFAULT","get","KmsRestClient","methods","kmsGetKey","bind","kmsListKeys","kmsStoreKey","kmsGenerateKey","kmsDeleteKey","kmsGetKeyProvider","kmsListKeyProviders","kmsProviderListKeys","kmsProviderStoreKey","kmsProviderGenerateKey","kmsProviderGetKey","kmsProviderDeleteKey","kmsGetResolver","kmsListResolvers","kmsResolveKey","kmsCreateRawSignature","kmsIsValidRawSignature","agentBaseUrl","authOpts","args","baseUrl","authentication","urlWithBase","path","startsWith","assertedAgentBaseUrl","url","resolverId","response","fetch","method","debug","ResolverFromJSONTyped","json","error","Promise","reject","Error","ListResolversResponseFromJSONTyped","body","keyInfo","identifierMethod","trustedCerts","verifyX509CertificateChain","headers","createHeaders","JSON","stringify","ResolvePublicKeyToJSONTyped","ResolvedKeyInfoFromJSONTyped","input","CreateRawSignatureToJSONTyped","CreateRawSignatureResponseFromJSONTyped","signature","VerifyRawSignatureToJSONTyped","VerifyRawSignatureResponseFromJSONTyped","aliasOrKid","ManagedKeyInfoFromJSONTyped","addSearchParams","providerId","xx","ListKeysResponseFromJSONTyped","certChain","StoreKeyToJSONTyped","alg","keyOperations","use","GenerateKeyGlobalToJSONTyped","ManagedKeyPairFromJSONTyped","KeyProviderResponseFromJSONTyped","ListKeyProvidersResponseFromJSONTyped","GenerateKeyToJSONTyped","existing","Accept","enabled","bearerToken","Authorization","params","URL","key","value","Object","entries","searchParams","set","String","schema","require"]}