{"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 !"},"connectivity.eligibility.Building":{"type":"object","description":"Details of a Building","properties":{"name":{"type":"string","description":"Building name"},"nro":{"type":"string","description":"Building NRO (Optical main distribution frame)","nullable":true},"reference":{"type":"string","description":"Identifier which refer to a building uniquely"},"stairs":{"type":"array","description":"Stairs for this building","nullable":true,"items":{"$ref":"#/components/schemas/connectivity.eligibility.BuildingStair"}},"type":{"allOf":[{"$ref":"#/components/schemas/connectivity.eligibility.BuildingTypeEnum"}],"description":"Building type","nullable":true}}},"connectivity.eligibility.BuildingStair":{"type":"object","description":"Stair details of a Building","properties":{"floors":{"type":"array","description":"List of floor indentifier, \"_NA_\" if no identifier is available","items":{"type":"string"}},"stair":{"type":"string","description":"Stair identifier, \"_NA_\" if no identifier is available"}}},"connectivity.eligibility.BuildingTypeEnum":{"type":"string","description":"Building type","enum":["BUILDING","HOUSE"]},"connectivity.eligibility.InstallationTypeEnum":{"type":"string","description":"Installation type, for fiber only","enum":["activate","activate_undefined","create","multiOtp"]},"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"},"order.Contract":{"type":"object","description":"A contract","properties":{"content":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}}},"order.CurrencyCodeEnum":{"type":"string","enum":["AUD","CAD","CZK","EUR","GBP","INR","LTL","MAD","N/A","PLN","SGD","TND","USD","XOF","points"]},"order.Price":{"type":"object","description":"Price with it's currency and textual representation","properties":{"currencyCode":{"$ref":"#/components/schemas/order.CurrencyCodeEnum"},"text":{"type":"string"},"value":{"type":"number"}}},"pack.xdsl.AsyncTaskStatusEnum":{"type":"string","description":"AsyncTask status","enum":["error","ok","pending"]},"pack.xdsl.AsyncTask_long":{"type":"object","description":"Async task","properties":{"error":{"type":"string","description":"Error","nullable":true},"result":{"type":"integer"},"status":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.AsyncTaskStatusEnum"}],"description":"Status of the call"}}},"pack.xdsl.AsyncTask_pack.xdsl.addressMove.MoveOfferResponse":{"type":"object","description":"Async task","properties":{"error":{"type":"string","description":"Error","nullable":true},"result":{"$ref":"#/components/schemas/pack.xdsl.addressMove.MoveOfferResponse"},"status":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.AsyncTaskStatusEnum"}],"description":"Status of the call"}}},"pack.xdsl.AsyncTask_pack.xdsl.migration.MigrationOfferResponse":{"type":"object","description":"Async task","properties":{"error":{"type":"string","description":"Error","nullable":true},"result":{"$ref":"#/components/schemas/pack.xdsl.migration.MigrationOfferResponse"},"status":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.AsyncTaskStatusEnum"}],"description":"Status of the call"}}},"pack.xdsl.ModemOptionEnum":{"type":"string","description":"modem type","enum":["no","recycled","yes"]},"pack.xdsl.OrderFollowUpStep":{"type":"object","description":"Information about order follow up step","properties":{"comments":{"type":"array","description":"Additional information about the step","items":{"type":"string"}},"doneDate":{"type":"string","description":"Date when the step has been done","nullable":true,"format":"date-time"},"durationUnit":{"type":"string","description":"Unit used for the expected duration step"},"expectedDuration":{"type":"integer","description":"Expected duration step"},"name":{"type":"string","description":"Order follow up step name"},"status":{"type":"string","description":"Status of the step"}}},"pack.xdsl.ServiceNameEnum":{"type":"string","description":"Service name","enum":["domain","emailPro","exchangeAccount","exchangeIndividual","exchangeOrganization","grt10ho","grt20m10ho","grt20m4ho","grt4ho","grt5m10ho","grt5m4ho","grtAlt","grtDsp","grtFt","grtKosc","grtOvh","hostedEmail","modem","overTheBoxHardware","overTheBoxService","voipAlias","voipBillingAccount","voipEcoFax","voipLine","voipTrunk","xdslAccess"]},"pack.xdsl.Task":{"type":"object","description":"Describes the current status of a task","properties":{"function":{"type":"string","readOnly":true},"id":{"type":"integer","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.TaskStatusEnum"}],"readOnly":true},"updateDate":{"type":"string","format":"date-time","readOnly":true}}},"pack.xdsl.TaskStatusEnum":{"type":"string","description":"Status of a task.","enum":["cancelled","doing","done","error","problem","todo"]},"pack.xdsl.addressMove.MoveOffer":{"type":"object","description":"Address move offer","properties":{"contracts":{"type":"array","description":"Contracts details for this offer","items":{"$ref":"#/components/schemas/order.Contract"}},"customOntAddress":{"type":"boolean","description":"Tells if the custom ont address is available on the offer"},"description":{"type":"string","description":"Description of the offer"},"engageMonths":{"type":"integer","description":"Number of months of engagement","nullable":true},"engaged":{"type":"boolean","description":"Tells if the customer is still engaged"},"modemOptions":{"type":"array","description":"List of modems for this offer","nullable":true,"items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferModemOption"}},"modemReferenceToReturn":{"type":"string","description":"Modem reference (Mac or Serial) to be returned","nullable":true},"needModem":{"type":"boolean","description":"Tells if the offer needs a modem"},"needNewModem":{"type":"boolean","description":"Tells if the customer will have to change its modem"},"offerName":{"type":"string","description":"Name of the offer"},"operator":{"type":"string","description":"Collection operator (CO)","nullable":true},"options":{"type":"array","description":"Available options for the migration","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferAvailableOption"}},"prices":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.PriceOffer"}],"description":"Prices detailed applicable for this offer"},"productCodes":{"type":"array","description":"List of product from provider available for an offer","items":{"type":"string"}},"subServicesToDelete":{"type":"array","description":"List of sub services to delete","items":{"$ref":"#/components/schemas/pack.xdsl.migration.SubServiceToDelete"}},"url":{"type":"string","description":"URL of the offer"}}},"pack.xdsl.addressMove.MoveOfferResponse":{"type":"object","description":"List of available Move address offer","properties":{"offers":{"type":"array","description":"Array of offers","items":{"$ref":"#/components/schemas/pack.xdsl.addressMove.MoveOffer"}}}},"pack.xdsl.addressMove.Price":{"type":"object","description":"Price details for an offer","properties":{"description":{"type":"string","description":"Description of the price"},"price":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price of the offer","nullable":true}}},"pack.xdsl.addressMove.PriceOffer":{"type":"object","description":"Price details for an offer","properties":{"creationLineFees":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Creation line fees"},"currentOfferPrice":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Price of the current offer"},"due":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Upgrade offer price"},"firstYearPromo":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Subscription price the first year"},"gtrComfortFees":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Install fee for GTR option comfort additional cost","nullable":true},"installFees":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Installation fees"},"modemRental":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Price for modem rental"},"price":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Price of the offer"},"promotion":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.migrationAndAddressMove.Promotion"}],"description":"Promotion, if available","nullable":true},"providerAI":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Subscription price for provider AI additional cost","nullable":true},"providerOrange":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.addressMove.Price"}],"description":"Subscription price for provider ORANGE additional cost","nullable":true}}},"pack.xdsl.migration.MigrationOffer":{"type":"object","description":"Migration offer","properties":{"contractList":{"type":"array","description":"DEPRECATED - List of contracts","items":{"type":"string"}},"contracts":{"type":"array","description":"List of contracts for this offer","items":{"$ref":"#/components/schemas/order.Contract"}},"currentOfferPrice":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price of the current offer"},"customOntAddress":{"type":"boolean","description":"Tells if the custom ont address is available on the offer"},"description":{"type":"string","description":"Description of the offer"},"due":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price to make the migration","nullable":true},"engageMonths":{"type":"integer","description":"Number of months of engagement","nullable":true},"engaged":{"type":"boolean","description":"Tells if the customer is still engaged"},"engagementMonths":{"type":"array","description":"List of number of months possible for engagement","items":{"type":"integer"}},"firstYearPromo":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Subscription price the first year","nullable":true},"gtrComfortFees":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Install fee for GTR option comfort additional cost","nullable":true},"installFees":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Installation fees","nullable":true},"modemMacToReturn":{"type":"string","description":"Mac address of the modem to be returned","nullable":true},"modemOptions":{"type":"array","description":"List of modems for this offer","nullable":true,"items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferModemOption"}},"modemRental":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price for modem rental","nullable":true},"multiOtp":{"type":"boolean","description":"Tells if the multiOtp is possible on the address"},"needModem":{"type":"boolean","description":"Tells if the offer needs a modem"},"needNewModem":{"type":"boolean","description":"Tells if the customer will have to change its modem"},"offerName":{"type":"string","description":"Name of the offer"},"operator":{"type":"string","description":"Collection operator (CO)","nullable":true},"options":{"type":"array","description":"Available options for the migration","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferAvailableOption"}},"price":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price of the offer"},"promotion":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.migrationAndAddressMove.Promotion"}],"description":"Promotion, if available","nullable":true},"providerAI":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Subscription price for provider AI additional cost","nullable":true},"providerOrange":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Subscription price for provider ORANGE additional cost","nullable":true},"subServicesToDelete":{"type":"array","description":"List of sub services to delete","items":{"$ref":"#/components/schemas/pack.xdsl.migration.SubServiceToDelete"}},"url":{"type":"string","description":"URL of the offer"}}},"pack.xdsl.migration.MigrationOfferResponse":{"type":"object","description":"List of available Migration offer","properties":{"buildings":{"type":"array","description":"Array of buildings","items":{"$ref":"#/components/schemas/connectivity.eligibility.Building"}},"offers":{"type":"array","description":"Array of offers","items":{"$ref":"#/components/schemas/pack.xdsl.migration.MigrationOffer"}}}},"pack.xdsl.migration.OfferAvailableOption":{"type":"object","description":"Available option for the offer","properties":{"duration":{"type":"integer","description":"Number of months paid for"},"included":{"type":"integer","description":"Number of slots included by default in this offer"},"name":{"type":"string","description":"Name of the option"},"optional":{"type":"integer","description":"Number of optional slots that can be puchased"},"optionalPrice":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price of an additional slot. You pay this price everytime the duration is expired","nullable":true}}},"pack.xdsl.migration.OfferModemOption":{"type":"object","description":"Available modem option for the offer","properties":{"name":{"type":"string","description":"Name of the modem"},"price":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price of for this modem","nullable":true}}},"pack.xdsl.migration.OfferOption":{"type":"object","description":"Option of Offer","properties":{"name":{"type":"string","description":"Name of the option"},"quantity":{"type":"integer","description":"Number of slots, couting included slots"}}},"pack.xdsl.migration.OfferServiceToDelete":{"type":"object","description":"Option of Offer","properties":{"service":{"type":"string","description":"Type of the service"},"type":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.ServiceNameEnum"}],"description":"Type of the service to delete"}}},"pack.xdsl.migration.OfferServiceToKeep":{"type":"object","description":"Option of Offer","properties":{"service":{"type":"string","description":"Type of the service"},"type":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.ServiceNameEnum"}],"description":"Type of the service to keep"}}},"pack.xdsl.migration.SubServiceDetails":{"type":"object","description":"Sub service with unpack terms details","properties":{"isAllowed":{"type":"boolean","description":"Tells whether or not the service can be unpacked"},"price":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Price bill on the unpack action"},"renewPeriod":{"type":"number","description":"Renew period in month of the service"},"renewPrice":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"The price it will cost when it will be renewed"},"service":{"type":"string","description":"sub service name"}}},"pack.xdsl.migration.SubServiceToDelete":{"type":"object","description":"Sub service to delete","properties":{"numberToDelete":{"type":"integer","description":"Number of services to be deleted"},"services":{"type":"array","description":"List of domains of sub services","items":{"type":"string"}},"type":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.ServiceNameEnum"}],"description":"Type of service to be deleted"}}},"pack.xdsl.migration.SubServicesDetailsToDelete":{"type":"object","description":"Sub services to delete with unpack terms","properties":{"numberToDelete":{"type":"integer","description":"Number of services to be deleted"},"services":{"type":"array","description":"List of domains of sub services with unpack terms","items":{"$ref":"#/components/schemas/pack.xdsl.migration.SubServiceDetails"}},"type":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.ServiceNameEnum"}],"description":"Type of service to be deleted"}}},"pack.xdsl.migrationAndAddressMove.Promotion":{"type":"object","description":"Migration or address move offer promotion","properties":{"endDate":{"type":"string","description":"Promotion end date, if applicable","nullable":true,"format":"date-time"},"id":{"type":"string","description":"Identifier of the promotion"},"installFee":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.migrationAndAddressMove.PromotionDetails"}],"description":"Details of the promotion for the install fee","nullable":true},"startDate":{"type":"string","description":"Promotion start date, if applicable","nullable":true,"format":"date-time"},"subscription":{"allOf":[{"$ref":"#/components/schemas/pack.xdsl.migrationAndAddressMove.PromotionDetails"}],"description":"Details of the promotion for the subscription","nullable":true}}},"pack.xdsl.migrationAndAddressMove.PromotionDetails":{"type":"object","description":"Migration or address move offer promotion details","properties":{"discount":{"allOf":[{"$ref":"#/components/schemas/order.Price"}],"description":"Promotion discount"},"duration":{"type":"string","description":"Duration of the promotion, if applicable (only for recurrent billing)","nullable":true,"format":"duration"}}},"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"},"xdsl.eligibility.BookMeetingSlot":{"type":"object","description":"Parameters to book a time slot for a meeting","properties":{"fakeMeeting":{"type":"boolean","description":"Whether or not to book a fake meeting slots (if no slots are available)"},"meetingSlot":{"allOf":[{"$ref":"#/components/schemas/xdsl.eligibility.MeetingSlot"}],"description":"The time slot to book, null if fakeMeeting is true","nullable":true},"name":{"type":"string","description":"The name of the customer","nullable":true}}},"xdsl.eligibility.MeetingSlot":{"type":"object","description":"Represents a time slot for a meeting","properties":{"endDate":{"type":"string","description":"The end of the time slot","format":"date-time"},"slotId":{"type":"string","description":"Represent a meeting id for a fiber collect operator","nullable":true},"startDate":{"type":"string","description":"The beginning of the time slot","format":"date-time"},"uiCode":{"type":"string","description":"An opaque string that represents an intervention unit"}}}},"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":{"/pack/xdsl/{packName}/addressMove/moveOffer":{"post":{"summary":"Move an xDSL pack to another address","description":"Move an xDSL pack to another address. Starts the move to the new address with the chosen offer, modem, installation details and services to keep or delete. Returns an asynchronous task.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"acceptContracts":{"type":"boolean","description":"You explicitly accept the terms of the contract corresponding to your new offer"},"building":{"type":"string","description":"Building identifier, \"null\" if no identifier is available"},"buildingReference":{"type":"string","description":"Building reference for FTTH and FTTE offers"},"contactPhone":{"type":"string","description":"Customer contact phone number"},"door":{"type":"string","description":"Door identifier, \"null\" if no identifier is available"},"eligibilityReference":{"type":"string","description":"Eligibility reference"},"engageMonths":{"type":"integer","description":"Number of months of re-engagement"},"floor":{"type":"string","description":"Floor identifier, \"null\" if no identifier is available"},"installationType":{"description":"Installation type, only on FTTH technology","$ref":"#/components/schemas/connectivity.eligibility.InstallationTypeEnum"},"keepCurrentNumber":{"type":"boolean","description":"Whether or not the current number should be kept"},"meeting":{"description":"Data to book a meeting slot","$ref":"#/components/schemas/xdsl.eligibility.BookMeetingSlot"},"modem":{"description":"Modem option chosen for the new offer","$ref":"#/components/schemas/pack.xdsl.ModemOptionEnum"},"mondialRelayId":{"type":"integer","description":"Mondial relay ID if a shipping is needed"},"moveOutDate":{"type":"string","description":"The date when the customer is no longer at the current address. Must be between now and +30 days. The default date will be the one in 30 days from now.","format":"date-time"},"nicShipping":{"type":"string","description":"nicShipping if a shipping is needed"},"offerName":{"type":"string","description":"Reference of the new offer"},"ontShippingContact":{"type":"string","description":"Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation"},"options":{"type":"array","description":"Options wanted in the new offer","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferOption"}},"otp":{"type":"boolean","description":"Whether an Optical Termination Point (OTP) is already installed at the address"},"otpReference":{"type":"string","description":"Reference of the Optical Termination Point"},"productCode":{"type":"string","description":"Product code, an unique identifier for the product from addressMove/offer"},"residence":{"type":"string","description":"Residence identifier, \"null\" if no identifier is available"},"stair":{"type":"string","description":"Stair identifier, \"null\" if no identifier is available"},"subServicesToDelete":{"type":"array","description":"List of domains of services to delete if needed","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferServiceToDelete"}},"subServicesToKeep":{"type":"array","description":"List of domains of services to keep if needed","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferServiceToKeep"}}},"required":["acceptContracts","eligibilityReference","keepCurrentNumber","modem","offerName","otp","productCode"]}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/pack.xdsl.AsyncTask_long"}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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\n# Request body type: pack.xdsl.migration.OfferServiceToKeep[]\nresult = client.post(\"/pack/xdsl/{packName}/addressMove/moveOffer\",\n\tacceptContracts = None, # You explicitly accept the terms of the contract corresponding to your new offer (type: boolean)\n\tbuilding = None, # Building identifier, \"null\" if no identifier is available (type: string, nullable)\n\tbuildingReference = None, # Building reference for FTTH and FTTE offers (type: string, nullable)\n\tcontactPhone = None, # Customer contact phone number (type: string, nullable)\n\tdoor = None, # Door identifier, \"null\" if no identifier is available (type: string, nullable)\n\teligibilityReference = None, # Eligibility reference (type: string)\n\tengageMonths = None, # Number of months of re-engagement (type: long, nullable)\n\tfloor = None, # Floor identifier, \"null\" if no identifier is available (type: string, nullable)\n\tinstallationType = None, # Installation type, only on FTTH technology (type: connectivity.eligibility.InstallationTypeEnum, nullable)\n\tkeepCurrentNumber = None, # Whether or not the current number should be kept (type: boolean)\n\tmeeting = None, # Data to book a meeting slot (type: xdsl.eligibility.BookMeetingSlot, nullable)\n\tmodem = None, # Modem option chosen for the new offer (type: pack.xdsl.ModemOptionEnum)\n\tmondialRelayId = None, # Mondial relay ID if a shipping is needed (type: long, nullable)\n\tmoveOutDate = None, # The date when the customer is no longer at the current address. Must be between now and +30 days. The default date will be the one in 30 days from now. (type: datetime, nullable)\n\tnicShipping = None, # nicShipping if a shipping is needed (type: string, nullable)\n\tofferName = None, # Reference of the new offer (type: string)\n\tontShippingContact = None, # Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation (type: string, nullable)\n\toptions = None, # Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n\totp = None, # Whether an Optical Termination Point (OTP) is already installed at the address (type: boolean)\n\totpReference = None, # Reference of the Optical Termination Point (type: string, nullable)\n\tproductCode = None, # Product code, an unique identifier for the product from addressMove/offer (type: string)\n\tresidence = None, # Residence identifier, \"null\" if no identifier is available (type: string, nullable)\n\tstair = None, # Stair identifier, \"null\" if no identifier is available (type: string, nullable)\n\tsubServicesToDelete = None, # List of domains of services to delete if needed (type: pack.xdsl.migration.OfferServiceToDelete[], nullable)\n\tsubServicesToKeep = None, # List of domains of services to keep if needed (type: pack.xdsl.migration.OfferServiceToKeep[], 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: pack.xdsl.migration.OfferServiceToKeep[]\n$result = $ovh->post(\"/pack/xdsl/{packName}/addressMove/moveOffer\", array(\n\tacceptContracts => null, // You explicitly accept the terms of the contract corresponding to your new offer (type: boolean)\n\tbuilding => null, // Building identifier, \"null\" if no identifier is available (type: string, nullable)\n\tbuildingReference => null, // Building reference for FTTH and FTTE offers (type: string, nullable)\n\tcontactPhone => null, // Customer contact phone number (type: string, nullable)\n\tdoor => null, // Door identifier, \"null\" if no identifier is available (type: string, nullable)\n\teligibilityReference => null, // Eligibility reference (type: string)\n\tengageMonths => null, // Number of months of re-engagement (type: long, nullable)\n\tfloor => null, // Floor identifier, \"null\" if no identifier is available (type: string, nullable)\n\tinstallationType => null, // Installation type, only on FTTH technology (type: connectivity.eligibility.InstallationTypeEnum, nullable)\n\tkeepCurrentNumber => null, // Whether or not the current number should be kept (type: boolean)\n\tmeeting => null, // Data to book a meeting slot (type: xdsl.eligibility.BookMeetingSlot, nullable)\n\tmodem => null, // Modem option chosen for the new offer (type: pack.xdsl.ModemOptionEnum)\n\tmondialRelayId => null, // Mondial relay ID if a shipping is needed (type: long, nullable)\n\tmoveOutDate => null, // The date when the customer is no longer at the current address. Must be between now and +30 days. The default date will be the one in 30 days from now. (type: datetime, nullable)\n\tnicShipping => null, // nicShipping if a shipping is needed (type: string, nullable)\n\tofferName => null, // Reference of the new offer (type: string)\n\tontShippingContact => null, // Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation (type: string, nullable)\n\toptions => null, // Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n\totp => null, // Whether an Optical Termination Point (OTP) is already installed at the address (type: boolean)\n\totpReference => null, // Reference of the Optical Termination Point (type: string, nullable)\n\tproductCode => null, // Product code, an unique identifier for the product from addressMove/offer (type: string)\n\tresidence => null, // Residence identifier, \"null\" if no identifier is available (type: string, nullable)\n\tstair => null, // Stair identifier, \"null\" if no identifier is available (type: string, nullable)\n\tsubServicesToDelete => null, // List of domains of services to delete if needed (type: pack.xdsl.migration.OfferServiceToDelete[], nullable)\n\tsubServicesToKeep => null, // List of domains of services to keep if needed (type: pack.xdsl.migration.OfferServiceToKeep[], nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:addressMove/moveOffer","required":true}]}},"/pack/xdsl/{packName}/addressMove/offers":{"post":{"summary":"Search the address move offers of an xDSL pack","description":"Search the address move offers of an xDSL pack. Returns, as an asynchronous task, the offers available at the new address for the given eligibility reference.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"eligibilityReference":{"type":"string","description":"Eligibility reference"}},"required":["eligibilityReference"]}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/pack.xdsl.AsyncTask_pack.xdsl.addressMove.MoveOfferResponse"}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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\n# Request body type: string\nresult = client.post(\"/pack/xdsl/{packName}/addressMove/offers\",\n\teligibilityReference = None, # Eligibility reference (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: string\n$result = $ovh->post(\"/pack/xdsl/{packName}/addressMove/offers\", array(\n\teligibilityReference => null, // Eligibility reference (type: string)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:addressMove/offers/create","required":true}]}},"/pack/xdsl/{packName}/addressMove/servicesToDeleteUnpackTerms":{"post":{"summary":"List the services to delete to move an xDSL pack","description":"List the services to delete to move an xDSL pack. Returns, by service type, the number of services to delete and their unpack terms for the offer at the new address.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"eligibilityReference":{"type":"string","description":"Eligibility reference"},"offerName":{"type":"string","description":"Reference of the new offer"},"options":{"type":"array","description":"Options wanted in the new offer","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferOption"}}},"required":["eligibilityReference","offerName"]}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/pack.xdsl.migration.SubServicesDetailsToDelete"}}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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\n# Request body type: pack.xdsl.migration.OfferOption[]\nresult = client.post(\"/pack/xdsl/{packName}/addressMove/servicesToDeleteUnpackTerms\",\n\teligibilityReference = None, # Eligibility reference (type: string)\n\tofferName = None, # Reference of the new offer (type: string)\n\toptions = None, # Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], 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: pack.xdsl.migration.OfferOption[]\n$result = $ovh->post(\"/pack/xdsl/{packName}/addressMove/servicesToDeleteUnpackTerms\", array(\n\teligibilityReference => null, // Eligibility reference (type: string)\n\tofferName => null, // Reference of the new offer (type: string)\n\toptions => null, // Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:addressMove/servicesToDeleteUnpackTerms/create","required":true}]}},"/pack/xdsl/{packName}/migration/migrate":{"post":{"summary":"Migrate an xDSL pack to another offer","description":"Migrate an xDSL pack to another offer. Starts the migration to the selected offer with its options, modem, installation details and services to keep or delete. Returns the task that performs it.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"acceptContracts":{"type":"boolean","description":"You explicitly accept the terms of the contract corresponding to your new offer"},"buildingReference":{"type":"string","description":"Building reference for FTTH and FTTE offers"},"contactPhone":{"type":"string","description":"Customer contact phone number"},"engageMonths":{"type":"integer","description":"Number of months of re-engagement"},"floor":{"type":"string","description":"Floor identifier, \"_NA_\" if no identifier is available"},"installationType":{"description":"Installation type, only on FTTH technology","$ref":"#/components/schemas/connectivity.eligibility.InstallationTypeEnum"},"meeting":{"description":"Data to book a meeting slot","$ref":"#/components/schemas/xdsl.eligibility.BookMeetingSlot"},"modem":{"description":"Modem option chosen for the new offer","$ref":"#/components/schemas/pack.xdsl.ModemOptionEnum"},"mondialRelayId":{"type":"integer","description":"Mondial relay ID if a shipping is needed"},"nicShipping":{"type":"string","description":"nicShipping if a shipping is needed"},"offerName":{"type":"string","description":"Reference of the new offer"},"ontShippingContact":{"type":"string","description":"Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation"},"options":{"type":"array","description":"Options wanted in the new offer","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferOption"}},"otp":{"type":"boolean","description":"Whether an Optical Termination Point (OTP) is already installed at the address"},"otpReference":{"type":"string","description":"Reference of the Optical Termination Point"},"productCode":{"type":"string","description":"Product code, an unique identifier to designate the chosen offer"},"stair":{"type":"string","description":"Stair identifier, \"_NA_\" if no identifier is available"},"subServicesToDelete":{"type":"array","description":"List of domains of services to delete if needed","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferServiceToDelete"}},"subServicesToKeep":{"type":"array","description":"List of domains of services to keep if needed","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferServiceToKeep"}}},"required":["acceptContracts","modem","offerName"]}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/pack.xdsl.Task"}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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\n# Request body type: pack.xdsl.migration.OfferServiceToKeep[]\nresult = client.post(\"/pack/xdsl/{packName}/migration/migrate\",\n\tacceptContracts = None, # You explicitly accept the terms of the contract corresponding to your new offer (type: boolean)\n\tbuildingReference = None, # Building reference for FTTH and FTTE offers (type: string, nullable)\n\tcontactPhone = None, # Customer contact phone number (type: string, nullable)\n\tengageMonths = None, # Number of months of re-engagement (type: long, nullable)\n\tfloor = None, # Floor identifier, \"_NA_\" if no identifier is available (type: string, nullable)\n\tinstallationType = None, # Installation type, only on FTTH technology (type: connectivity.eligibility.InstallationTypeEnum, nullable)\n\tmeeting = None, # Data to book a meeting slot (type: xdsl.eligibility.BookMeetingSlot, nullable)\n\tmodem = None, # Modem option chosen for the new offer (type: pack.xdsl.ModemOptionEnum)\n\tmondialRelayId = None, # Mondial relay ID if a shipping is needed (type: long, nullable)\n\tnicShipping = None, # nicShipping if a shipping is needed (type: string, nullable)\n\tofferName = None, # Reference of the new offer (type: string)\n\tontShippingContact = None, # Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation (type: string, nullable)\n\toptions = None, # Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n\totp = None, # Whether an Optical Termination Point (OTP) is already installed at the address (type: boolean, nullable)\n\totpReference = None, # Reference of the Optical Termination Point (type: string, nullable)\n\tproductCode = None, # Product code, an unique identifier to designate the chosen offer (type: string, nullable)\n\tstair = None, # Stair identifier, \"_NA_\" if no identifier is available (type: string, nullable)\n\tsubServicesToDelete = None, # List of domains of services to delete if needed (type: pack.xdsl.migration.OfferServiceToDelete[], nullable)\n\tsubServicesToKeep = None, # List of domains of services to keep if needed (type: pack.xdsl.migration.OfferServiceToKeep[], 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: pack.xdsl.migration.OfferServiceToKeep[]\n$result = $ovh->post(\"/pack/xdsl/{packName}/migration/migrate\", array(\n\tacceptContracts => null, // You explicitly accept the terms of the contract corresponding to your new offer (type: boolean)\n\tbuildingReference => null, // Building reference for FTTH and FTTE offers (type: string, nullable)\n\tcontactPhone => null, // Customer contact phone number (type: string, nullable)\n\tengageMonths => null, // Number of months of re-engagement (type: long, nullable)\n\tfloor => null, // Floor identifier, \"_NA_\" if no identifier is available (type: string, nullable)\n\tinstallationType => null, // Installation type, only on FTTH technology (type: connectivity.eligibility.InstallationTypeEnum, nullable)\n\tmeeting => null, // Data to book a meeting slot (type: xdsl.eligibility.BookMeetingSlot, nullable)\n\tmodem => null, // Modem option chosen for the new offer (type: pack.xdsl.ModemOptionEnum)\n\tmondialRelayId => null, // Mondial relay ID if a shipping is needed (type: long, nullable)\n\tnicShipping => null, // nicShipping if a shipping is needed (type: string, nullable)\n\tofferName => null, // Reference of the new offer (type: string)\n\tontShippingContact => null, // Allows you to personalize a delivery address for the ONT. If empty, the address will be that of the installation (type: string, nullable)\n\toptions => null, // Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n\totp => null, // Whether an Optical Termination Point (OTP) is already installed at the address (type: boolean, nullable)\n\totpReference => null, // Reference of the Optical Termination Point (type: string, nullable)\n\tproductCode => null, // Product code, an unique identifier to designate the chosen offer (type: string, nullable)\n\tstair => null, // Stair identifier, \"_NA_\" if no identifier is available (type: string, nullable)\n\tsubServicesToDelete => null, // List of domains of services to delete if needed (type: pack.xdsl.migration.OfferServiceToDelete[], nullable)\n\tsubServicesToKeep => null, // List of domains of services to keep if needed (type: pack.xdsl.migration.OfferServiceToKeep[], nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:migration/migrate","required":true}]}},"/pack/xdsl/{packName}/migration/offers":{"post":{"summary":"Search the migration offers of an xDSL pack","description":"Search the migration offers of an xDSL pack. Returns, as an asynchronous task, the offers the pack can migrate to and, for fiber, the buildings to choose from.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"buildingReference":{"type":"string","description":"Building reference for FTTH and FTTE offers"}}}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/pack.xdsl.AsyncTask_pack.xdsl.migration.MigrationOfferResponse"}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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\n# Request body type: string\nresult = client.post(\"/pack/xdsl/{packName}/migration/offers\",\n\tbuildingReference = None, # Building reference for FTTH and FTTE offers (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: string\n$result = $ovh->post(\"/pack/xdsl/{packName}/migration/offers\", array(\n\tbuildingReference => null, // Building reference for FTTH and FTTE offers (type: string, nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:migration/offers/create","required":true}]}},"/pack/xdsl/{packName}/migration/servicesToDeleteUnpackTerms":{"post":{"summary":"List the services to delete to migrate an xDSL pack","description":"List the services to delete to migrate an xDSL pack. Returns, by service type, the number of services to delete and their unpack terms for the target offer.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerName":{"type":"string","description":"Reference of the new offer"},"options":{"type":"array","description":"Options wanted in the new offer","items":{"$ref":"#/components/schemas/pack.xdsl.migration.OfferOption"}}},"required":["offerName"]}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/pack.xdsl.migration.SubServicesDetailsToDelete"}}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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.post(\"/pack/xdsl/{packName}/migration/servicesToDeleteUnpackTerms\",\n\tofferName = None, # Reference of the new offer (type: string)\n\toptions = None, # Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], 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$result = $ovh->post(\"/pack/xdsl/{packName}/migration/servicesToDeleteUnpackTerms\", array(\n\tofferName => null, // Reference of the new offer (type: string)\n\toptions => null, // Options wanted in the new offer (type: pack.xdsl.migration.OfferOption[], nullable)\n));\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:migration/servicesToDeleteUnpackTerms/create","required":true}]}},"/pack/xdsl/{packName}/orderFollowUp":{"get":{"summary":"Get the order follow-up of an xDSL pack","description":"Get the order follow-up of an xDSL pack. Returns the steps of the pack order with their status, expected duration, completion date and comments.","security":[{"oAuth2AuthCode":[]}],"parameters":[{"in":"path","name":"packName","description":"The internal name of your pack","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/pack.xdsl.OrderFollowUpStep"}}}}}},"x-developer-hub-navigation":[["Web Cloud","Internet","Pack","Order & Installation@@@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(\"/pack/xdsl/{packName}/orderFollowUp\")\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(\"/pack/xdsl/{packName}/orderFollowUp\");\n\nprint_r($result);\n?>"}],"x-iam-actions":[{"name":"packXdsl:apiovh:orderFollowUp/get","required":true}]}}}}
