{"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 !"},"common.CurrentTask":{"type":"object","description":"Asynchronous operation currently running","properties":{"errors":{"type":"array","description":"Errors that occurred on the task","nullable":true,"items":{"$ref":"#/components/schemas/common.TaskError"},"readOnly":true},"id":{"type":"string","description":"Identifier of the current task","format":"uuid","readOnly":true},"link":{"type":"string","description":"Link to the task details","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/common.CurrentTaskStatusEnum"}],"description":"Current global status of the current task","nullable":true,"readOnly":true},"type":{"type":"string","description":"Type of the current task","readOnly":true}}},"common.CurrentTaskStatusEnum":{"type":"string","description":"Current status of a task. A task in ERROR cannot be retried without your inputs. PENDING tasks will be executed as soon as possible. A RUNNING task is currently executing your original request. SCHEDULED is used for tasks that will be executed in the future.","enum":["ERROR","PENDING","RUNNING","SCHEDULED","WAITING_USER_INPUT"]},"common.ResourceStatusEnum":{"type":"string","description":"Current status of a resource","enum":["CREATING","CREATION_PLANNED","DELETING","ERROR","OUT_OF_SYNC","READY","SUSPENDED","UNKNOWN","UPDATING"]},"common.TaskError":{"type":"object","description":"Errors that occurred on the task","properties":{"message":{"type":"string","description":"Error description","readOnly":true}}},"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.common.Location":{"type":"object","description":"Resource location","properties":{"availabilityZone":{"type":"string","description":"Availability zone within the region","nullable":true},"region":{"type":"string","description":"Region code"}},"required":["region"]},"publicCloud.storage.swift.Container":{"type":"object","description":"A Swift object storage container. Its identifier is <REGION>_<name>, for example GRA_my-container, where REGION is the region of the container.","properties":{"checksum":{"type":"string","description":"Computed hash representing the current target specification value","readOnly":true},"createdAt":{"type":"string","description":"Creation date of the container","format":"date-time","readOnly":true},"currentState":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerCurrentState"}],"description":"Current observed state of the container, read from the Swift backend","nullable":true,"readOnly":true},"currentTasks":{"type":"array","description":"Ongoing asynchronous tasks related to the container","nullable":true,"items":{"$ref":"#/components/schemas/common.CurrentTask"},"readOnly":true},"id":{"type":"string","description":"Container identifier, built as <REGION>_<name>, for example GRA_my-container. A container name is unique within a region of the project, so the pair identifies it.","readOnly":true},"resourceStatus":{"allOf":[{"$ref":"#/components/schemas/common.ResourceStatusEnum"}],"description":"Container readiness in the system","readOnly":true},"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerTargetSpec"}],"description":"Last target specification of the container","readOnly":true},"updatedAt":{"type":"string","description":"Last update date of the container","format":"date-time","readOnly":true}}},"publicCloud.storage.swift.ContainerCreation":{"type":"object","description":"Payload to create a Swift object storage container","properties":{"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerTargetSpec"}],"description":"Desired target specification for the container to create"}},"required":["targetSpec"]},"publicCloud.storage.swift.ContainerCurrentState":{"type":"object","description":"Current observed state of a Swift object storage container, read from the Swift backend","properties":{"archive":{"type":"boolean","description":"Whether the container uses the Public Cloud Archive storage policy (X-Storage-Policy: PCA). Objects in an archive container are sealed after upload and must be unsealed before download.","readOnly":true},"cors":{"type":"array","description":"Origins currently allowed to access the container from a browser (Access-Control-Allow-Origin container metadata). Empty when no origin is allowed.","items":{"type":"string"},"readOnly":true},"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.common.Location"}],"description":"Region hosting the container","readOnly":true},"name":{"type":"string","description":"Container name","readOnly":true},"objectsCount":{"type":"integer","description":"Number of objects stored in the container","readOnly":true},"objectsSize":{"type":"integer","description":"Total size of the objects stored in the container in bytes","readOnly":true},"staticUrl":{"type":"string","description":"Public URL of the container, only set when type is PUBLIC or STATIC. Built from the URL-encoded container name, the project's Swift account and the region's object-store endpoint.","nullable":true,"readOnly":true},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerTypeEnum"}],"description":"Access type of the container, derived from its read ACL and static website metadata: STATIC when the website metadata is set, PUBLIC when only the public read ACL is set, PRIVATE otherwise","readOnly":true}}},"publicCloud.storage.swift.ContainerTargetSpec":{"type":"object","description":"Target specification for a Swift object storage container. name, location and archive are set at creation and cannot be changed afterward. type and cors can be updated.","properties":{"archive":{"type":"boolean","description":"Create the container with the Public Cloud Archive storage policy (X-Storage-Policy: PCA) instead of the standard policy. Objects in an archive container are sealed after upload and must be unsealed (retrieval) before download. Immutable after creation. Defaults to false.","nullable":true},"cors":{"type":"array","description":"Origins allowed to access the container from a browser (Access-Control-Allow-Origin container metadata), for example https://www.example.com. Duplicates are removed. Defaults to no origin, which blocks cross-origin browser requests.","nullable":true,"items":{"type":"string"}},"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.common.Location"}],"description":"Region hosting the container. Only region is used. availabilityZone is ignored because Swift is region-wide. The region is part of the container identifier and cannot be changed."},"name":{"type":"string","description":"Container name, unique within the region. At most 256 bytes and must not contain a slash (/). Immutable after creation."},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerTypeEnum"}],"description":"Access type of the container. PRIVATE requires a token or a presigned URL to read objects. PUBLIC lets anyone read and list objects. STATIC also serves the container as a static website: index.html as the index page, error.html on errors and listing.css to style listings. Default versions of these three files are pushed to the container when it is switched to STATIC. Defaults to PRIVATE.","nullable":true}},"required":["location","name"]},"publicCloud.storage.swift.ContainerTypeEnum":{"type":"string","description":"Possible access types of a Swift container. `PRIVATE`: objects are only reachable with a valid token or a presigned URL. `PUBLIC`: anyone with the URL can read and list the objects. `STATIC`: PUBLIC plus static website hosting, serving index.html as the index page, error.html on errors and listing.css to style directory listings.","enum":["PRIVATE","PUBLIC","STATIC"]},"publicCloud.storage.swift.ContainerUpdate":{"type":"object","description":"Payload to update a Swift object storage container","properties":{"checksum":{"type":"string","description":"Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins).","nullable":true},"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerUpdateTargetSpec"}],"description":"Desired target specification for the container"}},"required":["targetSpec"]},"publicCloud.storage.swift.ContainerUpdateTargetSpec":{"type":"object","description":"Target specification for updating a Swift object storage container (mutable fields only). name, location and archive cannot be changed after creation.","properties":{"cors":{"type":"array","description":"Origins allowed to access the container from a browser (Access-Control-Allow-Origin container metadata), for example https://www.example.com. The list replaces the current origins. Duplicates are removed. An empty list or null removes every origin.","nullable":true,"items":{"type":"string"}},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerTypeEnum"}],"description":"Access type of the container. A null or missing type resets the container to PRIVATE. PRIVATE requires a token or a presigned URL to read objects. PUBLIC lets anyone read and list objects. STATIC also serves the container as a static website: index.html as the index page, error.html on errors and listing.css to style listings. Default versions of these three files are pushed to the container when it is switched to STATIC. Switching back to PRIVATE removes the public read ACL and the static website settings but keeps the objects.","nullable":true}}},"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}/storage/swift/container":{"get":{"operationId":"getSwiftContainers","summary":"List containers","description":"Returns the containers of the project across every region offering Swift object storage.","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"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.storage.swift.Container"}}}}}},"tags":["Storage","Swift"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Swift Object Storage@@@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/publicCloud/project/{projectId}/storage/swift/container\")\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}/storage/swift/container\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:storage/swift/container/get","required":true}],"x-response-identifier":"id","x-expanded-response":"PublicCloudStorageSwiftContainer"},"post":{"operationId":"createSwiftContainer","summary":"Create a container","description":"Creates a container in a region. The archive policy, the access type and the CORS origins can be set at creation. Name, region and archive policy cannot be changed afterward.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerCreation"},"examples":{"Create container":{"value":{"targetSpec":{"cors":["https://www.example.com"],"location":{"region":"GRA"},"name":"my-container","type":"PUBLIC"}},"summary":"Create a public container allowing one origin"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.storage.swift.Container"}}}},"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::InvalidParameter":{"value":{"class":"Client::BadRequest::InvalidParameter","message":"Invalid parameter in the request"}},"Client::BadRequest::ServiceNotAvailableInRegion":{"value":{"class":"Client::BadRequest::ServiceNotAvailableInRegion","message":"This service is not available in the selected region"}},"Client::BadRequest::SwiftContainerNameInvalid":{"value":{"class":"Client::BadRequest::SwiftContainerNameInvalid","message":"Invalid Swift container name: it must not contain a slash and must be at most 256 bytes"}}}}}},"409":{"description":"Error 409 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::Conflict::RegionInMaintenance":{"value":{"class":"Client::Conflict::RegionInMaintenance","message":"This region is currently in maintenance"}},"Client::Conflict::SwiftContainerAlreadyExists":{"value":{"class":"Client::Conflict::SwiftContainerAlreadyExists","message":"A Swift container with this name already exists in this region"}}}}}}},"tags":["Storage","Swift"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Swift Object Storage@@@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: publicCloud.storage.swift.ContainerCreation\nresult = client.post(\"/v2/publicCloud/project/{projectId}/storage/swift/container\",\n\ttargetSpec = None, # Desired target specification for the container to create (type: publicCloud.storage.swift.ContainerTargetSpec)\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: publicCloud.storage.swift.ContainerCreation\n$result = $ovh->post(\"/v2/publicCloud/project/{projectId}/storage/swift/container\", array(\n\ttargetSpec => null, // Desired target specification for the container to create (type: publicCloud.storage.swift.ContainerTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:storage/swift/container/create","required":true}]}},"/publicCloud/project/{projectId}/storage/swift/container/{containerId}":{"delete":{"operationId":"deleteSwiftContainer","summary":"Delete a container","description":"Deletes the container and every object it holds. The deletion is asynchronous: the container stays in DELETING status until it is emptied and removed.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"containerId","description":"Container ID","required":true,"schema":{"type":"string"}},{"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.storage.swift.Container"}}}},"404":{"description":"Error 404 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::NotFound::SwiftContainerDoesNotExist":{"value":{"class":"Client::NotFound::SwiftContainerDoesNotExist","message":"Swift container not found"}}}}}},"409":{"description":"Error 409 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::Conflict::ResourceAlreadyBeingDeleted":{"value":{"class":"Client::Conflict::ResourceAlreadyBeingDeleted","message":"Resource is already being deleted"}},"Client::Conflict::ResourceInInvalidState":{"value":{"class":"Client::Conflict::ResourceInInvalidState","message":"Resource cannot be modified in its current state"}}}}}}},"tags":["Storage","Swift"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Swift Object Storage@@@50"]],"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/publicCloud/project/{projectId}/storage/swift/container/{containerId}\")\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/publicCloud/project/{projectId}/storage/swift/container/{containerId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:storage/swift/container/delete","required":true}]},"get":{"operationId":"getSwiftContainer","summary":"Get a container","description":"Returns the container configuration and its current state, including its object count and stored size.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"containerId","description":"Container ID","required":true,"schema":{"type":"string"}},{"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.storage.swift.Container"},"examples":{"Example":{"value":{"checksum":"4f2c1b9e8a7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b","createdAt":"2026-02-01T10:00:00Z","currentState":{"archive":true,"cors":[],"location":{"region":"GRA"},"name":"my-container","objectsCount":1,"objectsSize":1048576,"staticUrl":null,"type":"PRIVATE"},"currentTasks":[],"id":"GRA_my-container","resourceStatus":"READY","targetSpec":{"archive":true,"cors":[],"location":{"region":"GRA"},"name":"my-container","type":"PRIVATE"},"updatedAt":"2026-02-01T10:05:00Z"},"summary":"A private archive container"}}}}},"404":{"description":"Error 404 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::NotFound::SwiftContainerDoesNotExist":{"value":{"class":"Client::NotFound::SwiftContainerDoesNotExist","message":"Swift container not found"}}}}}}},"tags":["Storage","Swift"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Swift Object Storage@@@35"]],"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}/storage/swift/container/{containerId}\")\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}/storage/swift/container/{containerId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:storage/swift/container/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editSwiftContainer","summary":"Update a container","description":"Updates the access type and the CORS origins of the container. Send the current checksum to prevent overwriting a concurrent change. Without it, the last write wins.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"containerId","description":"Container ID","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.storage.swift.ContainerUpdate"},"examples":{"Update container":{"value":{"checksum":"4f2c1b9e8a7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b","targetSpec":{"cors":["https://www.example.com"],"type":"STATIC"}},"summary":"Turn a container into a static website using optimistic concurrency with checksum"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.storage.swift.Container"}}}},"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::InvalidParameter":{"value":{"class":"Client::BadRequest::InvalidParameter","message":"Invalid parameter in the request"}}}}}},"404":{"description":"Error 404 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::NotFound::SwiftContainerDoesNotExist":{"value":{"class":"Client::NotFound::SwiftContainerDoesNotExist","message":"Swift container not found"}}}}}},"409":{"description":"Error 409 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::Conflict::ChecksumMismatch":{"value":{"class":"Client::Conflict::ChecksumMismatch","message":"Checksum mismatch — a concurrent update was detected. Refresh the resource and retry"}},"Client::Conflict::ResourceInInvalidState":{"value":{"class":"Client::Conflict::ResourceInInvalidState","message":"Resource cannot be modified in its current state"}}}}}}},"tags":["Storage","Swift"],"x-developer-hub-navigation":[["Public Cloud","Storage","Object Storage","Swift Object Storage@@@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\n# Request body type: publicCloud.storage.swift.ContainerUpdate\nresult = client.put(\"/v2/publicCloud/project/{projectId}/storage/swift/container/{containerId}\",\n\tchecksum = None, # Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)\n\ttargetSpec = None, # Desired target specification for the container (type: publicCloud.storage.swift.ContainerUpdateTargetSpec)\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: publicCloud.storage.swift.ContainerUpdate\n$result = $ovh->put(\"/v2/publicCloud/project/{projectId}/storage/swift/container/{containerId}\", array(\n\tchecksum => null, // Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)\n\ttargetSpec => null, // Desired target specification for the container (type: publicCloud.storage.swift.ContainerUpdateTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:storage/swift/container/edit","required":true}]}}},"tags":[{"name":"Storage","x-tag-expanded":false,"description":"Missing description"},{"name":"Swift","x-tag-expanded":false,"description":"Missing description"}]}
