{"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/1.0"}],"components":{"schemas":{"any":{"description":"Can be anything (text, int, bool, json, html, etc.)","example":"This is a content of any type !"},"duration":{"type":"string","description":"Duration (e.g., P1Y2M3DT4H6M9S)","example":"P1Y2M3DT4H6M9S"},"email":{"type":"string","description":"Email address (e.g., api@ml.ovh.net)","format":"email","example":"api@ml.ovh.net"},"internationalPhoneNumber":{"type":"string","description":"International phone number","format":"phone-number"},"ip":{"type":"string","description":"IP address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipBlock":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","format":"ip-block","example":"192.0.2.0/24"},"ipInterface":{"type":"string","description":"IP address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipv4":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","format":"ipv4","example":"192.0.2.0"},"ipv4Block":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","format":"ipv4-block","example":"192.0.2.0/24"},"ipv6":{"type":"string","description":"IPv6 address (e.g., 2001:41d0:1:1994::1)","format":"ipv6","example":"2001:41d0:1:1994::1"},"ipv6Block":{"type":"string","description":"IPv6 CIDR notation (e.g., 2001:41d0::/128)","format":"ipv6-block","example":"2001:41d0::/128"},"macAddress":{"type":"string","description":"MAC address (e.g., 00:00:5e:00:53:01)","format":"mac-address","example":"00:00:5e:00:53:01"},"phoneNumber":{"type":"string","description":"Phone number","format":"phone-number"},"storage.NetAppShareRevertToSnapshot":{"type":"object","description":"A share","properties":{"snapshotID":{"type":"string","description":"Latest share snapshot","format":"uuid"}},"required":["snapshotID"]},"storage.NetAppShareSnapshot":{"type":"object","description":"A share snapshot","properties":{"createdAt":{"type":"string","description":"Snapshot creation date","nullable":true,"format":"date-time","readOnly":true},"description":{"type":"string","description":"Snapshot description","nullable":true},"id":{"type":"string","description":"Snapshot ID","format":"uuid","readOnly":true},"name":{"type":"string","description":"Snapshot name","nullable":true},"path":{"type":"string","description":"Snapshot path","nullable":true,"readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/storage.NetAppSnapshotStatusEnum"}],"description":"Snapshot status","nullable":true,"readOnly":true},"type":{"allOf":[{"$ref":"#/components/schemas/storage.NetAppSnapshotTypeEnum"}],"description":"Snapshot type","nullable":true,"readOnly":true}}},"storage.NetAppShareSnapshotReserve":{"type":"object","description":"Snapshot reserve properties","properties":{"percent":{"type":"integer","description":"Share space percentage reserved for snapshots, 5 by default","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/storage.NetAppShareSnapshotReserveStatusEnum"}],"description":"Status","readOnly":true}}},"storage.NetAppShareSnapshotReserveStatusEnum":{"type":"string","description":"Snapshot reserve properties status","enum":["active","error","updating"]},"storage.NetAppShareSnapshotReserveUpdate":{"type":"object","description":"A snapshot policy","properties":{"percent":{"type":"integer","description":"Share space percentage reserved for snapshots"}},"required":["percent"]},"storage.NetAppShareSnapshotUpdate":{"type":"object","description":"Share snapshot updatable properties","properties":{"description":{"type":"string","description":"New snapshot description","nullable":true},"name":{"type":"string","description":"New snapshot name","nullable":true}}},"storage.NetAppSnapshotStatusEnum":{"type":"string","description":"Snapshot status","enum":["available","creating","deleting","error","error_deleting","manage_error","manage_starting","restoring","unmanage_error","unmanage_starting"]},"storage.NetAppSnapshotTypeEnum":{"type":"string","description":"Snapshot type","enum":["automatic","manual","system"]},"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":{"/storage/netapp/{serviceName}/share/{shareId}/revert":{"post":{"summary":"Revert a share to its latest snapshot","description":"Restores the share content to the given snapshot, which must be the most recent snapshot of the share. Data written after this snapshot is permanently lost. The share and the snapshot must be available, and the revert is asynchronous: follow the share status until it is available, or reverting_error if it fails.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareRevertToSnapshot"}}}},"responses":{"200":{"description":"successful operation"}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@50"]],"x-badges":[{"color":"blue","label":"Beta 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: storage.NetAppShareRevertToSnapshot\nresult = client.post(\"/storage/netapp/{serviceName}/share/{shareId}/revert\",\n\tsnapshotID = None, # Latest share snapshot (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: storage.NetAppShareRevertToSnapshot\n$result = $ovh->post(\"/storage/netapp/{serviceName}/share/{shareId}/revert\", array(\n\tsnapshotID => null, // Latest share snapshot (type: string)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/revertToSnapshot","required":true}]}},"/storage/netapp/{serviceName}/share/{shareId}/snapshot":{"get":{"summary":"List snapshots","description":"Returns the ID and name of each snapshot of the share, including the snapshots taken automatically and by the system. Set `detail` to true to get all snapshot properties, such as their type and status.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"query","name":"detail","description":"Get detailed information about each snapshot","schema":{"type":"boolean"}},{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@10"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.get(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot\")\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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/get","required":true}],"x-response-identifier":"id","x-expanded-response":"StorageNetAppShareSnapshot"},"post":{"summary":"Create a snapshot","description":"Creates a manual snapshot of the share. Creation is asynchronous: the snapshot is returned with status creating, follow its status until available. The share must be in status available.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@40"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\n# Request body type: storage.NetAppShareSnapshot\nresult = client.post(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot\",\n\tdescription = None, # Snapshot description (type: string, nullable)\n\tname = None, # Snapshot name (type: string, nullable)\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: storage.NetAppShareSnapshot\n$result = $ovh->post(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot\", array(\n\tdescription => null, // Snapshot description (type: string, nullable)\n\tname => null, // Snapshot name (type: string, nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/create","required":true}]}},"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}":{"delete":{"summary":"Delete a snapshot","description":"Permanently deletes the snapshot. Deletion is asynchronous: follow the snapshot until it no longer exists. System snapshots cannot be deleted, and a manual snapshot must be in status available or error.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"snapshotId","description":"Snapshot ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation"}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@70"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.delete(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\")\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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/delete","required":true}]},"get":{"summary":"Get a snapshot","description":"Returns the snapshot properties, its status and its type: manual, automatic when taken by the snapshot policy, or system. Holding an automatic snapshot turns it into a manual snapshot with a new ID.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"snapshotId","description":"Snapshot ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@20"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.get(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\")\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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/get","required":true}],"x-response-identifier":"id"},"put":{"summary":"Update a snapshot","description":"Updates the snapshot name and description. Only manual snapshots can be updated: hold an automatic snapshot first.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"snapshotId","description":"Snapshot ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshotUpdate"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@80"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\n# Request body type: storage.NetAppShareSnapshotUpdate\nresult = client.put(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\",\n\tdescription = None, # New snapshot description (type: string, nullable)\n\tname = None, # New snapshot name (type: string, nullable)\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: storage.NetAppShareSnapshotUpdate\n$result = $ovh->put(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}\", array(\n\tdescription => null, // New snapshot description (type: string, nullable)\n\tname => null, // New snapshot name (type: string, nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/edit","required":true}]}},"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}/hold":{"post":{"summary":"Hold an automatic snapshot","description":"Converts an automatic snapshot into a manual snapshot with a new ID, which the snapshot policy no longer deletes. Holding is asynchronous: follow the status of the returned snapshot until it is available. A held snapshot will not be released and is kept until you delete it.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"snapshotId","description":"Snapshot ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshot"}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@60"]],"x-badges":[{"color":"blue","label":"Beta 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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}/hold\")\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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshot/{snapshotId}/hold\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshot/hold","required":true}]}},"/storage/netapp/{serviceName}/share/{shareId}/snapshotReserve":{"get":{"summary":"Get the snapshot reserve","description":"Returns the percentage of the share size reserved for snapshots and the status of its last update.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshotReserve"}}}}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@30"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\nresult = client.get(\"/storage/netapp/{serviceName}/share/{shareId}/snapshotReserve\")\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(\"/storage/netapp/{serviceName}/share/{shareId}/snapshotReserve\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshotReserve/get","required":true}]},"put":{"summary":"Update the snapshot reserve","description":"Changes the percentage of the share size reserved for snapshots without changing the share size, so a higher reserve leaves less space for data. The share must be available. The update is asynchronous: follow the snapshot reserve status until it returns to active.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"serviceName","description":"Service name","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"shareId","description":"Share ID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/storage.NetAppShareSnapshotReserveUpdate"}}}},"responses":{"200":{"description":"successful operation"}},"tags":["snapshots"],"x-developer-hub-navigation":[["Storage & Backup","File Storage","Enterprise File Storage","Snapshots@@@90"]],"x-badges":[{"color":"green","label":"Stable production version"}],"x-code-samples":[{"lang":"python","label":"Python","source":"'''\nFirst, install the latest release of Python wrapper: $ pip install ovh\n'''\nimport json\nimport ovh\n\n# Instantiate an OVH Client.\n# You can generate new credentials with full access to your account on\n# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)\nclient = ovh.Client(\n\tendpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)\n\tapplication_key='xxxxxxxxxx',    # Application Key\n\tapplication_secret='xxxxxxxxxx', # Application Secret\n\tconsumer_key='xxxxxxxxxx',       # Consumer Key\n)\n\n# Request body type: storage.NetAppShareSnapshotReserveUpdate\nresult = client.put(\"/storage/netapp/{serviceName}/share/{shareId}/snapshotReserve\",\n\tpercent = None, # Share space percentage reserved for snapshots (type: integer)\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: storage.NetAppShareSnapshotReserveUpdate\n$result = $ovh->put(\"/storage/netapp/{serviceName}/share/{shareId}/snapshotReserve\", array(\n\tpercent => null, // Share space percentage reserved for snapshots (type: integer)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"storageNetApp:apiovh:share/snapshotReserve/edit","required":true}]}}},"tags":[{"name":"snapshots","x-tag-expanded":false,"description":"Missing description"}]}
