{"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.Task":{"type":"object","description":"Asynchronous operation","properties":{"createdAt":{"type":"string","description":"Creation date of the task","format":"date-time","readOnly":true},"errors":{"type":"array","description":"Errors that occurred on the task","nullable":true,"items":{"$ref":"#/components/schemas/common.TaskError"},"readOnly":true},"finishedAt":{"type":"string","description":"Ending date of the task","nullable":true,"format":"date-time","readOnly":true},"id":{"type":"string","description":"Unique identifier of the task","format":"uuid","readOnly":true},"link":{"type":"string","description":"Link to the related resource","readOnly":true},"message":{"type":"string","description":"Description of the task","readOnly":true},"progress":{"type":"array","description":"Progress steps of the asynchronous operation","items":{"$ref":"#/components/schemas/common.TaskProgress"},"readOnly":true},"startedAt":{"type":"string","description":"Starting date of the task","nullable":true,"format":"date-time","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/common.TaskStatusEnum"}],"description":"Current global status of the task","readOnly":true},"type":{"type":"string","description":"Type of the task","readOnly":true},"updatedAt":{"type":"string","description":"Last update of the task","format":"date-time","readOnly":true}}},"common.TaskError":{"type":"object","description":"Errors that occurred on the task","properties":{"message":{"type":"string","description":"Error description","readOnly":true}}},"common.TaskProgress":{"type":"object","description":"Detailed information about an asynchronous operation progress steps","properties":{"name":{"type":"string","description":"Progress step name","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/common.TaskStatusEnum"}],"description":"Current status of the progress step","readOnly":true}}},"common.TaskStatusEnum":{"type":"string","description":"Current status of a task","enum":["DONE","ERROR","PENDING","RUNNING","SCHEDULED","WAITING_USER_INPUT"]},"common.TaskWithInputs_notification.contactMean.TaskInputs":{"type":"object","description":"Asynchronous operation","properties":{"createdAt":{"type":"string","description":"Creation date of the task","format":"date-time","readOnly":true},"errors":{"type":"array","description":"Errors that occurred on the task","nullable":true,"items":{"$ref":"#/components/schemas/common.TaskError"},"readOnly":true},"finishedAt":{"type":"string","description":"Ending date of the task","nullable":true,"format":"date-time","readOnly":true},"id":{"type":"string","description":"Unique identifier of the task","format":"uuid","readOnly":true},"inputs":{"$ref":"#/components/schemas/notification.contactMean.TaskInputs"},"link":{"type":"string","description":"Link to the related resource","readOnly":true},"message":{"type":"string","description":"Description of the task","readOnly":true},"progress":{"type":"array","description":"Progress steps of the asynchronous operation","items":{"$ref":"#/components/schemas/common.TaskProgress"},"readOnly":true},"startedAt":{"type":"string","description":"Starting date of the task","nullable":true,"format":"date-time","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/common.TaskStatusEnum"}],"description":"Current global status of the task","readOnly":true},"type":{"type":"string","description":"Type of the task","readOnly":true},"updatedAt":{"type":"string","description":"Last update of the task","format":"date-time","readOnly":true}},"required":["inputs"]},"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"},"notification.SortOrderEnum":{"type":"string","description":"Choose how to order some results","enum":["ASC","DESC"]},"notification.contactMean.ContactMean":{"type":"object","description":"A contact mean","properties":{"createdAt":{"type":"string","description":"Date at which the contact mean was created","format":"date-time","readOnly":true},"currentTasks":{"type":"array","description":"Task to do on this contact mean","items":{"$ref":"#/components/schemas/common.CurrentTask"},"readOnly":true},"default":{"type":"boolean","description":"Is this the default contact mean","readOnly":true},"description":{"type":"string","description":"Arbitrary description for this contact mean","nullable":true},"email":{"type":"string","description":"When type is EMAIL, the email address this contact mean uses","nullable":true,"readOnly":true},"error":{"type":"string","description":"When status is ERROR, details about the error","nullable":true,"readOnly":true},"id":{"type":"string","description":"Unique identifier of the contact mean","format":"uuid","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.StatusEnum"}],"description":"Status of the contact mean"},"type":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.TypeEnum"}],"description":"Type of the contact mean","readOnly":true}}},"notification.contactMean.ContactMeanTypeEnum":{"type":"string","description":"Type of a contact mean","enum":["EMAIL"]},"notification.contactMean.PostInput":{"type":"object","description":"Payload to create a new contact mean","properties":{"description":{"type":"string","description":"Arbitrary description for this contact mean","nullable":true},"email":{"type":"string","description":"When type is EMAIL, the email address that will be used"},"type":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.TypeEnum"}],"description":"Type of the contact mean to create"}},"required":["type"]},"notification.contactMean.StatusEnum":{"type":"string","description":"Status of a contact mean","enum":["DISABLED","ERROR","TO_VALIDATE","VALID"]},"notification.contactMean.TaskInputs":{"type":"object","description":"Contact mean task input","properties":{"otp":{"type":"string","description":"The OTP received by your contact mean to validate it"},"resendOTP":{"type":"string","description":"Specify a new date in order to request a new OTP (for terraform compatibility)","format":"date-time"}}},"notification.contactMean.TypeEnum":{"type":"string","description":"Type of a contact mean","enum":["EMAIL"]},"notification.contactMean.ValidateInput":{"type":"object","description":"Payload to validate the contact mean","properties":{"otp":{"type":"string","description":"The OTP received by your contact mean to validate it"}},"required":["otp"]},"notification.history.Attachment":{"type":"object","description":"Attachment linked to a notification (full version)","properties":{"contentType":{"type":"string","description":"Content type of the attachment","readOnly":true},"name":{"type":"string","description":"Name of the attachment","readOnly":true},"sizeBytes":{"type":"integer","description":"Size of the attachment in bytes","readOnly":true},"url":{"type":"string","description":"URL to use to download the attachment","nullable":true,"readOnly":true}}},"notification.history.Contact":{"type":"object","description":"Contact attempt made for a notification","properties":{"error":{"type":"string","description":"Error encountered when attempting this contact","nullable":true,"readOnly":true},"id":{"type":"string","description":"Unique identifier of the contact","format":"uuid","readOnly":true},"sentAt":{"type":"string","description":"Date at which this contact happened","nullable":true,"format":"date-time","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/notification.history.ContactStatusEnum"}],"description":"Status of the contact","readOnly":true},"to":{"type":"string","description":"Destination of this contact attempt","readOnly":true},"type":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.ContactMeanTypeEnum"}],"description":"Type of the contact mean used","readOnly":true}}},"notification.history.ContactStatusEnum":{"type":"string","description":"Status of a notification contact attempt","enum":["BOUNCED","DELIVERED","DROPPED","QUEUED","SENT"]},"notification.history.Notification":{"type":"object","description":"Notification sent to this account","properties":{"attachments":{"type":"array","description":"Attachments linked to this notification","items":{"$ref":"#/components/schemas/notification.history.Attachment"},"readOnly":true},"categories":{"type":"array","description":"Categories of the notification","items":{"type":"string"},"readOnly":true},"contacts":{"type":"array","description":"Contact attempts made for this notification","items":{"$ref":"#/components/schemas/notification.history.Contact"},"readOnly":true},"createdAt":{"type":"string","description":"Date at which the notification was sent","format":"date-time","readOnly":true},"html":{"type":"string","description":"HTML text of the notification","nullable":true,"readOnly":true},"id":{"type":"string","description":"Unique identifier of the notification","format":"uuid","readOnly":true},"priority":{"allOf":[{"$ref":"#/components/schemas/notification.history.NotificationPriorityEnum"}],"description":"Priority of the notification","readOnly":true},"summary":{"type":"string","description":"Summary of the notification","nullable":true,"readOnly":true},"tags":{"type":"object","description":"Tags of the notification","nullable":true,"additionalProperties":{"type":"string"},"readOnly":true},"text":{"type":"string","description":"Raw text of the notification","nullable":true,"readOnly":true},"title":{"type":"string","description":"Title of the notification","readOnly":true}}},"notification.history.NotificationPriorityEnum":{"type":"string","description":"Priority of a notification","enum":["HIGH","LOW","MEDIUM"]},"notification.history.TagFilter":{"type":"object","description":"Notification tag filter","properties":{"operator":{"allOf":[{"$ref":"#/components/schemas/notification.history.TagFilter.OperatorEnum"}],"description":"Operator to use in order to filter on the value. Defaults to `EQ`.","nullable":true,"readOnly":true},"value":{"type":"string","description":"Value to use in order to filter tags","readOnly":true}}},"notification.history.TagFilter.OperatorEnum":{"type":"string","description":"Operator that can be used in order to filter resources tags","enum":["EQ","EXISTS","ILIKE","LIKE","NEQ","NEXISTS"]},"notification.reference.Reference":{"type":"object","description":"Reference data for /notification","properties":{"categories":{"type":"array","description":"Available notification categories","items":{"$ref":"#/components/schemas/notification.reference.ReferenceCategory"},"readOnly":true},"priorities":{"type":"array","description":"Available notification priorities","items":{"$ref":"#/components/schemas/notification.reference.ReferencePriority"},"readOnly":true}}},"notification.reference.ReferenceCategory":{"type":"object","description":"Category of a notification","properties":{"description":{"type":"string","description":"Category description","readOnly":true},"name":{"type":"string","description":"Category name","readOnly":true}}},"notification.reference.ReferencePriority":{"type":"object","description":"Priority of a notification","properties":{"description":{"type":"string","description":"Priority description","readOnly":true},"name":{"allOf":[{"$ref":"#/components/schemas/notification.history.NotificationPriorityEnum"}],"description":"Priority name","readOnly":true}}},"notification.routing.PostInput":{"type":"object","description":"A routing","properties":{"active":{"type":"boolean","description":"Whether this routing is currently active"},"name":{"type":"string","description":"Name of the routing"},"rules":{"type":"array","description":"Type of the contact mean","items":{"$ref":"#/components/schemas/notification.routing.Rule"}}},"required":["active","name","rules"]},"notification.routing.Routing":{"type":"object","description":"A routing","properties":{"active":{"type":"boolean","description":"Whether this routing is currently active"},"createdAt":{"type":"string","description":"Date at which the routing was created","format":"date-time","readOnly":true},"id":{"type":"string","description":"Unique identifier of the routing","format":"uuid","readOnly":true},"name":{"type":"string","description":"Name of the routing"},"rules":{"type":"array","description":"Type of the contact mean","items":{"$ref":"#/components/schemas/notification.routing.Rule"}}}},"notification.routing.Rule":{"type":"object","description":"A routing","properties":{"condition":{"allOf":[{"$ref":"#/components/schemas/notification.routing.RuleCondition"}],"description":"Condition for the route to match"},"contactMeans":{"type":"array","description":"Contact means to route the nofitications to","items":{"$ref":"#/components/schemas/notification.routing.RuleContactMean"}},"continue":{"type":"boolean","description":"Wheter the processing stops at this rule, if it matches"}},"required":["condition","contactMeans","continue"]},"notification.routing.RuleCondition":{"type":"object","description":"A routing","properties":{"category":{"type":"array","description":"Notification categories, the rule will be valid if one of the categories matches, if not empty","items":{"type":"string"}},"priority":{"type":"array","description":"Notification priorities, the rule will be valid if one of the priorities matches, if not empty","items":{"type":"string"}}}},"notification.routing.RuleContactMean":{"type":"object","description":"A routing","properties":{"email":{"type":"string","description":"When type is EMAIL, the email address this contact mean uses","readOnly":true},"error":{"type":"string","description":"When status is ERROR, details about the error","nullable":true,"readOnly":true},"id":{"type":"string","description":"Identifier of the contact mean","format":"uuid"},"status":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.StatusEnum"}],"description":"Status of the contact mean","readOnly":true},"type":{"allOf":[{"$ref":"#/components/schemas/notification.contactMean.TypeEnum"}],"description":"Type of the contact mean","readOnly":true}},"required":["id"]},"phoneNumber":{"type":"string","description":"Phone number","format":"phone-number"},"time":{"type":"string","description":"Time (e.g., 15:04:05)","format":"time","example":"15:04:05"}},"securitySchemes":{"oAuth2AuthCode":{"type":"oauth2","description":"Oauth2","x-client-id":"1bb9c7df371741c0","x-client-secret":"a5b4de870aca620d10fbf63cd18d205b","flows":{"authorizationCode":{"authorizationUrl":"https://auth.eu.ovhcloud.com/oauth2/authorize","tokenUrl":"https://auth.eu.ovhcloud.com/oauth2/token","scopes":{"account/all":"Manage your account","all":"Manage your whole account and all your services","services/all":"Manage your services lifecycle and billing"}}}}}},"paths":{"/notification/contactMean":{"get":{"operationId":"getAllContactMeans","summary":"Retrieve every contact mean","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"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"}},"examples":{"List the contact means":{"value":[{"createdAt":"2025-02-01T12:00:00+00:00","currentTasks":[{"id":"f106647f-3750-4500-abb9-923386eb9d0b","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/f106647f-3750-4500-abb9-923386eb9d0b","status":"WAITING_USER_INPUT","type":"ContactMeanOTPValidation"}],"default":false,"description":"Email1","email":"email1@example.com","error":null,"id":"2c94ebf4-5818-478d-a4d2-186e96e58412","status":"VALID","type":"EMAIL"},{"createdAt":"2025-02-01T12:00:00+00:00","currentTasks":[],"default":false,"description":"Email2","email":"email2@example.com","error":null,"id":"b202eff2-4885-4133-85c8-6a7f887e2cc8","status":"VALID","type":"EMAIL"},{"createdAt":"2025-03-01T12:00:00+00:00","currentTasks":[],"default":false,"description":"Email3","email":"email3@example.com","error":null,"id":"6c31ab9f-7a5b-490a-95f4-0f99791cd998","status":"DISABLED","type":"EMAIL"}],"summary":"Dump of the contact means"}}}}},"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::CursorParametersConflict":{"value":{"class":"Client::BadRequest::CursorParametersConflict","message":"Provided cursor and received parameters are conflicting"}},"Client::BadRequest::InvalidCursor":{"value":{"class":"Client::BadRequest::InvalidCursor","message":"Provided cursor is invalid"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/contactMean\")\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/notification/contactMean\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/get","required":true}],"x-response-identifier":"id","x-expanded-response":"NotificationContactMeanContactMean"},"post":{"operationId":"createContactMean","summary":"Create a contact mean","security":[{"oAuth2AuthCode":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.PostInput"},"examples":{"Create an email contact mean":{"value":{"description":"The boss' email","email":"boss@example.com","type":"EMAIL"},"summary":"Input needed to create the contact mean"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Created contact mean":{"value":{"createdAt":"2025-04-01T12:00:00+00:00","currentTasks":[],"default":false,"description":"The boss' email","email":"boss@example.com","error":null,"id":"f106647f-3750-4500-abb9-923386eb9d0b","status":"TO_VALIDATE","type":"EMAIL"},"summary":"Created contact mean using the input payload"}}}}},"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::ContactMeanAlreadyExists":{"value":{"class":"Client::BadRequest::ContactMeanAlreadyExists","message":"You already have a contact mean with type {{.type}} and destination {{.destination}}"}},"Client::BadRequest::ContactMeanCreationMissingDestination":{"value":{"class":"Client::BadRequest::ContactMeanCreationMissingDestination","message":"Cannot create a {{.type}} contact mean without filling the {{.missingKey}} key"}},"Client::BadRequest::ContactMeanInvalidDescription":{"value":{"class":"Client::BadRequest::ContactMeanInvalidDescription","message":"The contact mean description is not valid (it cannot be empty)"}},"Client::BadRequest::ContactMeanValidationThresholdReached":{"value":{"class":"Client::BadRequest::ContactMeanValidationThresholdReached","message":"You cannot process another validation yet"}},"Client::BadRequest::InvalidEmailAddress":{"value":{"class":"Client::BadRequest::InvalidEmailAddress","message":"Invalid email address provided"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: notification.contactMean.PostInput\nresult = client.post(\"/v2/notification/contactMean\",\n\tdescription = None, # Arbitrary description for this contact mean (type: string, nullable)\n\temail = None, # When type is EMAIL, the email address that will be used (type: string)\n\ttype = None, # Type of the contact mean to create (type: notification.contactMean.TypeEnum)\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: notification.contactMean.PostInput\n$result = $ovh->post(\"/v2/notification/contactMean\", array(\n\tdescription => null, // Arbitrary description for this contact mean (type: string, nullable)\n\temail => null, // When type is EMAIL, the email address that will be used (type: string)\n\ttype => null, // Type of the contact mean to create (type: notification.contactMean.TypeEnum)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/create","required":true}]}},"/notification/contactMean/{contactMeanId}":{"delete":{"operationId":"deleteContactMean","summary":"Delete the contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation"}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/contactMean/{contactMeanId}\")\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/notification/contactMean/{contactMeanId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/delete","required":true}]},"get":{"operationId":"getContactMean","summary":"Retrieve information about a contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Get a contact mean":{"value":{"createdAt":"2025-01-01T12:00:00+00:00","currentTasks":[{"id":"f106647f-3750-4500-abb9-923386eb9d0b","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/f106647f-3750-4500-abb9-923386eb9d0b","status":"WAITING_USER_INPUT","type":"ContactMeanOTPValidation"}],"default":false,"description":"Email1","email":"email1@example.com","error":null,"id":"2c94ebf4-5818-478d-a4d2-186e96e58412","status":"VALID","type":"EMAIL"},"summary":"Dump of a contact mean"}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/contactMean/{contactMeanId}\")\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/notification/contactMean/{contactMeanId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editContactMean","summary":"Update a contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Update a contact mean status":{"value":{"description":"New description","status":"DISABLED"},"summary":"Input needed to update a contact mean"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Updated contact mean":{"value":{"createdAt":"2025-04-01T12:00:00+00:00","currentTasks":[],"default":false,"description":"The boss' email","email":"boss@example.com","error":null,"id":"f106647f-3750-4500-abb9-923386eb9d0b","status":"DISABLED","type":"EMAIL"},"summary":"Updated contact mean using the input payload"}}}}},"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::ContactMeanDefaultRO":{"value":{"class":"Client::BadRequest::ContactMeanDefaultRO","message":"Cannot alter the default contact mean"}},"Client::BadRequest::ContactMeanInvalidDescription":{"value":{"class":"Client::BadRequest::ContactMeanInvalidDescription","message":"The contact mean description is not valid (it cannot be empty)"}},"Client::BadRequest::ContactMeanStatusChangeForbidden":{"value":{"class":"Client::BadRequest::ContactMeanStatusChangeForbidden","message":"Status change is only possible between VALID and DISABLED"}}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: notification.contactMean.ContactMean\nresult = client.put(\"/v2/notification/contactMean/{contactMeanId}\",\n\tdescription = None, # Arbitrary description for this contact mean (type: string, nullable)\n\tstatus = None, # Status of the contact mean (type: notification.contactMean.StatusEnum)\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: notification.contactMean.ContactMean\n$result = $ovh->put(\"/v2/notification/contactMean/{contactMeanId}\", array(\n\tdescription => null, // Arbitrary description for this contact mean (type: string, nullable)\n\tstatus => null, // Status of the contact mean (type: notification.contactMean.StatusEnum)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/edit","required":true}]}},"/notification/contactMean/{contactMeanId}/restartValidation":{"post":{"operationId":"restartContactMeanValidation","summary":"Restart the validation process for this contact mean, if you did not receive the OTP","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Contact mean after restart":{"value":{"createdAt":"2025-01-01T12:00:00+00:00","currentTasks":[{"id":"f106647f-3750-4500-abb9-923386eb9d0b","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/f106647f-3750-4500-abb9-923386eb9d0b","status":"WAITING_USER_INPUT","type":"ContactMeanOTPValidation"}],"default":false,"description":"Email1","email":"email1@example.com","error":null,"id":"2c94ebf4-5818-478d-a4d2-186e96e58412","status":"TO_VALIDATE","type":"EMAIL"},"summary":"The contact mean after its validation process has been restarted"}}}}},"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::ContactMeanDefaultRO":{"value":{"class":"Client::BadRequest::ContactMeanDefaultRO","message":"Cannot alter the default contact mean"}},"Client::BadRequest::ContactMeanInvalidStatus":{"value":{"class":"Client::BadRequest::ContactMeanInvalidStatus","message":"The contact mean {{.contactMeanID}} has the wrong status for this call (got {{.gotStatus}}, wanted {{.expectedStatus}})"}},"Client::BadRequest::ContactMeanValidationThresholdReached":{"value":{"class":"Client::BadRequest::ContactMeanValidationThresholdReached","message":"You cannot process another validation yet"}},"Client::BadRequest::ContactMeanWaitBetweenValidations":{"value":{"class":"Client::BadRequest::ContactMeanWaitBetweenValidations","message":"You cannot start another validation yet"}}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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.post(\"/v2/notification/contactMean/{contactMeanId}/restartValidation\")\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->post(\"/v2/notification/contactMean/{contactMeanId}/restartValidation\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/restartValidation","required":true}]}},"/notification/contactMean/{contactMeanId}/task":{"get":{"operationId":"getAllContactMeanTasks","summary":"Get the list of tasks on a contact mean","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":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/common.Task"}},"examples":{"List the tasks":{"value":[{"createdAt":"2025-01-01T00:00:00+00:00","errors":[],"finishedAt":"2025-01-03T00:00:00+00:00","id":"019817d6-f40f-74ae-a6c6-2e1b6644c794","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/019817d6-f40f-74ae-a6c6-2e1b6644c794","message":"Validation task for contact mean 019817d6-f40f-74ae-a6c6-2e1b6644c794, awaiting for OTP","progress":[],"startedAt":"2025-01-02T00:00:00+00:00","status":"RUNNING","type":"ContactMeanOTPValidation","updatedAt":"2025-01-03T00:00:00+00:00"}],"summary":"Dump of the tasks"}}}}},"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::InvalidCursor":{"value":{"class":"Client::BadRequest::InvalidCursor","message":"Provided cursor is invalid"}}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/contactMean/{contactMeanId}/task\")\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/notification/contactMean/{contactMeanId}/task\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/task/get","required":true}],"x-response-identifier":"id","x-expanded-response":"CommonTask"}},"/notification/contactMean/{contactMeanId}/task/{taskId}":{"get":{"operationId":"getContactMeanTask","summary":"Get a task on a contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"taskId","description":"Task ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common.Task"},"examples":{"List the tasks":{"value":{"createdAt":"2025-01-01T00:00:00+00:00","errors":[],"finishedAt":"2025-01-03T00:00:00+00:00","id":"019817d6-f40f-74ae-a6c6-2e1b6644c794","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/019817d6-f40f-74ae-a6c6-2e1b6644c794","message":"Validation task for contact mean 019817d6-f40f-74ae-a6c6-2e1b6644c794, awaiting for OTP","progress":[],"startedAt":"2025-01-02T00:00:00+00:00","status":"RUNNING","type":"ContactMeanOTPValidation","updatedAt":"2025-01-03T00:00:00+00:00"},"summary":"Dump of the tasks"}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}},"Client::NotFound::ContactMeanTaskNotFound":{"value":{"class":"Client::NotFound::ContactMeanTaskNotFound","message":"Contact mean task {{.contactMeanTaskID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/contactMean/{contactMeanId}/task/{taskId}\")\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/notification/contactMean/{contactMeanId}/task/{taskId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/task/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editContactMeanTask","summary":"Update a task on a contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"taskId","description":"Task ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/common.TaskWithInputs_notification.contactMean.TaskInputs"},"examples":{"Update a task":{"value":{"inputs":{"otp":"a1b2c3","resendOTP":"2025-01-03T00:00:00+00:00"}},"summary":"Input for this task"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common.Task"},"examples":{"Update a task":{"value":{"createdAt":"2025-01-01T00:00:00+00:00","errors":[],"finishedAt":"2025-01-03T00:00:00+00:00","id":"019817d6-f40f-74ae-a6c6-2e1b6644c794","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/019817d6-f40f-74ae-a6c6-2e1b6644c794","message":"Validation task for contact mean 019817d6-f40f-74ae-a6c6-2e1b6644c794, awaiting for OTP","progress":[],"startedAt":"2025-01-02T00:00:00+00:00","status":"RUNNING","type":"ContactMeanOTPValidation","updatedAt":"2025-01-03T00:00:00+00:00"},"summary":"Dump of the updated task"}}}}},"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::ContactMeanValidationExpired":{"value":{"class":"Client::BadRequest::ContactMeanValidationExpired","message":"Cannot validate contact mean {{.contactMeanID}}: the OTP was correct but is expired"}},"Client::BadRequest::ContactMeanValidationFailed":{"value":{"class":"Client::BadRequest::ContactMeanValidationFailed","message":"Cannot validate contact mean {{.contactMeanID}}: the OTP was incorrect"}},"Client::BadRequest::ContactMeanValidationThresholdReached":{"value":{"class":"Client::BadRequest::ContactMeanValidationThresholdReached","message":"You cannot process another validation yet"}},"Client::BadRequest::ContactMeanWaitBetweenValidations":{"value":{"class":"Client::BadRequest::ContactMeanWaitBetweenValidations","message":"You cannot start another validation yet"}},"Client::BadRequest::InvalidResendOTP":{"value":{"class":"Client::BadRequest::InvalidResendOTP","message":"ResendOTP must be within the next minute, and greater than the value it replaces"}},"Client::BadRequest::MissingInput":{"value":{"class":"Client::BadRequest::MissingInput","message":"Nothing to update in the provided input"}}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}},"Client::NotFound::ContactMeanTaskNotFound":{"value":{"class":"Client::NotFound::ContactMeanTaskNotFound","message":"Contact mean task {{.contactMeanTaskID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: common.TaskWithInputs<notification.contactMean.TaskInputs>\nresult = client.put(\"/v2/notification/contactMean/{contactMeanId}/task/{taskId}\",\n\tdata = None, # (type: common.TaskWithInputs<notification.contactMean.TaskInputs>)\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: common.TaskWithInputs<notification.contactMean.TaskInputs>\n$result = $ovh->put(\"/v2/notification/contactMean/{contactMeanId}/task/{taskId}\", array(\n\tdata => null, // (type: common.TaskWithInputs<notification.contactMean.TaskInputs>)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/task/edit","required":true}]}},"/notification/contactMean/{contactMeanId}/validate":{"post":{"operationId":"validateContactMean","summary":"Validate this contact mean","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"contactMeanId","description":"Contact mean ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ValidateInput"},"examples":{"Payload with an OTP":{"value":{"otp":"the_otp"},"summary":"Paylaod used to validate a contact mean"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.contactMean.ContactMean"},"examples":{"Validated contact mean":{"value":{"createdAt":"2025-01-01T12:00:00+00:00","currentTasks":[{"id":"f106647f-3750-4500-abb9-923386eb9d0b","link":"/v2/notification/contactMean/019817d2-78b6-7ca3-91fc-efe1872cbe2c/tasks/f106647f-3750-4500-abb9-923386eb9d0b","status":"RUNNING","type":"ContactMeanOTPValidation"}],"default":false,"description":"Email1","email":"email1@example.com","error":null,"id":"2c94ebf4-5818-478d-a4d2-186e96e58412","status":"VALID","type":"EMAIL"},"summary":"The contact mean after it has been validated"}}}}},"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::ContactMeanDefaultRO":{"value":{"class":"Client::BadRequest::ContactMeanDefaultRO","message":"Cannot alter the default contact mean"}},"Client::BadRequest::ContactMeanInvalidStatus":{"value":{"class":"Client::BadRequest::ContactMeanInvalidStatus","message":"The contact mean {{.contactMeanID}} has the wrong status for this call (got {{.gotStatus}}, wanted {{.expectedStatus}})"}},"Client::BadRequest::ContactMeanValidationExpired":{"value":{"class":"Client::BadRequest::ContactMeanValidationExpired","message":"Cannot validate contact mean {{.contactMeanID}}: the OTP was correct but is expired"}},"Client::BadRequest::ContactMeanValidationFailed":{"value":{"class":"Client::BadRequest::ContactMeanValidationFailed","message":"Cannot validate contact mean {{.contactMeanID}}: the OTP was incorrect"}}}}}},"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::ContactMeanNotFound":{"value":{"class":"Client::NotFound::ContactMeanNotFound","message":"Contact mean {{.contactMeanID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: notification.contactMean.ValidateInput\nresult = client.post(\"/v2/notification/contactMean/{contactMeanId}/validate\",\n\totp = None, # The OTP received by your contact mean to validate it (type: string)\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: notification.contactMean.ValidateInput\n$result = $ovh->post(\"/v2/notification/contactMean/{contactMeanId}/validate\", array(\n\totp => null, // The OTP received by your contact mean to validate it (type: string)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/contactMean/validate","required":true}]}},"/notification/history":{"get":{"operationId":"getAllSentNotifications","summary":"Retrieve every notification sent to you","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":"category","description":"Select notifications belonging to one of these categories","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"createdAfter","description":"Select notifications created after this date","schema":{"type":"string","format":"date-time"}},{"in":"query","name":"createdBefore","description":"Select notifications created before this date","schema":{"type":"string","format":"date-time"}},{"in":"query","name":"priority","description":"Select notifications matching one of these priorities","schema":{"type":"array","items":{"$ref":"#/components/schemas/notification.history.NotificationPriorityEnum"}}},{"in":"query","name":"sortCreatedAt","description":"Sort by createdAt field. Defaults to DESC.","schema":{"$ref":"#/components/schemas/notification.SortOrderEnum"}},{"in":"query","name":"tags","description":"Filter notifications using tag filters","schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/notification.history.TagFilter"}}}},{"in":"query","name":"titleContains","description":"Select notifications which title contains this text","schema":{"type":"string"}},{"in":"query","name":"withSummary","description":"Add summary field to response","schema":{"type":"boolean"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/notification.history.Notification"}},"examples":{"Get notifications":{"value":[{"attachments":[{"contentType":"text/plain","name":"attachment1","sizeBytes":100},{"contentType":"application/json","name":"attachment2","sizeBytes":200}],"categories":["MAINTENANCE","BILLING"],"contacts":[{"error":null,"id":"610660a7-3a5d-4725-9c20-8a106a383394","sentAt":"2025-01-01T13:00:00+00:00","status":"SENT","to":"test@example.com","type":"EMAIL"},{"error":"Email bounced","id":"01978dd8-0a35-70c0-bf90-b90a6d94e881","sentAt":"2025-01-01T14:00:00+00:00","status":"DROPPED","to":"test2@example.com","type":"EMAIL"}],"createdAt":"2025-01-01T12:00:00+00:00","html":null,"id":"01975e44-9b60-77b4-8af3-58efdcd12e90","priority":"HIGH","text":null,"title":"Title notif1"},{"attachments":[],"categories":["BILLING"],"contacts":[{"error":null,"id":"c3c79123-ed07-4c1b-a4ed-0a420fe05f80","sentAt":"2025-01-02T13:00:00+00:00","status":"SENT","to":"test@example.com","type":"EMAIL"}],"createdAt":"2025-01-02T12:00:00+00:00","html":null,"id":"01975e45-1e53-7b16-b0c3-a82c5cadcbac","priority":"MEDIUM","text":null,"title":"Title notif2"}],"summary":"Notifications that have been sent"}}}}},"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::CursorParametersConflict":{"value":{"class":"Client::BadRequest::CursorParametersConflict","message":"Provided cursor and received parameters are conflicting"}},"Client::BadRequest::InvalidCursor":{"value":{"class":"Client::BadRequest::InvalidCursor","message":"Provided cursor is invalid"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/history\")\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/notification/history\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/history/get","required":true}],"x-response-identifier":"id","x-expanded-response":"NotificationHistoryNotification"}},"/notification/history/{notificationId}":{"get":{"operationId":"getSentNotification","summary":"Retrieve information about a notification sent to you","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"notificationId","description":"Notification ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.history.Notification"},"examples":{"Get a notification":{"value":{"attachments":[{"contentType":"text/plain","name":"attachment1","sizeBytes":100},{"contentType":"application/json","name":"attachment2","sizeBytes":200}],"categories":["MAINTENANCE","BILLING"],"contacts":[{"error":null,"id":"610660a7-3a5d-4725-9c20-8a106a383394","sentAt":"2025-01-01T13:00:00+00:00","status":"SENT","to":"test@example.com","type":"EMAIL"},{"error":"Email bounced","id":"01978dd8-0a35-70c0-bf90-b90a6d94e881","sentAt":"2025-01-01T14:00:00+00:00","status":"DROPPED","to":"test2@example.com","type":"EMAIL"}],"createdAt":"2025-01-01T12:00:00+00:00","html":"\u003chtml\u003eHTML notif1\u003c/html\u003e","id":"01975e44-9b60-77b4-8af3-58efdcd12e90","priority":"HIGH","tags":{"tag1":"value1","tag2":"value2"},"text":"TEXT notif1","title":"Title notif1"},"summary":"A notification that has been sent"}}}}},"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::NotificationNotFound":{"value":{"class":"Client::NotFound::NotificationNotFound","message":"Notification {{.notificationID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/history/{notificationId}\")\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/notification/history/{notificationId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/history/get","required":true}],"x-response-identifier":"id"}},"/notification/history/{notificationId}/attachment/{attachmentName}":{"get":{"operationId":"getSentNotificationAttachment","summary":"Get a notification attachment","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"attachmentName","description":"Attachment name","required":true,"schema":{"type":"string"}},{"in":"path","name":"notificationId","description":"Notification ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.history.Attachment"},"examples":{"Get an attachment of a notification":{"value":{"contentType":"text/plain","name":"attachment1","sizeBytes":100,"url":"https://example.com/url1"},"summary":"Attachment linked to a notification"}}}}},"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::AttachmentNotFound":{"value":{"class":"Client::NotFound::AttachmentNotFound","message":"Notification attachment {{.attachmentName}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/history/{notificationId}/attachment/{attachmentName}\")\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/notification/history/{notificationId}/attachment/{attachmentName}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/history/attachment/get","required":true}],"x-response-identifier":"name"}},"/notification/reference":{"get":{"operationId":"getNotificationReference","summary":"Retrieve data referential for /notification endpoints","security":[{"oAuth2AuthCode":[]}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.reference.Reference"},"examples":{"Fetch the reference":{"value":{"categories":[{"description":"BILLING Category","name":"BILLING"},{"description":"LEGAL Category","name":"LEGAL"}],"priorities":[{"description":"HIGH Priority","name":"HIGH"},{"description":"MEDIUM Priority","name":"MEDIUM"},{"description":"LOW Priority","name":"LOW"}]},"summary":"Response body returned containing the enums used in /notification"}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/reference\")\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/notification/reference\");\n\nprint_r($result);\n?>"}]}},"/notification/routing":{"get":{"operationId":"getAllNotificationRoutings","summary":"Retrieve every routing","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"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/notification.routing.Routing"}},"examples":{"List the routings":{"value":[{"active":true,"createdAt":"2025-01-01T12:00:00+00:00","id":"2c94ebf4-5818-478d-a4d2-186e96e58412","name":"Rule1","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","HIGH"]},"contactMeans":[{"email":"email1@example.com","id":"01983cf8-ed82-7685-8cbf-b75225993c61","status":"VALID","type":"EMAIL"}],"continue":false}]}],"summary":"Dump of the routings"}}}}},"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::CursorParametersConflict":{"value":{"class":"Client::BadRequest::CursorParametersConflict","message":"Provided cursor and received parameters are conflicting"}},"Client::BadRequest::InvalidCursor":{"value":{"class":"Client::BadRequest::InvalidCursor","message":"Provided cursor is invalid"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/routing\")\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/notification/routing\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/routing/get","required":true}],"x-response-identifier":"id","x-expanded-response":"NotificationRoutingRouting"},"post":{"operationId":"createNotificationRouting","summary":"Create a routing","security":[{"oAuth2AuthCode":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.routing.PostInput"},"examples":{"Create a routing":{"value":{"active":true,"name":"Rule1","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","HIGH"]},"contactMeans":[{"id":"01983cf8-ed82-7685-8cbf-b75225993c61"}],"continue":false}]},"summary":"Input needed to create the routing"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.routing.Routing"},"examples":{"Created routing":{"value":{"active":true,"createdAt":"2025-01-01T12:00:00+00:00","id":"2c94ebf4-5818-478d-a4d2-186e96e58412","name":"Rule1","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","HIGH"]},"contactMeans":[{"email":"email1@example.com","id":"01983cf8-ed82-7685-8cbf-b75225993c61","status":"VALID","type":"EMAIL"}],"continue":false}]},"summary":"Created routing using the input payload"}}}}},"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::InvalidEmailAddress":{"value":{"class":"Client::BadRequest::InvalidEmailAddress","message":"Invalid email address provided"}},"Client::BadRequest::RoutingAlreadyExists":{"value":{"class":"Client::BadRequest::RoutingAlreadyExists","message":"Routing {{.name}} already exists"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: notification.routing.PostInput\nresult = client.post(\"/v2/notification/routing\",\n\tactive = None, # Whether this routing is currently active (type: boolean)\n\tname = None, # Name of the routing (type: string)\n\trules = None, # Type of the contact mean (type: array)\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: notification.routing.PostInput\n$result = $ovh->post(\"/v2/notification/routing\", array(\n\tactive => null, // Whether this routing is currently active (type: boolean)\n\tname => null, // Name of the routing (type: string)\n\trules => null, // Type of the contact mean (type: array)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/routing/create","required":true}]}},"/notification/routing/{routingId}":{"delete":{"operationId":"deleteNotificationRouting","summary":"Delete the routing","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"routingId","description":"Routing ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation"}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/routing/{routingId}\")\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/notification/routing/{routingId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/routing/delete","required":true}]},"get":{"operationId":"getNotificationRouting","summary":"Retrieve information about a routing","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"routingId","description":"Routing ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.routing.Routing"},"examples":{"Get a routing":{"value":{"active":true,"createdAt":"2025-01-01T12:00:00+00:00","id":"2c94ebf4-5818-478d-a4d2-186e96e58412","name":"Rule1","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","HIGH"]},"contactMeans":[{"email":"email1@example.com","id":"01983cf8-ed82-7685-8cbf-b75225993c61","status":"VALID","type":"EMAIL"}],"continue":false}]},"summary":"Dump of a routing"}}}}},"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::RoutingNotFound":{"value":{"class":"Client::NotFound::RoutingNotFound","message":"Routing {{.routingID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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/notification/routing/{routingId}\")\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/notification/routing/{routingId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/routing/get","required":true}],"x-response-identifier":"id"},"put":{"operationId":"editNotificationRouting","summary":"Update a routing","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"routingId","description":"Routing ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.routing.Routing"},"examples":{"Update a routing status":{"value":{"active":true,"name":"Rule2","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","MEDIUM"]},"contactMeans":[{"id":"01983cf8-ed82-7685-8cbf-b75225993c61"}],"continue":false}]},"summary":"Input needed to update a routing"}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/notification.routing.Routing"},"examples":{"Updated routing":{"value":{"active":true,"createdAt":"2025-01-01T12:00:00+00:00","id":"2c94ebf4-5818-478d-a4d2-186e96e58412","name":"Rule2","rules":[{"condition":{"category":["BILLING","LEGAL"],"priority":["LOW","MEDIUM"]},"contactMeans":[{"email":"email1@example.com","id":"01983cf8-ed82-7685-8cbf-b75225993c61","status":"VALID","type":"EMAIL"}],"continue":false}]},"summary":"Updated routing using the input payload"}}}}},"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::RoutingNotFound":{"value":{"class":"Client::NotFound::RoutingNotFound","message":"Routing {{.routingID}} not found"}}}}}}},"x-developer-hub-navigation":[["Misc","Notifications"]],"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: notification.routing.Routing\nresult = client.put(\"/v2/notification/routing/{routingId}\",\n\tactive = None, # Whether this routing is currently active (type: boolean)\n\tname = None, # Name of the routing (type: string)\n\trules = None, # Type of the contact mean (type: array)\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: notification.routing.Routing\n$result = $ovh->put(\"/v2/notification/routing/{routingId}\", array(\n\tactive => null, // Whether this routing is currently active (type: boolean)\n\tname => null, // Name of the routing (type: string)\n\trules => null, // Type of the contact mean (type: array)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"account:apiovh:notification/routing/edit","required":true}]}}}}
