{"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"},"phoneNumber":{"type":"string","description":"Phone number","format":"phone-number"},"publicCloud.blockStorage.VolumeTypeEnum":{"type":"string","description":"Possible volume types for a block storage volume","enum":["CLASSIC","HIGH_SPEED","HIGH_SPEED_GEN2"]},"publicCloud.reference.Location":{"type":"object","description":"Location of a reference entry: the region it applies to, its availability zones and whether it is activated on the project","properties":{"availabilityZones":{"type":"array","description":"Availability zones of the region, for example eu-west-par-a, eu-west-par-b and eu-west-par-c. Empty for a single-AZ region.","items":{"type":"string"},"readOnly":true},"region":{"type":"string","description":"Region name, for example GRA11","readOnly":true},"regionActivated":{"type":"boolean","description":"Whether the region is already activated on the project. When false, the region must be activated on the project before use.","readOnly":true}}},"publicCloud.reference.storage.block.VolumeType":{"type":"object","description":"A block storage volume type and its performance and size limits in one region. A volume type sold in several regions appears once per region.","properties":{"iops":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformance"}],"description":"Input/output operations per second of a volume of this type in this region","readOnly":true},"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.Location"}],"description":"Region where the volume type is sold to the project, whether that region is already activated on the project (regionActivated), and the availability zones of that region (availabilityZones), empty for a single-AZ region","readOnly":true},"maximumSize":{"type":"integer","description":"Maximum size of a volume of this type in this region in GB","readOnly":true},"name":{"allOf":[{"$ref":"#/components/schemas/publicCloud.blockStorage.VolumeTypeEnum"}],"description":"Volume type identifier, to use as the volume type when creating a volume","readOnly":true},"throughput":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformance"}],"description":"Throughput of a volume of this type in this region. Null when no throughput figure is published for this region.","nullable":true,"readOnly":true}}},"publicCloud.reference.storage.block.VolumeTypePerformance":{"type":"object","description":"A performance figure of a volume type: a baseline level and an upper limit","properties":{"guaranteed":{"type":"boolean","description":"Whether the baseline level is guaranteed","readOnly":true},"level":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformanceValue"}],"description":"Baseline performance of a volume. May be expressed per GB of volume size, see its unit.","readOnly":true},"maximum":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformanceValue"}],"description":"Upper performance limit of a volume","readOnly":true}}},"publicCloud.reference.storage.block.VolumeTypePerformanceUnitEnum":{"type":"string","description":"Possible units for a volume type performance value","enum":["IOPS","IOPS/GB","MB/S","MB/S/GB"]},"publicCloud.reference.storage.block.VolumeTypePerformanceValue":{"type":"object","description":"A performance value and its unit","properties":{"unit":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformanceUnitEnum"}],"description":"Unit of the value. Units ending in `/GB` scale with the volume size.","readOnly":true},"value":{"type":"number","description":"Numeric value, expressed in unit","readOnly":true}}},"publicCloud.reference.storage.file.ShareType":{"type":"object","description":"A file storage type and its supported protocols, performance and size limits in one region. A file storage type sold in several regions appears once per region.","properties":{"iops":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformance"}],"description":"Input/output operations per second of a file storage of this type in this region","readOnly":true},"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.Location"}],"description":"Region where the file storage type is sold to the project, whether that region is already activated on the project (regionActivated), and the availability zones of that region (availabilityZones), empty for a single-AZ region","readOnly":true},"maximumSize":{"type":"integer","description":"Maximum size of a file storage of this type in this region in GB","readOnly":true},"minimumSize":{"type":"integer","description":"Minimum size of a file storage of this type in this region in GB","readOnly":true},"name":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.file.FileStorageTypeEnum"}],"description":"File storage type identifier, to use as the type when creating a file storage","readOnly":true},"protocols":{"type":"array","description":"Protocols a file storage of this type supports","items":{"$ref":"#/components/schemas/publicCloud.storage.file.FileStorageProtocolEnum"},"readOnly":true},"throughput":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeTypePerformance"}],"description":"Throughput of a file storage of this type in this region. Null when no throughput figure is published for this region.","nullable":true,"readOnly":true}}},"publicCloud.reference.storage.object.BucketOptions":{"type":"object","description":"Allowed values for the object storage bucket creation options","properties":{"encryptionAlgorithms":{"type":"array","description":"Server-side encryption algorithms selectable at bucket creation","items":{"$ref":"#/components/schemas/publicCloud.storage.object.BucketEncryptionAlgorithmEnum"},"readOnly":true},"objectLockModes":{"type":"array","description":"Object lock retention modes selectable at bucket creation","items":{"$ref":"#/components/schemas/publicCloud.storage.object.BucketObjectLockModeEnum"},"readOnly":true},"userRoles":{"type":"array","description":"User roles assignable on a bucket, one of which is flagged as the default","items":{"$ref":"#/components/schemas/publicCloud.reference.storage.object.UserRole"},"readOnly":true},"versioningStatuses":{"type":"array","description":"Versioning statuses selectable at bucket creation","items":{"$ref":"#/components/schemas/publicCloud.storage.object.BucketVersioningStatusEnum"},"readOnly":true}}},"publicCloud.reference.storage.object.ObjectRestoreValidation":{"type":"object","description":"Bounds for the number of days an archived object stays restored","properties":{"defaultDays":{"type":"integer","description":"Number of days preselected when no duration is provided","readOnly":true},"maxDays":{"type":"integer","description":"Maximum number of days an object can be restored for","readOnly":true},"minDays":{"type":"integer","description":"Minimum number of days an object can be restored for","readOnly":true}}},"publicCloud.reference.storage.object.ObjectStorage":{"type":"object","description":"Global, non region-scoped object storage reference data: storage classes, allowed bucket option values and input validation constraints","properties":{"bucketOptions":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.object.BucketOptions"}],"description":"Allowed values for the bucket creation options","readOnly":true},"storageClasses":{"type":"array","description":"Object storage classes and their billing constraints","items":{"$ref":"#/components/schemas/publicCloud.reference.storage.object.StorageClass"},"readOnly":true},"validation":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.object.Validation"}],"description":"Input validation constraints applied to object storage resources","readOnly":true}}},"publicCloud.reference.storage.object.StorageClass":{"type":"object","description":"An object storage class and its billing constraints","properties":{"minBilledRetentionDays":{"type":"integer","description":"Minimum number of days an object is billed for in this storage class, even when deleted earlier. Null when the class has no minimum billed retention.","nullable":true,"readOnly":true},"name":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.object.StorageClassEnum"}],"description":"Unique identifier of the storage class","readOnly":true}}},"publicCloud.reference.storage.object.UserRole":{"type":"object","description":"An S3™ user role assignable on a bucket","properties":{"isDefault":{"type":"boolean","description":"Whether this role is the one preselected when granting a user access to a bucket","readOnly":true},"name":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.object.UserRoleEnum"}],"description":"Unique identifier of the role","readOnly":true}}},"publicCloud.reference.storage.object.UserRoleEnum":{"type":"string","description":"S3™ user roles assignable on a bucket, as normalized by the API. `ADMIN`: Full control over the bucket, including its policy and configuration. `READ_WRITE`: Read and write objects in the bucket. `READ_ONLY`: Read objects in the bucket. `DENY`: No access to the bucket.","enum":["ADMIN","DENY","READ_ONLY","READ_WRITE"]},"publicCloud.reference.storage.object.Validation":{"type":"object","description":"Input validation constraints applied to object storage resources","properties":{"objectRestore":{"allOf":[{"$ref":"#/components/schemas/publicCloud.reference.storage.object.ObjectRestoreValidation"}],"description":"Bounds for the duration an archived object is restored for","readOnly":true}}},"publicCloud.storage.file.FileStorageProtocolEnum":{"type":"string","description":"Supported file sharing protocols","enum":["NFS"]},"publicCloud.storage.file.FileStorageTypeEnum":{"type":"string","description":"Supported file storage types (performance tiers)","enum":["STANDARD_1AZ"]},"publicCloud.storage.object.BucketEncryptionAlgorithmEnum":{"type":"string","description":"Supported encryption algorithms for S3™ compatible buckets","enum":["AES256","PLAINTEXT"]},"publicCloud.storage.object.BucketObjectLockModeEnum":{"type":"string","description":"Object lock retention modes","enum":["COMPLIANCE","GOVERNANCE"]},"publicCloud.storage.object.BucketVersioningStatusEnum":{"type":"string","description":"Versioning status for an S3™ compatible bucket","enum":["DISABLED","ENABLED","SUSPENDED"]},"publicCloud.storage.object.StorageClassEnum":{"type":"string","description":"Available S3™ storage classes","enum":["DEEP_ARCHIVE","GLACIER_IR","HIGH_PERF","STANDARD","STANDARD_IA"]},"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":{"/publicCloud/project/{projectId}/reference/storage/block/volumeType":{"get":{"operationId":"getVolumeTypes","summary":"List block storage volume types","description":"Returns the volume types with their IOPS, throughput and maximum volume size. The list holds one entry per volume type and region: a volume type sold in several regions appears once per region, with the figures of that region and the region in `location`. The regions already activated on the project and those the project can activate where a volume type is sold are both listed. `location.regionActivated` on each entry tells which regions must be activated on the project before use. `location.availabilityZones` lists the availability zones of the region, for example eu-west-par-a, eu-west-par-b and eu-west-par-c, and is empty for a single-AZ region. Entries are grouped by volume type, then sorted by region name. For IOPS and throughput, `level` is the baseline, `maximum` the upper limit a volume can burst to, and `guaranteed` tells whether the baseline is guaranteed. `maximumSize` is the maximum volume size in GB.","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":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}},{"in":"query","name":"region","description":"Optional region filter, case-insensitive. Keeps the entries of this region only. A region that does not exist is rejected. One the project can neither use nor activate returns an empty list.","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.reference.storage.block.VolumeType"}}}}}},"tags":["Reference"],"x-developer-hub-navigation":[["Public Cloud","Storage","Block Storage","Service references"],["Public Cloud","Project Management","Service references","Storage"]],"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/publicCloud/project/{projectId}/reference/storage/block/volumeType\")\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/publicCloud/project/{projectId}/reference/storage/block/volumeType\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:reference/storage/block/volumeType/get","required":true}]}},"/publicCloud/project/{projectId}/reference/storage/file/shareType":{"get":{"operationId":"getShareTypes","summary":"List file storage share types","description":"Returns the file storage share types with their minimum and maximum share size in GB, IOPS and throughput, read from the OVHcloud commercial catalog. The list holds one entry per share type and region: a share type sold in several regions appears once per region, with the figures of that region and the region in `location`. The regions already activated on the project and those the project can activate where a share type is sold are both listed. `location.regionActivated` on each entry tells which regions must be activated on the project before use. `location.availabilityZones` lists the availability zones of the region, for example eu-west-par-a, eu-west-par-b and eu-west-par-c, and is empty for a single-AZ region. Entries are sorted by share type name, then by region name. For IOPS and throughput, `level` is the baseline per GB, `maximum` the upper limit, and `guaranteed` tells whether the baseline is guaranteed. Use `name` as the share type when creating a share.","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":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}},{"in":"query","name":"region","description":"Optional region filter, case-insensitive. Keeps the entries of this region only. A region that does not exist is rejected. One the project can neither use nor activate returns an empty list.","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.reference.storage.file.ShareType"}}}}}},"tags":["Reference"],"x-developer-hub-navigation":[["Public Cloud","Storage","File Storage","Service references"],["Public Cloud","Project Management","Service references","Storage"]],"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/publicCloud/project/{projectId}/reference/storage/file/shareType\")\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/publicCloud/project/{projectId}/reference/storage/file/shareType\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:reference/storage/file/shareType/get","required":true}]}},"/publicCloud/project/{projectId}/reference/storage/object":{"get":{"operationId":"getObjectStorageReference","summary":"Get object storage reference data","description":"Returns the storage classes with their minimum billed retention, the values accepted at bucket creation, and the allowed durations for restoring an archived object. Region capabilities, such as replication support, are returned by each region in `/reference/region`.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.reference.storage.object.ObjectStorage"}}}}},"tags":["Reference"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Service references"],["Public Cloud","Project Management","Service references","Storage"]],"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/publicCloud/project/{projectId}/reference/storage/object\")\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/publicCloud/project/{projectId}/reference/storage/object\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:reference/storage/object/get","required":true}]}}},"tags":[{"name":"Reference","x-tag-expanded":false,"description":"Missing description"}]}
