{"openapi":"3.0.0","info":{"title":"OVHcloud API specification","description":"Specification for OVHcloud API","version":"1.0","contact":{"name":"OVH","email":"api@ml.ovh.net"}},"servers":[{"url":"https://api.eu.ovhcloud.com/v2"}],"components":{"schemas":{"any":{"description":"Can be anything (text, int, bool, json, html, etc.)","example":"This is a content of any type !"},"duration":{"type":"string","description":"Duration (e.g., P1Y2M3DT4H6M9S)","example":"P1Y2M3DT4H6M9S"},"email":{"type":"string","description":"Email address (e.g., api@ml.ovh.net)","format":"email","example":"api@ml.ovh.net"},"internationalPhoneNumber":{"type":"string","description":"International phone number","format":"phone-number"},"ip":{"type":"string","description":"IP address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipBlock":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","format":"ip-block","example":"192.0.2.0/24"},"ipInterface":{"type":"string","description":"IP address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipv4":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipv4Block":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","format":"ipv4-block","example":"192.0.2.0/24"},"ipv6":{"type":"string","description":"IPv6 address (e.g., 2001:41d0:1:1994::1)","format":"ipv6","example":"2001:41d0:1:1994::1"},"ipv6Block":{"type":"string","description":"IPv6 CIDR notation (e.g., 2001:41d0::/128)","format":"ipv6-block","example":"2001:41d0::/128"},"macAddress":{"type":"string","description":"MAC address (e.g., 00:00:5e:00:53:01)","format":"mac-address","example":"00:00:5e:00:53:01"},"okms.CertificateTypeEnum":{"type":"string","description":"Valid type of certificate","enum":["ECDSA","RSA"]},"okms.CredentialStatusEnum":{"type":"string","description":"Valid states of credential","enum":["CREATING","DELETING","ERROR","EXPIRED","READY"]},"okms.credential.Creation":{"type":"object","description":"Request an OKMS service access credential","properties":{"certificateType":{"allOf":[{"$ref":"#/components/schemas/okms.CertificateTypeEnum"}],"description":"Type of the certificate (ECDSA or RSA, incompatible with CSR)","nullable":true},"csr":{"type":"string","description":"Valid Certificate Signing Request","nullable":true},"description":{"type":"string","description":"Description of the credential. At most 200.","nullable":true},"identityURNs":{"type":"array","description":"List of identity URNs associated with the credential. At most 25.","items":{"type":"string"}},"name":{"type":"string","description":"Name of the credential. At most 50."},"validity":{"type":"integer","description":"Validity in days (default 365, max 365)","nullable":true}},"required":["identityURNs","name"]},"okms.credential.CreationResponse":{"type":"object","description":"An OKMS service access credential","properties":{"certificateType":{"allOf":[{"$ref":"#/components/schemas/okms.CertificateTypeEnum"}],"description":"Type of the certificate (ECDSA or RSA)","readOnly":true},"createdAt":{"type":"string","description":"Creation time of the credential","format":"date-time","readOnly":true},"description":{"type":"string","description":"Description of the credential","nullable":true,"readOnly":true},"expiredAt":{"type":"string","description":"Expiration time of the credential","format":"date-time","readOnly":true},"fromCSR":{"type":"boolean","description":"Is the credential generated from CSR","readOnly":true},"id":{"type":"string","description":"Unique identifier of the credential","format":"uuid","readOnly":true},"identityURNs":{"type":"array","description":"List of identity URNs associated with the credential","items":{"type":"string"},"readOnly":true},"name":{"type":"string","description":"Name of the credential","readOnly":true},"privateKeyPEM":{"type":"string","description":"Private Key PEM of the credential if no CSR is provided (cannot be retrieve later)","nullable":true,"format":"password","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/okms.CredentialStatusEnum"}],"description":"Status of the credential","readOnly":true}}},"okms.credential.GetResponse":{"type":"object","description":"An OKMS service access credential","properties":{"certificatePEM":{"type":"string","description":"Certificate PEM of the credential","nullable":true,"readOnly":true},"certificateType":{"allOf":[{"$ref":"#/components/schemas/okms.CertificateTypeEnum"}],"description":"Type of the certificate (ECDSA or RSA)","readOnly":true},"createdAt":{"type":"string","description":"Creation time of the credential","format":"date-time","readOnly":true},"description":{"type":"string","description":"Description of the credential","nullable":true,"readOnly":true},"expiredAt":{"type":"string","description":"Expiration time of the credential","format":"date-time","readOnly":true},"fromCSR":{"type":"boolean","description":"Is the credential generated from CSR","readOnly":true},"id":{"type":"string","description":"Unique identifier of the credential","format":"uuid","readOnly":true},"identityURNs":{"type":"array","description":"List of identity URNs associated with the credential","items":{"type":"string"},"readOnly":true},"name":{"type":"string","description":"Name of the credential","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/okms.CredentialStatusEnum"}],"description":"Status of the credential","readOnly":true}}},"phoneNumber":{"type":"string","description":"Phone number","format":"phone-number"},"time":{"type":"string","description":"Time (e.g., 15:04:05)","format":"time","example":"15:04:05"}},"securitySchemes":{"oAuth2AuthCode":{"type":"oauth2","description":"Oauth2","x-client-id":"1bb9c7df371741c0","x-client-secret":"a5b4de870aca620d10fbf63cd18d205b","flows":{"authorizationCode":{"authorizationUrl":"https://auth.eu.ovhcloud.com/oauth2/authorize","tokenUrl":"https://auth.eu.ovhcloud.com/oauth2/token","scopes":{"account/all":"Manage your account","all":"Manage your whole account and all your services","services/all":"Manage your services lifecycle and billing"}}}}}},"paths":{"/okms/resource/{okmsId}/credential":{"get":{"operationId":"getAllOkmsCredentials","summary":"List access credentials","description":"Returns the access credentials of the service, with their identity, status and expiry. Private keys are never returned.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"header","name":"X-Pagination-Cursor","description":"Pagination cursor","schema":{"type":"string"}},{"in":"header","name":"X-Pagination-Size","description":"Pagination size","schema":{"type":"integer"}},{"in":"path","name":"okmsId","description":"Okms ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/okms.credential.GetResponse"}},"examples":{"Simple example":{"value":[{"certificateType":"RSA","createdAt":"2023-11-09T15:20:23.337051+01:00","expiredAt":"2024-11-05T12:20:23.337051+01:00","fromCSR":false,"id":"3c032e3a-0a41-4956-b52f-229cf0fb91fa","identityURNs":["urn:v1:eu:identity:account:xx1111-ovh"],"name":"Root Account","status":"CREATING"},{"certificatePEM":"-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIRAOeTkL6SBwNJGF95dYHlyoMwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTIwMDIw\nWhcNMjAwNjA0MTIwMDIwWjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\nRW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDEwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX\nNSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf\n89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl\nNpi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc\nGu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz\nuEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB\nAAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU\nBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB\nFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo\nSmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF\nBQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG\nAQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD\nVR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB\nAGvM/XGv8yafGRGMPP6hnggoI9DGWGf4l0mzjBhuCkDVqoG/7rsH1ytzteePxiA3\n7kqSBo0fXu5GmbWOw09GpwPYyAAY0iWOMU6ybrTJHS466Urzoe/4IwLQoQc219EK\nlh+4Ugu1q4KxNY1qMDA/1YX2Qm9M6AcAs1UvZKHSpJQAbsYrbN6obNoUGOeG6ONH\nYr8KRQz5FMfZYcA49fmdDTwKn/pyLOkJFeA/dm/oP99UmKCFoeOa5w9YJr2Vi7ic\nXd59CU8mprWhxFXnma1oU3T8ZNovjib3UHocjlEJfNbDy9zgKTYURcMVweo1dkbH\nNbLc5mIjIk/kJ+RPD+chR+gJjy3Gh9xMNkDrZQKfsIO93hxTsZMmgZQ4c+vujC1M\njSak+Ai87YZeYQPh1fCGMSTno5III37DUCtIn8BJxJixuPeOMKsjLLD5AtMVy0fp\nd19lcUek4bjDY8/Ujb5/wfn2+Kk7z72SxWdekjtHOWBmKxqq8jDuuMw4ymg1g5n7\nR7TZ/Y3y4bTpWUDkBHFo03xNM21wBFDIrCZZeVhvDW4MtT6+Ass2bcpoHwYcGol2\ngaLDa5k2dkG41OGtXa0fY+TjdryY4cOcstJUKjv2MJku4yaTtjjECX1rJvFLnqYe\nwC+FmxjgWPuyRNuLDAWK30mmpcJZ3CmD6dFtAi4h7H37\n-----END CERTIFICATE-----","certificateType":"ECDSA","createdAt":"2023-11-09T15:20:23.337051+01:00","description":"Description of credential usage","expiredAt":"2024-11-09T15:20:23.337051+01:00","fromCSR":true,"id":"9df5c871-94c4-4325-8440-1433ab52c003","identityURNs":["urn:v1:eu:identity:user:xx1111-ovh/john.smith","urn:v1:eu:identity:group:xx1111-ovh/my_group"],"name":"John Smith","status":"READY"}]}}}}},"400":{"description":"Error 400 response","content":{"application/json":{"schema":{"type":"object","description":"Common error model","properties":{"class":{"type":"string","description":"Class of the error"},"message":{"type":"string","description":"Error message"}}},"examples":{"Client::BadRequest::CredentialPaginationCursorInvalidValue":{"value":{"class":"Client::BadRequest::CredentialPaginationCursorInvalidValue","message":"Invalid Pagination cursor"}}}}}}},"tags":["Credentials"],"x-developer-hub-navigation":[["Manage & operate","Key and Secret Manager","Credentials@@@10"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.get(\"/v2/okms/resource/{okmsId}/credential\")\n\n# Pretty print\nprint(json.dumps(result, indent=4))"},{"lang":"php","label":"PHP","source":"<?php\n/**\n * First, download the latest release of PHP wrapper on github\n * And include this script into the folder with extracted files\n */\nrequire __DIR__ . '/vendor/autoload.php';\nuse \\Ovh\\Api;\n\n/**\n * Instantiate an OVH Client.\n * You can generate new credentials with full access to your account on\n * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\n */\n$ovh = new Api('xxxxxxxxxx',  // Application Key\n               'xxxxxxxxxx',  // Application Secret\n               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n               'xxxxxxxxxx'); // Consumer Key\n\n$result = $ovh->get(\"/v2/okms/resource/{okmsId}/credential\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"okms:apiovh:credential/get","required":true}],"x-response-identifier":"id","x-expanded-response":"OkmsCredentialGetResponse"},"post":{"operationId":"createOkmsCredential","summary":"Create an access credential","description":"Issues a certificate-based access credential bound to the given identity URNs.\n\nWith a CSR, only the signed certificate is produced. Without one, a key pair is generated and the private key is returned in this response only. It can never be retrieved afterward.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"okmsId","description":"Okms ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/okms.credential.Creation"},"examples":{"With CSR provided":{"value":{"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV\nBAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln\naUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo\nwp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c\n1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI\nWDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ\nwIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR\nBPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ\nKoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D\nhJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY\nQ4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/\nZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn\n29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2\n97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w=\n-----END CERTIFICATE REQUEST-----","description":"Description of credential usage","identityURNs":["urn:v1:eu:identity:user:xx1111-ovh/john.smith","urn:v1:eu:identity:group:xx1111-ovh/my_group"],"name":"John Smith","validity":30}},"Without CSR provided":{"value":{"certificateType":"ECDSA","description":"Description of credential usage","identityURNs":["urn:v1:eu:identity:account:xx1111-ovh"],"name":"Root Account","validity":30}}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/okms.credential.CreationResponse"},"examples":{"With CSR provided":{"value":{"certificateType":"ECDSA","createdAt":"2024-10-09T15:20:23.337051+01:00","description":"Description of credential usage","expiredAt":"2024-11-09T15:20:23.337051+01:00","fromCSR":true,"id":"9df5c871-94c4-4325-8440-1433ab52c003","identityURNs":["urn:v1:eu:identity:user:xx1111-ovh/john.smith","urn:v1:eu:identity:group:xx1111-ovh/my_group"],"name":"John Smith","status":"CREATING"}},"Without CSR provided":{"value":{"certificateType":"ECDSA","createdAt":"2024-10-09T15:20:23.337051+01:00","description":"Description of credential usage","expiredAt":"2024-11-09T15:20:23.337051+01:00","fromCSR":false,"id":"9df5c871-94c4-4325-8440-1433ab52c003","identityURNs":["urn:v1:eu:identity:account:xx1111-ovh"],"name":"Root Account","privateKeyPEM":"-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPfG69G8vCN8oc\nVz3rqzRdNLmbL4OhtZdckNCoXsbAKpDRa2tD4glRu69eEOQ7z8gsAtRA66bvWwTy\nEhc+z+tVVstgjrJzpQXSrqyLRyZBcjJIvT/VMP1ycqVxY60bQi9rchAoXQO13/pw\n3h1u7pP8DvDxNE+7UlTDR11mN9l7v1Q3CzpI4UMD+4dj7+9f0qvcmU21mp1mF0Ki\ncVsmjuAWMslxTMyoSqZO0yG/F7Qn3F5PzX2n2zn8VLL+qoDVY85/k0Hi8SBWAx/J\nFzQdIb6B2auhtBclo2EhbbWXw+Xxru9aHOOiEi+kw0J8j0xGmHTeyOvCtIbcdI18\np0x8oq4zAgMBAAECggEAboXb/0Q1L8nEEYCvbUAPbq7NR8rxlUxDyn0hiO6jdG24\nIrXTt59KU41khvj8epfeCwOeyM4+aDXV1pSoaT8cHqNTRqX8jPmUtntxUeeeizIn\ncvPMcuXbvAEx+8qaxXBmDhf+X2Hcvh8HKuRGTXcswRG8at/wsNnUaQk0yWRqpy13\nb8l9usHij00M86D1UwtseC6ViNYgedYWbU/sx98gEJ7dpGnycoeiQmt0eL1aWV92\n7/e1KwuRTLypdo+k/D0kJ4Uc1ueMgZSMViCLP42PkUtBAI0Yix0BdeJ5CK9Rd+Wy\nfY8Jtskey2mf6urAUt+X8rrE/wWLSHap/d4Q6YOM0QKBgQDUJZS1Bav1RtUnDN5n\nA0UWXGjnSWocgYCPnaqFEsduPEjKl6f3499+65OJR9xI2K74KdRf68eifMWcJb/Z\n3EPZ+m3CHzYyJvZThlnOoRSIvJmIcTrI3ChgAnzPMoWSrNTHZhafot4HOA0Q2e08\nYRR2SivUXCNIKIxZll9Vmm8x5QKBgQD6YDbQUqAUSEbyw2izus7LOepIXGk5GgsL\nhPjcvLxBO/7OFw37aM/20AQDu8iagAR2kGbPxyEn07Mfco1vyOax8erCCphHPm1c\nf6g5D0fO7JvbtRIt27xpa8N1BECzOLbwgWVwwnqtLhGkoTDbzf3SPfH/HWSvwBwa\ndtxlaWu+NwKBgBdR2jrb2L8pfhzAyWHBdkKy/cUOyN9BTQR8bFYcblerwMSkTw5s\nuhCVjK42e/x19SXKU1IH9PXjiUVU0PX9xGedo5sHG0oABmvABPc1tbAiKy5YZAHY\nUYfcPiP4hb5NyUXx7uK1YHqiqq0Dh5Rvh3RJSvAZALfZ3TOr1+btBvQRAoGBAN1f\nHnfY5jKoqRpRzgxDWj3zigLKujpDnYpk2oiI00Y2XpcnaTRluqJ1z2bhrH92Ovv9\ntvl1DgqhshlW9ljk35xr0e4Y4gTz3EvRjxJMQWhiaXe7xEQJqa/oGRwoU3Bi79T8\nA43MVh0yw2S1JHbjzc0K+iFfgrul9vMrLrj3mczHAoGBAMC7SHEI9VyLNYYssWgs\nykyHy0zYkrDFsH+Jp79zNFVCnibgjso1PJeTSYYNXHm6ahpRACxHRxa4II6ApeGl\nR1of57/a2V9sAEkIFwnDsmUv9c0D0CoZzYhJ+8HtO5zRoOAnvRyif+OJrMWfn1aj\nRdiXMqCZLll2EFMR0UwwoW+Y\n-----END PRIVATE KEY-----","status":"CREATING"}}}}}},"400":{"description":"Error 400 response","content":{"application/json":{"schema":{"type":"object","description":"Common error model","properties":{"class":{"type":"string","description":"Class of the error"},"message":{"type":"string","description":"Error message"}}},"examples":{"Client::BadRequest::CredentialCSRInvalidCharacter":{"value":{"class":"Client::BadRequest::CredentialCSRInvalidCharacter","message":"Invalid parameter 'csr', expected only ASCII characters"}},"Client::BadRequest::CredentialCSRMaximumExceeded":{"value":{"class":"Client::BadRequest::CredentialCSRMaximumExceeded","message":"Invalid parameter 'csr', it should not exceed '{{.paramValue}}' characters"}},"Client::BadRequest::CredentialCertificateTypeIncompatibleFields":{"value":{"class":"Client::BadRequest::CredentialCertificateTypeIncompatibleFields","message":"Parameters csr is incompatible with parameter certificateType"}},"Client::BadRequest::CredentialCertificateTypeInvalidEnum":{"value":{"class":"Client::BadRequest::CredentialCertificateTypeInvalidEnum","message":"Invalid parameter certificateType, expected value are RSA|EC"}},"Client::BadRequest::CredentialDescriptionInvalidCharacter":{"value":{"class":"Client::BadRequest::CredentialDescriptionInvalidCharacter","message":"Invalid parameter 'description', expected only ASCII characters"}},"Client::BadRequest::CredentialDescriptionMaximumExceeded":{"value":{"class":"Client::BadRequest::CredentialDescriptionMaximumExceeded","message":"Invalid parameter 'description', it should not exceed '{{.paramValue}}' characters"}},"Client::BadRequest::CredentialIdentityURNsInvalidSize":{"value":{"class":"Client::BadRequest::CredentialIdentityURNsInvalidSize","message":"Invalid parameter 'identityURNs', identity should not exceed '{{.paramValue}}' characters"}},"Client::BadRequest::CredentialIdentityURNsInvalidURN":{"value":{"class":"Client::BadRequest::CredentialIdentityURNsInvalidURN","message":"Invalid parameter 'identityURNs': '{{.fieldValue}}', expected urn:v1:(eu|ca|us):identity:(account|user|group|credential):(account_name|(account_name/(user|group|credential)))"}},"Client::BadRequest::CredentialIdentityURNsMaximumExceeded":{"value":{"class":"Client::BadRequest::CredentialIdentityURNsMaximumExceeded","message":"Invalid parameter 'identityURNs', it should not contain more than '{{.paramValue}}' identities"}},"Client::BadRequest::CredentialIdentityURNsMinimumRequired":{"value":{"class":"Client::BadRequest::CredentialIdentityURNsMinimumRequired","message":"Invalid parameter 'identityURNs', it should contain at least 1 identity"}},"Client::BadRequest::CredentialNameInvalidCharacter":{"value":{"class":"Client::BadRequest::CredentialNameInvalidCharacter","message":"Invalid parameter 'name', expected only ASCII characters"}},"Client::BadRequest::CredentialNameMaximumExceeded":{"value":{"class":"Client::BadRequest::CredentialNameMaximumExceeded","message":"Invalid parameter 'name', it should not exceed '{{.paramValue}}' characters"}},"Client::BadRequest::CredentialStatusInvalid":{"value":{"class":"Client::BadRequest::CredentialStatusInvalid","message":"The credential should be in status 'READY', 'EXPIRED' or 'ERROR'"}},"Client::BadRequest::CredentialValidityMaximumExceeded":{"value":{"class":"Client::BadRequest::CredentialValidityMaximumExceeded","message":"Invalid parameter 'validity' '{{.fieldValue}}', maximum certificate validity is '{{.paramValue}}' days"}},"Client::BadRequest::CredentialValidityMinimumRequired":{"value":{"class":"Client::BadRequest::CredentialValidityMinimumRequired","message":"Invalid parameter 'validity' '{{.fieldValue}}', minimum certificate validity is '{{.paramValue}}' day"}}}}}}},"tags":["Credentials"],"x-developer-hub-navigation":[["Manage & operate","Key and Secret Manager","Credentials@@@30"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\n# Request body type: okms.credential.Creation\nresult = client.post(\"/v2/okms/resource/{okmsId}/credential\",\n\tcertificateType = None, # Type of the certificate (ECDSA or RSA, incompatible with CSR) (type: okms.CertificateTypeEnum, nullable)\n\tcsr = None, # Valid Certificate Signing Request (type: string, nullable)\n\tdescription = None, # Description of the credential. At most 200. (type: string, nullable)\n\tidentityURNs = None, # List of identity URNs associated with the credential. At most 25. (type: array)\n\tname = None, # Name of the credential. At most 50. (type: string)\n\tvalidity = None, # Validity in days (default 365, max 365) (type: integer, nullable)\n)\n\n# Pretty print\nprint(json.dumps(result, indent=4))"},{"lang":"php","label":"PHP","source":"<?php\n/**\n * First, download the latest release of PHP wrapper on github\n * And include this script into the folder with extracted files\n */\nrequire __DIR__ . '/vendor/autoload.php';\nuse \\Ovh\\Api;\n\n/**\n * Instantiate an OVH Client.\n * You can generate new credentials with full access to your account on\n * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\n */\n$ovh = new Api('xxxxxxxxxx',  // Application Key\n               'xxxxxxxxxx',  // Application Secret\n               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n               'xxxxxxxxxx'); // Consumer Key\n\n// Request body type: okms.credential.Creation\n$result = $ovh->post(\"/v2/okms/resource/{okmsId}/credential\", array(\n\tcertificateType => null, // Type of the certificate (ECDSA or RSA, incompatible with CSR) (type: okms.CertificateTypeEnum, nullable)\n\tcsr => null, // Valid Certificate Signing Request (type: string, nullable)\n\tdescription => null, // Description of the credential. At most 200. (type: string, nullable)\n\tidentityURNs => null, // List of identity URNs associated with the credential. At most 25. (type: array)\n\tname => null, // Name of the credential. At most 50. (type: string)\n\tvalidity => null, // Validity in days (default 365, max 365) (type: integer, nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"okms:apiovh:credential/create","required":true}]}},"/okms/resource/{okmsId}/credential/{credentialId}":{"delete":{"operationId":"deleteOkmsCredential","summary":"Delete an access credential","description":"Revokes the credential and removes it. It can no longer be used to authenticate to the KMS.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"credentialId","description":"Credential ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"okmsId","description":"Okms ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/okms.credential.GetResponse"},"examples":{"Simple example":{"value":{"certificatePEM":"-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIRAOeTkL6SBwNJGF95dYHlyoMwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTIwMDIw\nWhcNMjAwNjA0MTIwMDIwWjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\nRW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDEwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX\nNSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf\n89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl\nNpi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc\nGu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz\nuEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB\nAAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU\nBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB\nFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo\nSmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF\nBQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG\nAQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD\nVR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB\nAGvM/XGv8yafGRGMPP6hnggoI9DGWGf4l0mzjBhuCkDVqoG/7rsH1ytzteePxiA3\n7kqSBo0fXu5GmbWOw09GpwPYyAAY0iWOMU6ybrTJHS466Urzoe/4IwLQoQc219EK\nlh+4Ugu1q4KxNY1qMDA/1YX2Qm9M6AcAs1UvZKHSpJQAbsYrbN6obNoUGOeG6ONH\nYr8KRQz5FMfZYcA49fmdDTwKn/pyLOkJFeA/dm/oP99UmKCFoeOa5w9YJr2Vi7ic\nXd59CU8mprWhxFXnma1oU3T8ZNovjib3UHocjlEJfNbDy9zgKTYURcMVweo1dkbH\nNbLc5mIjIk/kJ+RPD+chR+gJjy3Gh9xMNkDrZQKfsIO93hxTsZMmgZQ4c+vujC1M\njSak+Ai87YZeYQPh1fCGMSTno5III37DUCtIn8BJxJixuPeOMKsjLLD5AtMVy0fp\nd19lcUek4bjDY8/Ujb5/wfn2+Kk7z72SxWdekjtHOWBmKxqq8jDuuMw4ymg1g5n7\nR7TZ/Y3y4bTpWUDkBHFo03xNM21wBFDIrCZZeVhvDW4MtT6+Ass2bcpoHwYcGol2\ngaLDa5k2dkG41OGtXa0fY+TjdryY4cOcstJUKjv2MJku4yaTtjjECX1rJvFLnqYe\nwC+FmxjgWPuyRNuLDAWK30mmpcJZ3CmD6dFtAi4h7H37\n-----END CERTIFICATE-----","certificateType":"ECDSA","createdAt":"2023-11-09T15:20:23.337051+01:00","description":"Description of credential usage","expiredAt":"2024-11-09T15:20:23.337051+01:00","fromCSR":true,"id":"9df5c871-94c4-4325-8440-1433ab52c003","identityURNs":["urn:v1:eu:identity:user:xx1111-ovh/john.smith","urn:v1:eu:identity:group:xx1111-ovh/my_group"],"name":"John Smith","status":"DELETING"}}}}}},"400":{"description":"Error 400 response","content":{"application/json":{"schema":{"type":"object","description":"Common error model","properties":{"class":{"type":"string","description":"Class of the error"},"message":{"type":"string","description":"Error message"}}},"examples":{"Client::BadRequest::CredentialStatusInvalid":{"value":{"class":"Client::BadRequest::CredentialStatusInvalid","message":"The credential should be in status 'READY', 'EXPIRED' or 'ERROR'"}}}}}}},"tags":["Credentials"],"x-developer-hub-navigation":[["Manage & operate","Key and Secret Manager","Credentials@@@40"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.delete(\"/v2/okms/resource/{okmsId}/credential/{credentialId}\")\n\n# Pretty print\nprint(json.dumps(result, indent=4))"},{"lang":"php","label":"PHP","source":"<?php\n/**\n * First, download the latest release of PHP wrapper on github\n * And include this script into the folder with extracted files\n */\nrequire __DIR__ . '/vendor/autoload.php';\nuse \\Ovh\\Api;\n\n/**\n * Instantiate an OVH Client.\n * You can generate new credentials with full access to your account on\n * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\n */\n$ovh = new Api('xxxxxxxxxx',  // Application Key\n               'xxxxxxxxxx',  // Application Secret\n               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n               'xxxxxxxxxx'); // Consumer Key\n\n$result = $ovh->delete(\"/v2/okms/resource/{okmsId}/credential/{credentialId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"okms:apiovh:credential/delete","required":true}]},"get":{"operationId":"getOkmsCredential","summary":"Get an access credential","description":"Returns the metadata and certificate of an access credential. The private key is returned only when the credential is created and can never be retrieved afterward.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"credentialId","description":"Credential ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"okmsId","description":"Okms ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/okms.credential.GetResponse"},"examples":{"Simple example":{"value":{"certificatePEM":"-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIRAOeTkL6SBwNJGF95dYHlyoMwDQYJKoZIhvcNAQELBQAw\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTIwMDIw\nWhcNMjAwNjA0MTIwMDIwWjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\nRW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDEwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX\nNSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf\n89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl\nNpi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc\nGu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz\nuEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB\nAAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU\nBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB\nFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo\nSmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF\nBQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG\nAQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD\nVR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB\nAGvM/XGv8yafGRGMPP6hnggoI9DGWGf4l0mzjBhuCkDVqoG/7rsH1ytzteePxiA3\n7kqSBo0fXu5GmbWOw09GpwPYyAAY0iWOMU6ybrTJHS466Urzoe/4IwLQoQc219EK\nlh+4Ugu1q4KxNY1qMDA/1YX2Qm9M6AcAs1UvZKHSpJQAbsYrbN6obNoUGOeG6ONH\nYr8KRQz5FMfZYcA49fmdDTwKn/pyLOkJFeA/dm/oP99UmKCFoeOa5w9YJr2Vi7ic\nXd59CU8mprWhxFXnma1oU3T8ZNovjib3UHocjlEJfNbDy9zgKTYURcMVweo1dkbH\nNbLc5mIjIk/kJ+RPD+chR+gJjy3Gh9xMNkDrZQKfsIO93hxTsZMmgZQ4c+vujC1M\njSak+Ai87YZeYQPh1fCGMSTno5III37DUCtIn8BJxJixuPeOMKsjLLD5AtMVy0fp\nd19lcUek4bjDY8/Ujb5/wfn2+Kk7z72SxWdekjtHOWBmKxqq8jDuuMw4ymg1g5n7\nR7TZ/Y3y4bTpWUDkBHFo03xNM21wBFDIrCZZeVhvDW4MtT6+Ass2bcpoHwYcGol2\ngaLDa5k2dkG41OGtXa0fY+TjdryY4cOcstJUKjv2MJku4yaTtjjECX1rJvFLnqYe\nwC+FmxjgWPuyRNuLDAWK30mmpcJZ3CmD6dFtAi4h7H37\n-----END CERTIFICATE-----","certificateType":"ECDSA","createdAt":"2023-11-09T15:20:23.337051+01:00","description":"Description of credential usage","expiredAt":"2024-11-09T15:20:23.337051+01:00","fromCSR":true,"id":"9df5c871-94c4-4325-8440-1433ab52c003","identityURNs":["urn:v1:eu:identity:user:xx1111-ovh/john.smith","urn:v1:eu:identity:group:xx1111-ovh/my_group"],"name":"John Smith","status":"READY"}}}}}}},"tags":["Credentials"],"x-developer-hub-navigation":[["Manage & operate","Key and Secret Manager","Credentials@@@20"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.get(\"/v2/okms/resource/{okmsId}/credential/{credentialId}\")\n\n# Pretty print\nprint(json.dumps(result, indent=4))"},{"lang":"php","label":"PHP","source":"<?php\n/**\n * First, download the latest release of PHP wrapper on github\n * And include this script into the folder with extracted files\n */\nrequire __DIR__ . '/vendor/autoload.php';\nuse \\Ovh\\Api;\n\n/**\n * Instantiate an OVH Client.\n * You can generate new credentials with full access to your account on\n * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\n */\n$ovh = new Api('xxxxxxxxxx',  // Application Key\n               'xxxxxxxxxx',  // Application Secret\n               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n               'xxxxxxxxxx'); // Consumer Key\n\n$result = $ovh->get(\"/v2/okms/resource/{okmsId}/credential/{credentialId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"okms:apiovh:credential/get","required":true}],"x-response-identifier":"id"}}},"tags":[{"name":"Credentials","x-tag-expanded":false,"description":"Missing description"}]}
