{"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.loadbalancer.HealthMonitorCurrentState":{"type":"object","description":"Current state of a health monitor from OpenStack","properties":{"delay":{"type":"integer","description":"Time in seconds between sending health check probes to members","readOnly":true},"domainName":{"type":"string","description":"Domain name injected into the HTTP Host header","nullable":true,"readOnly":true},"expectedCodes":{"type":"string","description":"Expected HTTP status codes for HTTP/HTTPS health checks","nullable":true,"readOnly":true},"httpMethod":{"type":"string","description":"HTTP method used for HTTP/HTTPS health checks","nullable":true,"readOnly":true},"httpVersion":{"type":"string","description":"HTTP version for HTTP/HTTPS health checks","nullable":true,"readOnly":true},"id":{"type":"string","description":"Unique identifier of the health monitor","format":"uuid","readOnly":true},"maxRetries":{"type":"integer","description":"Number of consecutive health check failures before marking a member as INACTIVE","readOnly":true},"maxRetriesDown":{"type":"integer","description":"Number of consecutive health check failures before marking a member as ERROR","nullable":true,"readOnly":true},"name":{"type":"string","description":"Human-readable name for the health monitor","nullable":true,"readOnly":true},"operatingStatus":{"type":"string","description":"Operating status of the health monitor","nullable":true,"readOnly":true},"provisioningStatus":{"type":"string","description":"Provisioning status of the health monitor","nullable":true,"readOnly":true},"timeout":{"type":"integer","description":"Maximum time in seconds to wait for a health check reply","readOnly":true},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorTypeEnum"}],"description":"Type of health check probe","readOnly":true},"urlPath":{"type":"string","description":"URI path for HTTP/HTTPS health checks","nullable":true,"readOnly":true}}},"publicCloud.loadbalancer.HealthMonitorHttpMethodEnum":{"type":"string","description":"HTTP method used by the health monitor for HTTP/HTTPS type probes","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"]},"publicCloud.loadbalancer.HealthMonitorTargetSpec":{"type":"object","description":"Desired specification for creating a health monitor on a pool","properties":{"delay":{"type":"integer","description":"Time in seconds between sending health check probes to members"},"domainName":{"type":"string","description":"Domain name injected into the HTTP Host header for HTTP/HTTPS health checks","nullable":true},"expectedCodes":{"type":"string","description":"Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401","nullable":true},"httpMethod":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorHttpMethodEnum"}],"description":"HTTP method used for HTTP/HTTPS health checks","nullable":true},"httpVersion":{"type":"string","description":"HTTP version for HTTP/HTTPS health checks (1.0 or 1.1)","nullable":true},"maxRetries":{"type":"integer","description":"Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10."},"maxRetriesDown":{"type":"integer","description":"Number of consecutive health check failures before marking a member as ERROR. From 1 to 10.","nullable":true},"name":{"type":"string","description":"Human-readable name for the health monitor","nullable":true},"timeout":{"type":"integer","description":"Maximum time in seconds to wait for a health check reply (must be less than or equal to delay)"},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorTypeEnum"}],"description":"Type of health check probe. Immutable after creation."},"urlPath":{"type":"string","description":"URI path for HTTP/HTTPS health checks (must start with /)","nullable":true}},"required":["delay","maxRetries","timeout","type"]},"publicCloud.loadbalancer.HealthMonitorTypeEnum":{"type":"string","description":"Type of health monitor probe","enum":["HTTP","HTTPS","PING","SCTP","TCP","TLS_HELLO","UDP_CONNECT"]},"publicCloud.loadbalancer.HealthMonitorUpdateTargetSpec":{"type":"object","description":"Desired specification for the health monitor of a load balancer pool on update. It is the complete desired configuration of the monitor: every field below is replaced by what the request carries, and an optional field left out is cleared rather than carried over from the stored configuration.","properties":{"delay":{"type":"integer","description":"Time in seconds between sending health check probes to members"},"domainName":{"type":"string","description":"Domain name injected into the HTTP Host header for HTTP/HTTPS health checks","nullable":true},"expectedCodes":{"type":"string","description":"Expected HTTP status codes for HTTP/HTTPS health checks, for example 200, 200-202, 200-202,401","nullable":true},"httpMethod":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorHttpMethodEnum"}],"description":"HTTP method used for HTTP/HTTPS health checks","nullable":true},"httpVersion":{"type":"string","description":"HTTP version for HTTP/HTTPS health checks (1.0 or 1.1)","nullable":true},"maxRetries":{"type":"integer","description":"Number of consecutive health check failures before marking a member as INACTIVE. From 1 to 10."},"maxRetriesDown":{"type":"integer","description":"Number of consecutive health check failures before marking a member as ERROR. From 1 to 10.","nullable":true},"name":{"type":"string","description":"Human-readable name for the health monitor","nullable":true},"timeout":{"type":"integer","description":"Maximum time in seconds to wait for a health check reply (must be less than or equal to delay)"},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorTypeEnum"}],"description":"Type of health check probe. It is required whenever a health monitor is sent, both when adding one to a pool that has none and when modifying an existing one. The type is immutable once the monitor exists."},"urlPath":{"type":"string","description":"URI path for HTTP/HTTPS health checks (must start with /)","nullable":true}},"required":["delay","maxRetries","timeout","type"]},"publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum":{"type":"string","description":"Operating status of a load balancer","enum":["DEGRADED","DRAINING","ERROR","NO_MONITOR","OFFLINE","ONLINE"]},"publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum":{"type":"string","description":"Provisioning status of a load balancer in OpenStack","enum":["ACTIVE","DELETED","ERROR","PENDING_CREATE","PENDING_DELETE","PENDING_UPDATE"]},"publicCloud.loadbalancer.LoadbalancerSubnetRef":{"type":"object","description":"Reference to a subnet","properties":{"id":{"type":"string","description":"Identifier of the subnet","format":"uuid"}},"required":["id"]},"publicCloud.loadbalancer.Member":{"type":"object","description":"A Public Cloud load balancer pool member","properties":{"checksum":{"type":"string","description":"Computed hash representing the current target specification value","readOnly":true},"createdAt":{"type":"string","description":"Creation date of the member","format":"date-time","readOnly":true},"currentState":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberCurrentState"}],"description":"Current state of the member","nullable":true,"readOnly":true},"currentTasks":{"type":"array","description":"Ongoing asynchronous tasks related to the member","nullable":true,"items":{"$ref":"#/components/schemas/common.CurrentTask"},"readOnly":true},"id":{"type":"string","description":"Unique identifier of the member","format":"uuid","readOnly":true},"resourceStatus":{"allOf":[{"$ref":"#/components/schemas/common.ResourceStatusEnum"}],"description":"Member readiness in the system","readOnly":true},"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberTargetSpec"}],"description":"Last target specification of the member","readOnly":true},"updatedAt":{"type":"string","description":"Last update date of the member","format":"date-time","readOnly":true}}},"publicCloud.loadbalancer.MemberCreation":{"type":"object","description":"Payload to create a Public Cloud load balancer pool member","properties":{"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberTargetSpec"}],"description":"Desired target specification for the member to create"}},"required":["targetSpec"]},"publicCloud.loadbalancer.MemberCurrentState":{"type":"object","description":"Current state of a load balancer pool member from OpenStack","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/ip"}],"description":"IP address of the member backend server","readOnly":true},"backup":{"type":"boolean","description":"Whether this is a backup member","nullable":true,"readOnly":true},"monitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberMonitor"}],"description":"Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring.","nullable":true,"readOnly":true},"name":{"type":"string","description":"Member name. Null when the member has no name, because none was given at creation or the last update left it out.","nullable":true,"readOnly":true},"operatingStatus":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum"}],"description":"Whether this member is currently receiving traffic, as observed on the platform. A member that fails its health check stops being sent requests.","readOnly":true},"protocolPort":{"type":"integer","description":"Port the member backend server listens on","readOnly":true},"provisioningStatus":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum"}],"description":"Provisioning status in OpenStack","readOnly":true},"subnet":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerSubnetRef"}],"description":"Subnet reference for the member","nullable":true,"readOnly":true},"weight":{"type":"integer","description":"Weight for load balancing","readOnly":true}}},"publicCloud.loadbalancer.MemberMonitor":{"type":"object","description":"Alternate address and port for health monitoring of a pool member","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/ip"}],"description":"Alternate IP address for health monitoring","nullable":true},"port":{"type":"integer","description":"Alternate port for health monitoring","nullable":true}}},"publicCloud.loadbalancer.MemberTargetSpec":{"type":"object","description":"Desired specification for creating a load balancer pool member","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/ip"}],"description":"IP address of the member backend server"},"backup":{"type":"boolean","description":"Whether this is a backup member","nullable":true},"monitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberMonitor"}],"description":"Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring.","nullable":true},"name":{"type":"string","description":"Member name","nullable":true},"protocolPort":{"type":"integer","description":"Port the member backend server listens on"},"subnet":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerSubnetRef"}],"description":"Subnet reference for the member","nullable":true},"weight":{"type":"integer","description":"Weight for load balancing. From 1 to 256.","nullable":true}},"required":["address","protocolPort"]},"publicCloud.loadbalancer.MemberUpdate":{"type":"object","description":"Payload to update a Public Cloud load balancer pool member","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.loadbalancer.MemberUpdateTargetSpec"}],"description":"Desired target specification for the member"}},"required":["targetSpec"]},"publicCloud.loadbalancer.MemberUpdateTargetSpec":{"type":"object","description":"Desired specification for updating a load balancer pool member. This body is the complete desired specification: every field below is replaced by what the request carries, and a field left out is cleared rather than carried over from the stored specification, so read the member first and restate every value you want to keep. The create-only fields address, protocolPort and subnet cannot be changed once the member exists. They are deliberately absent from this model and sending one is rejected as an unknown field.","properties":{"backup":{"type":"boolean","description":"Whether this is a backup member","nullable":true},"monitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberMonitor"}],"description":"Alternate address and port for health monitoring. When omitted, the member address and protocol port will be used for health monitoring.","nullable":true},"name":{"type":"string","description":"Member name","nullable":true},"weight":{"type":"integer","description":"Weight for load balancing. From 1 to 256.","nullable":true}}},"publicCloud.loadbalancer.Pool":{"type":"object","description":"A Public Cloud load balancer pool","properties":{"checksum":{"type":"string","description":"Computed hash representing the current target specification value","readOnly":true},"createdAt":{"type":"string","description":"Creation date of the pool","format":"date-time","readOnly":true},"currentState":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolCurrentState"}],"description":"Current state of the pool","nullable":true,"readOnly":true},"currentTasks":{"type":"array","description":"Ongoing asynchronous tasks related to the pool","nullable":true,"items":{"$ref":"#/components/schemas/common.CurrentTask"},"readOnly":true},"id":{"type":"string","description":"Unique identifier of the pool","format":"uuid","readOnly":true},"resourceStatus":{"allOf":[{"$ref":"#/components/schemas/common.ResourceStatusEnum"}],"description":"Pool readiness in the system","readOnly":true},"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolTargetSpec"}],"description":"Last target specification of the pool","readOnly":true},"updatedAt":{"type":"string","description":"Last update date of the pool","format":"date-time","readOnly":true}}},"publicCloud.loadbalancer.PoolAlgorithmEnum":{"type":"string","description":"Load balancing algorithm for a pool. SOURCE_IP_PORT is not offered: it is implemented by the OVN provider of Octavia only, which is not enabled on OVHcloud Public Cloud.","enum":["LEAST_CONNECTIONS","ROUND_ROBIN","SOURCE_IP"]},"publicCloud.loadbalancer.PoolCreation":{"type":"object","description":"Payload to create a Public Cloud load balancer pool","properties":{"targetSpec":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolTargetSpec"}],"description":"Desired target specification for the pool to create"}},"required":["targetSpec"]},"publicCloud.loadbalancer.PoolCurrentState":{"type":"object","description":"Current state of a load balancer pool from OpenStack","properties":{"algorithm":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolAlgorithmEnum"}],"description":"Load balancing algorithm","readOnly":true},"description":{"type":"string","description":"Pool description","nullable":true,"readOnly":true},"healthMonitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorCurrentState"}],"description":"Health monitor associated with this pool","nullable":true,"readOnly":true},"name":{"type":"string","description":"Pool name","nullable":true,"readOnly":true},"operatingStatus":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerOperatingStatusEnum"}],"description":"Whether the pool is currently able to serve traffic, as observed on the platform. It turns degraded when only some of its members pass their health checks.","readOnly":true},"persistence":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.SessionPersistence"}],"description":"Session persistence configuration","nullable":true,"readOnly":true},"protocol":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolProtocolEnum"}],"description":"Protocol of the pool","readOnly":true},"provisioningStatus":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.LoadbalancerProvisioningStatusEnum"}],"description":"Provisioning status in OpenStack","readOnly":true}}},"publicCloud.loadbalancer.PoolProtocolEnum":{"type":"string","description":"Protocol of a load balancer pool","enum":["HTTP","HTTPS","PROXY","PROXYV2","SCTP","TCP","UDP"]},"publicCloud.loadbalancer.PoolTargetSpec":{"type":"object","description":"Desired specification for creating a load balancer pool","properties":{"algorithm":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolAlgorithmEnum"}],"description":"Load balancing algorithm"},"description":{"type":"string","description":"Pool description","nullable":true},"healthMonitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorTargetSpec"}],"description":"Health monitor configuration for this pool","nullable":true},"name":{"type":"string","description":"Pool name","nullable":true},"persistence":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.SessionPersistence"}],"description":"Session persistence configuration","nullable":true},"protocol":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolProtocolEnum"}],"description":"Protocol of the pool"}},"required":["algorithm","protocol"]},"publicCloud.loadbalancer.PoolUpdate":{"type":"object","description":"Payload to update a Public Cloud load balancer pool","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.loadbalancer.PoolUpdateTargetSpec"}],"description":"Desired target specification for the pool"}},"required":["targetSpec"]},"publicCloud.loadbalancer.PoolUpdateTargetSpec":{"type":"object","description":"Desired specification for updating a load balancer pool. This body is the complete desired specification: every field below is replaced by what the request carries, and a field left out is cleared rather than carried over from the stored specification, so read the pool first and restate every value you want to keep. The create-only field protocol cannot be changed once the pool exists. It is deliberately absent from this model and sending it is rejected as an unknown field.","properties":{"algorithm":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolAlgorithmEnum"}],"description":"Load balancing algorithm"},"description":{"type":"string","description":"Pool description","nullable":true},"healthMonitor":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.HealthMonitorUpdateTargetSpec"}],"description":"Health monitor configuration for this pool. Clearing it deletes the pool's health monitor.","nullable":true},"name":{"type":"string","description":"Pool name","nullable":true},"persistence":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.SessionPersistence"}],"description":"Session persistence configuration. Clearing it disables session persistence.","nullable":true}},"required":["algorithm"]},"publicCloud.loadbalancer.SessionPersistence":{"type":"object","description":"Session persistence configuration for a load balancer pool","properties":{"cookieName":{"type":"string","description":"Name of the cookie for HTTP_COOKIE or APP_COOKIE persistence types","nullable":true},"type":{"allOf":[{"$ref":"#/components/schemas/publicCloud.loadbalancer.SessionPersistenceTypeEnum"}],"description":"Type of session persistence"}},"required":["type"]},"publicCloud.loadbalancer.SessionPersistenceTypeEnum":{"type":"string","description":"Type of session persistence for a load balancer pool","enum":["APP_COOKIE","HTTP_COOKIE","SOURCE_IP"]},"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}/loadbalancer/{loadbalancerId}/pool":{"get":{"operationId":"getLoadBalancerPools","summary":"List pools","description":"Returns the pools of the load balancer.\n\n### Filters\nThe optional `name`, `protocol` and `algorithm` query parameters narrow the list. Each one can be repeated (for example `?protocol=HTTP&protocol=TCP`): repeated values of the same parameter are combined with OR, and different parameters are combined with AND. An unknown `protocol` or `algorithm` value is rejected with a `400 InvalidParameter`. The `resourceStatus` is computed from the live state of each resource, so it is not a filter: a `status` query parameter is rejected with a `400 InvalidParameter`.","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":"query","name":"algorithm","description":"Filter by pool load balancing algorithm. Repeatable.","schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolAlgorithmEnum"}}},{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"query","name":"name","description":"Filter by pool name (case-insensitive substring match). Repeatable.","schema":{"type":"array","items":{"type":"string"}}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}},{"in":"query","name":"protocol","description":"Filter by pool protocol. Repeatable.","schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolProtocolEnum"}}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Pool"}}}}},"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"}}}}}}},"tags":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@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}/loadbalancer/{loadbalancerId}/pool\")\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}/loadbalancer/{loadbalancerId}/pool\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/get","required":true}],"x-response-identifier":"id","x-expanded-response":"PublicCloudLoadbalancerPool"},"post":{"operationId":"createLoadBalancerPool","summary":"Create a pool","description":"Creates a pool with a load-balancing algorithm and protocol, optionally with a health monitor and session persistence.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolCreation"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Pool"}}}},"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::ServiceNotAvailableInRegion":{"value":{"class":"Client::BadRequest::ServiceNotAvailableInRegion","message":"This service is not available in the selected region"}}}}}},"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":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@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.loadbalancer.PoolCreation\nresult = client.post(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool\",\n\ttargetSpec = None, # Desired target specification for the pool to create (type: publicCloud.loadbalancer.PoolTargetSpec)\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.loadbalancer.PoolCreation\n$result = $ovh->post(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool\", array(\n\ttargetSpec => null, // Desired target specification for the pool to create (type: publicCloud.loadbalancer.PoolTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/create","required":true}]}},"/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}":{"delete":{"operationId":"deleteLoadBalancerPool","summary":"Delete a pool","description":"Deletes the pool.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool 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.loadbalancer.Pool"}}}},"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::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool 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":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@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}/loadbalancer/{loadbalancerId}/pool/{poolId}\")\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}/loadbalancer/{loadbalancerId}/pool/{poolId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/delete","required":true}]},"get":{"operationId":"getLoadBalancerPool","summary":"Get a pool","description":"Returns the pool, including its load-balancing algorithm and health monitor.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool 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.loadbalancer.Pool"}}}},"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::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool not found"}}}}}}},"tags":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@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}/loadbalancer/{loadbalancerId}/pool/{poolId}\")\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}/loadbalancer/{loadbalancerId}/pool/{poolId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editLoadBalancerPool","summary":"Update a pool","description":"Replaces the pool's target specification as a whole. The body carries the complete desired state of every field `publicCloud.loadbalancer.PoolUpdateTargetSpec` exposes — `algorithm`, `description`, `healthMonitor`, `name` and `persistence` — so read the pool first and restate every value you want to keep: a field left out of `targetSpec` is cleared, not carried over from the stored specification. Leaving `healthMonitor` out deletes the pool's health monitor, and leaving `persistence` out disables session persistence.\n\nThe create-only field `protocol` cannot be changed once the pool exists. It is deliberately absent from the update model, and sending it is rejected with a 400.\n\n`algorithm` is required. When a `healthMonitor` is sent, it is itself a complete specification: `type`, `delay`, `timeout` and `maxRetries` are all required — mirroring the create route — and every optional monitor field left out is cleared. The monitor `type` is immutable once the monitor exists, so restate the current type.\n\nThe optional `checksum` guards against a lost update: when supplied it must match the pool's current checksum or the request is rejected with a 409 checksum mismatch. Omitting it skips the check and forces the write (last-write-wins).","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.PoolUpdate"},"examples":{"Update load balancer pool":{"value":{"checksum":"pool123abc456","targetSpec":{"algorithm":"LEAST_CONNECTIONS","description":"HTTP backend pool","healthMonitor":{"delay":5,"expectedCodes":"200","httpMethod":"GET","httpVersion":"1.1","maxRetries":3,"name":"my-http-monitor","timeout":3,"type":"HTTP","urlPath":"/healthz"},"name":"my-pool-renamed","persistence":null}},"summary":"Rename the pool and switch its algorithm. The body is the complete target spec: the health monitor is restated in full, including its immutable type, so that it is not deleted"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Pool"}}}},"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::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool 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":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@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\n# Request body type: publicCloud.loadbalancer.PoolUpdate\nresult = client.put(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}\",\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 pool (type: publicCloud.loadbalancer.PoolUpdateTargetSpec)\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.loadbalancer.PoolUpdate\n$result = $ovh->put(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}\", 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 pool (type: publicCloud.loadbalancer.PoolUpdateTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/edit","required":true}]}},"/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member":{"get":{"operationId":"getLoadBalancerPoolMembers","summary":"List pool members","description":"Returns the members of the pool.\n\n### Filters\nThe optional `name` and `address` query parameters narrow the list. Each one can be repeated (for example `?name=web&name=api`): repeated values of the same parameter are combined with OR, and different parameters are combined with AND. An invalid `address` is rejected with a `400 InvalidParameter`. The `resourceStatus` is computed from the live state of each resource, so it is not a filter: a `status` query parameter is rejected with a `400 InvalidParameter`.","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":"query","name":"address","description":"Filter by member IP address (exact match). Repeatable.","schema":{"type":"array","items":{"$ref":"#/components/schemas/ip"}}},{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"query","name":"name","description":"Filter by member name (case-insensitive substring match). Repeatable.","schema":{"type":"array","items":{"type":"string"}}},{"in":"path","name":"poolId","description":"Pool 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":{"type":"array","items":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Member"}}}}},"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"}}}}}}},"tags":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@60"]],"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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member\")\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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/member/get","required":true}],"x-response-identifier":"id","x-expanded-response":"PublicCloudLoadbalancerMember"},"post":{"operationId":"createLoadBalancerPoolMember","summary":"Create a pool member","description":"Adds a backend server to the pool at a given address and port, with an optional weight and health-check override.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberCreation"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Member"}}}},"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::ServiceNotAvailableInRegion":{"value":{"class":"Client::BadRequest::ServiceNotAvailableInRegion","message":"This service is not available in the selected region"}}}}}},"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::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool 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::RegionInMaintenance":{"value":{"class":"Client::Conflict::RegionInMaintenance","message":"This region is currently in maintenance"}}}}}}},"tags":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@80"]],"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.loadbalancer.MemberCreation\nresult = client.post(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member\",\n\ttargetSpec = None, # Desired target specification for the member to create (type: publicCloud.loadbalancer.MemberTargetSpec)\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.loadbalancer.MemberCreation\n$result = $ovh->post(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member\", array(\n\ttargetSpec => null, // Desired target specification for the member to create (type: publicCloud.loadbalancer.MemberTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/member/create","required":true}]}},"/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}":{"delete":{"operationId":"deleteLoadBalancerPoolMember","summary":"Delete a pool member","description":"Deletes the pool member.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"memberId","description":"Member ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool 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.loadbalancer.Member"}}}},"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::MemberDoesNotExist":{"value":{"class":"Client::NotFound::MemberDoesNotExist","message":"Member not found"}},"Client::NotFound::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool 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":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@90"]],"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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\")\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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/member/delete","required":true}]},"get":{"operationId":"getLoadBalancerPoolMember","summary":"Get a pool member","description":"Returns the pool member, including its address, port and weight.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"memberId","description":"Member ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool 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.loadbalancer.Member"}}}},"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::MemberDoesNotExist":{"value":{"class":"Client::NotFound::MemberDoesNotExist","message":"Member not found"}},"Client::NotFound::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool not found"}}}}}}},"tags":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@70"]],"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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\")\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}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/member/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editLoadBalancerPoolMember","summary":"Update a pool member","description":"Replaces the member's target specification as a whole. The body carries the complete desired state of every field `publicCloud.loadbalancer.MemberUpdateTargetSpec` exposes — `backup`, `monitor`, `name` and `weight` — so read the member first and restate every value you want to keep: a field left out of `targetSpec` is cleared, not carried over from the stored specification.\n\n`monitor` is replaced as a whole, and so are the fields inside it. Leaving `monitor` out clears the health-monitoring override, and health monitoring falls back to the member's own address and protocol port. Sending a `monitor` that omits `address` or `port` clears just that one, and the member's own value is used for it.\n\nThe create-only fields `address`, `protocolPort` and `subnet` cannot be changed once the member exists. They are deliberately absent from the update model, and sending one is rejected with a 400.\n\nThe optional `checksum` guards against a lost update: when supplied it must match the member's current checksum or the request is rejected with a 409 checksum mismatch. Omitting it skips the check and forces the write (last-write-wins).","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"loadbalancerId","description":"Loadbalancer ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"memberId","description":"Member ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"poolId","description":"Pool ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"projectId","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.MemberUpdate"},"examples":{"Update load balancer pool member":{"value":{"checksum":"member123abc456","targetSpec":{"backup":false,"monitor":null,"name":"my-member-renamed","weight":5}},"summary":"Rename the member and change its weight. The body is the complete target spec: backup is restated so it is not cleared, and monitor is sent as null, which is the same as leaving it out and means health monitoring uses the member address and protocol port"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/publicCloud.loadbalancer.Member"}}}},"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::MemberDoesNotExist":{"value":{"class":"Client::NotFound::MemberDoesNotExist","message":"Member not found"}},"Client::NotFound::PoolDoesNotExist":{"value":{"class":"Client::NotFound::PoolDoesNotExist","message":"Pool 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":["Loadbalancer"],"x-developer-hub-navigation":[["Public Cloud","Network","Load Balancer","Pools@@@100"]],"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.loadbalancer.MemberUpdate\nresult = client.put(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\",\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 member (type: publicCloud.loadbalancer.MemberUpdateTargetSpec)\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.loadbalancer.MemberUpdate\n$result = $ovh->put(\"/v2/publicCloud/project/{projectId}/loadbalancer/{loadbalancerId}/pool/{poolId}/member/{memberId}\", 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 member (type: publicCloud.loadbalancer.MemberUpdateTargetSpec)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"publicCloudProject:apiovh:loadbalancer/pool/member/edit","required":true}]}}},"tags":[{"name":"Loadbalancer","x-tag-expanded":false,"description":"Missing description"}]}
