{"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.instanceGroup.InstanceGroup":{"type":"object","description":"Instance group (placement group). A Public Cloud instance group, backed by an OpenStack/Nova server group, that constrains how its member instances are placed relative to one another (see policy and PolicyEnum: AFFINITY / ANTI_AFFINITY). An instance group is immutable once created: there is no update (PUT) route, and its membership is fixed. Instances join a group only at instance-creation time, through the instance's targetSpec.group field. They cannot be added to or removed from a group afterward. The only lifecycle operations are create (POST), read (GET/LIST) and delete (DELETE). The object follows the standard envelope: targetSpec is the desired specification supplied on creation, while currentState reflects what the backend actually reports (including the current members).","properties":{"checksum":{"type":"string","description":"Checksum. Computed hash of the current target specification, used for optimistic concurrency control. Because an instance group has no update route, this value never changes after creation.","readOnly":true},"createdAt":{"type":"string","description":"Creation date. Timestamp at which the instance group was created, in RFC 3339 format.","format":"date-time","readOnly":true},"currentState":{"allOf":[{"$ref":"#/components/schemas/publicCloud.instanceGroup.InstanceGroupCurrentState"}],"description":"Actual state of the instance group as reported by the backend (OpenStack/Nova server group), including its current members. This is read-only and reflects reality, in contrast to targetSpec which is the desired specification supplied on creation. May be null while the group is still being provisioned and no backend state is known yet.","nullable":true,"readOnly":true},"currentTasks":{"type":"array","description":"Current tasks. Asynchronous operations currently running against this instance group, for example the initial provisioning or the deletion. Empty or null when no operation is in progress.","nullable":true,"items":{"$ref":"#/components/schemas/common.CurrentTask"},"readOnly":true},"id":{"type":"string","description":"Unique identifier of the instance group, assigned at creation and used to reference it on the GET/DELETE routes","format":"uuid","readOnly":true},"resourceStatus":{"allOf":[{"$ref":"#/components/schemas/common.ResourceStatusEnum"}],"description":"Lifecycle status of the instance group in the system, for example whether it is being created, ready, or being deleted. Reflects readiness of the resource, not the placement policy itself.","readOnly":true},"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.instanceGroup.InstanceGroupTargetSpec"}],"description":"Target specification. Desired specification of the instance group as supplied on creation (name, location and placement policy). Since an instance group cannot be updated, this specification is fixed for the lifetime of the group. Compare it against currentState to see what the backend actually provisioned.","readOnly":true}}},"publicCloud.instanceGroup.InstanceGroupCreation":{"type":"object","description":"Instance group creation payload. Request body for creating a Public Cloud instance group (POST). It wraps the desired InstanceGroupTargetSpec. Creation is the only way to define a group's placement policy: the group is immutable afterward (no PUT route), and instances join it exclusively at instance-creation time via the instance's targetSpec.group field.","properties":{"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.instanceGroup.InstanceGroupTargetSpec"}],"description":"Target specification. Desired specification of the instance group to create: its name, location and placement policy (see PolicyEnum). All of these values are fixed for the lifetime of the group, as instance groups cannot be updated once created."}},"required":["targetSpec"]},"publicCloud.instanceGroup.InstanceGroupCurrentState":{"type":"object","description":"Actual state of an instance group as reported by the backend (OpenStack/Nova server group). This is read-only: it reflects what the backend observes, in contrast to the desired InstanceGroupTargetSpec supplied on creation. Besides the group's name, location and placement policy, it exposes the current membership. Membership is fixed once instances are created: instances join a group only at instance-creation time via the instance's targetSpec.group field, and there is no route to add or remove members afterward.","properties":{"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.common.Location"}],"description":"Location. Region (and, where applicable, availability zone) where the instance group and its member instances are deployed, as observed on the backend.","readOnly":true},"members":{"type":"array","description":"Instances currently belonging to this group, each referenced by its identifier (see InstanceGroupMemberRef). Membership is determined at instance-creation time via the instance's targetSpec.group field and cannot be changed afterward. Null or empty when the group has no member instances.","nullable":true,"items":{"$ref":"#/components/schemas/publicCloud.instanceGroup.InstanceGroupMemberRef"},"readOnly":true},"name":{"type":"string","description":"Display name of the instance group as reported by the backend. Fixed for the lifetime of the group, since instance groups cannot be updated.","readOnly":true},"policy":{"allOf":[{"$ref":"#/components/schemas/publicCloud.instanceGroup.PolicyEnum"}],"description":"Placement policy currently enforced for the group's members (see PolicyEnum): AFFINITY packs members onto the same hypervisor, ANTI_AFFINITY spreads them across distinct hypervisors. Mirrors the underlying OpenStack/Nova server group policy and is fixed at creation.","readOnly":true}}},"publicCloud.instanceGroup.InstanceGroupMemberRef":{"type":"object","description":"Reference to a single instance that is a member of an instance group. It appears in the group's currentState.members list and identifies the member by its instance id. Membership is established at instance-creation time via the instance's targetSpec.group field and is immutable: an instance cannot be added to or removed from a group afterward.","properties":{"id":{"type":"string","description":"Unique identifier of the instance that belongs to the group. Use it to look up the full instance on the compute instance route.","format":"uuid","readOnly":true}}},"publicCloud.instanceGroup.InstanceGroupTargetSpec":{"type":"object","description":"Desired instance group specification (creation). User-controlled specification of an instance group, as supplied on creation (POST). It carries every settable field: name, location and placement policy. All of these fields are immutable once the group exists. An instance group has no update (PUT) route, so this specification is fixed for the lifetime of the group. Membership is not part of this spec: instances join the group only at instance-creation time via the instance's targetSpec.group field.","properties":{"location":{"allOf":[{"$ref":"#/components/schemas/publicCloud.common.Location"}],"description":"Target location. Region (and optional availability zone) where the instance group, and therefore its member instances, are placed. Immutable after creation. A group cannot be moved to another region/zone, and its members must be created in this same location."},"name":{"type":"string","description":"Desired display name of the instance group. Immutable after creation, as instance groups cannot be updated."},"policy":{"allOf":[{"$ref":"#/components/schemas/publicCloud.instanceGroup.PolicyEnum"}],"description":"Placement policy applied to the group's member instances (see PolicyEnum): AFFINITY packs members onto the same hypervisor, while ANTI_AFFINITY spreads members across distinct hypervisors. This maps to the underlying OpenStack/Nova server group policy and is immutable after creation."}},"required":["location","name","policy"]},"publicCloud.instanceGroup.PolicyEnum":{"type":"string","description":"Instance group placement policy. Scheduling policy that governs how the members of an instance group are placed relative to one another on the underlying hypervisors. `AFFINITY`: Group members are placed onto the same hypervisor host, keeping them physically close together. `ANTI_AFFINITY`: Group members are forced onto different hypervisor hosts, spreading them apart for higher availability.","enum":["AFFINITY","ANTI_AFFINITY"]},"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}/compute/instanceGroup":{"get":{"operationId":"getInstanceGroups","summary":"List instance groups","description":"### List instance groups\n\nLists all instance groups (placement groups) in the project, each with the same shape as the `GET` route (scheduling `policy` and members).\n\n### Immutable by design\nInstance groups cannot be modified after creation. There is deliberately no `PUT` / update route, and membership is fixed at *instance* creation time via the instance's `targetSpec.group` field. See the `GET` route for details.","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.instanceGroup.InstanceGroup"}}}}}},"tags":["Compute"],"x-developer-hub-navigation":[["Public Cloud","Compute","Instances","Instance Groups@@@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/publicCloud/project/{projectId}/compute/instanceGroup\")\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}/compute/instanceGroup\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:instanceGroup/get","required":true}],"x-response-identifier":"id","x-expanded-response":"PublicCloudInstanceGroupInstanceGroup"},"post":{"operationId":"createInstanceGroup","summary":"Create an instance group","description":"### Create an instance group\n\nCreates a new instance group (placement group). Creation is asynchronous: the group starts in `CREATING` and becomes `READY` once the backend has provisioned it.\n\n### Placement policy\n`targetSpec.policy` chooses how members are scheduled relative to each other:\n* `AFFINITY` — members are placed on the same hypervisor.\n* `ANTI_AFFINITY` — members are placed on different hypervisors (for high availability).\n\n### Immutable, membership set at instance creation\nThe group is immutable once created. There is deliberately no `PUT` / update route, so the `policy` can never be changed. The group is created empty: instances are not added here. An instance joins the group only at its own creation time, via its `targetSpec.group` field (see the instance `POST`), and membership cannot change afterward (OpenStack/Nova server groups are immutable).","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.instanceGroup.InstanceGroupCreation"},"examples":{"Create instance group":{"value":{"targetSpec":{"location":{"region":"GRA1"},"name":"my-anti-affinity-group","policy":"ANTI_AFFINITY"}},"summary":"Create an instance group with anti-affinity policy"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.instanceGroup.InstanceGroup"}}}},"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"}}}}}}},"tags":["Compute"],"x-developer-hub-navigation":[["Public Cloud","Compute","Instances","Instance Groups@@@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.instanceGroup.InstanceGroupCreation\nresult = client.post(\"/v2/publicCloud/project/{projectId}/compute/instanceGroup\",\n\ttargetSpec = None, # Target specification. Desired specification of the instance group to create: its name, location and placement policy (see PolicyEnum). All of these values are fixed for the lifetime of the group, as instance groups cannot be updated once created. (type: publicCloud.instanceGroup.InstanceGroupTargetSpec)\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.instanceGroup.InstanceGroupCreation\n$result = $ovh->post(\"/v2/publicCloud/project/{projectId}/compute/instanceGroup\", array(\n\ttargetSpec => null, // Target specification. Desired specification of the instance group to create: its name, location and placement policy (see PolicyEnum). All of these values are fixed for the lifetime of the group, as instance groups cannot be updated once created. (type: publicCloud.instanceGroup.InstanceGroupTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:instanceGroup/create","required":true}]}},"/publicCloud/project/{projectId}/compute/instanceGroup/{instanceGroupId}":{"delete":{"operationId":"deleteInstanceGroup","summary":"Delete an instance group","description":"### Delete an instance group\n\nDeletes an instance group (placement group). Deletion is asynchronous: the resource transitions to `DELETING` and the backend then removes it.\n\nA group is normally removed once it is empty (has no member instances). Because membership is fixed at *instance* creation time and cannot be edited on an existing group, freeing a group means deleting or recreating its member instances first. Deleting the group tears down only the placement grouping. It does not delete the instances themselves. A delete already in progress is reported as `ResourceAlreadyBeingDeleted`.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"instanceGroupId","description":"Instance group ID","required":true,"schema":{"type":"string","format":"uuid"}},{"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.instanceGroup.InstanceGroup"}}}},"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::InstanceGroupDoesNotExist":{"value":{"class":"Client::NotFound::InstanceGroupDoesNotExist","message":"Instance group 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"}}}}}}},"tags":["Compute"],"x-developer-hub-navigation":[["Public Cloud","Compute","Instances","Instance Groups@@@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/publicCloud/project/{projectId}/compute/instanceGroup/{instanceGroupId}\")\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}/compute/instanceGroup/{instanceGroupId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:instanceGroup/delete","required":true}]},"get":{"operationId":"getInstanceGroup","summary":"Get an instance group","description":"### Get an instance group\n\nReturns a single instance group (placement group), including its scheduling `policy` and its members.\n\n### Immutable by design\nInstance groups are immutable after creation. There is deliberately no `PUT` / update route. Neither the placement `policy` nor the set of members can be changed once the group exists. Membership is fixed at *instance* creation time: an instance joins a group via its `targetSpec.group` field when it is created (see the instance `POST`), and cannot be added to or removed from a group afterward. To change grouping you delete and recreate the affected instances into a different group.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"instanceGroupId","description":"Instance group ID","required":true,"schema":{"type":"string","format":"uuid"}},{"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.instanceGroup.InstanceGroup"}}}},"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::InstanceGroupDoesNotExist":{"value":{"class":"Client::NotFound::InstanceGroupDoesNotExist","message":"Instance group not found"}}}}}}},"tags":["Compute"],"x-developer-hub-navigation":[["Public Cloud","Compute","Instances","Instance Groups@@@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}/compute/instanceGroup/{instanceGroupId}\")\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}/compute/instanceGroup/{instanceGroupId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:instanceGroup/get","required":true}],"x-response-identifier":"id"}}},"tags":[{"name":"Compute","x-tag-expanded":false,"description":"Missing description"}]}
