# Private Cloud › SAP Features Hub API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Private Cloud product's sections: https://developers.eu.ovhcloud.com/reference/private-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 4 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/private-cloud/sap-features-hub/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/private-cloud/sap-features-hub.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/private-cloud/sap-features-hub.json?format=openapi3

## Operations

- `GET /dedicatedCloud/{serviceName}/sap` — List pre-installation tasks
- `GET /dedicatedCloud/{serviceName}/sap/{taskId}` — Get a pre-installation task
- `POST /dedicatedCloud/{serviceName}/sap` — Create a pre-installation task
- `DELETE /dedicatedCloud/{serviceName}/sap/{taskId}` — Delete a pre-installation task

## List pre-installation tasks

`GET /1.0/dedicatedCloud/{serviceName}/sap`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/sap-features-hub/#get-dedicatedcloud-servicename-sap

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:sap/get`

Returns the pre-installation tasks of the service and their status.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `iamTags` | query | object |  | Filter resources on IAM tags |
| `serviceName` | path | string | yes | Domain of the service |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.sapWithIAM[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `applicationType` | dedicatedCloud.sap.applicationTypeEnum | read-only | Describes the type of SAP application that is being installed as part of the pre-installation tasks. — one of `ABAP`, `JAVA` |
| `applicationVersion` | string | read-only | Describes the specific version of the SAP application that is being installed during the pre-installation process. |
| `cleanStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current status of the clean-up operations performed as part of the pre-installation tasks. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `deploymentType` | dedicatedCloud.sap.deploymentTypeEnum | read-only | Describes the type of deployment strategy being used for the SAP installation during the pre-installation process. — one of `Distributed`, `High-Availability`, `Standard` |
| `endTime` | string | read-only | Records the date and time when the pre-installation tasks were finished. |
| `errorMessage` | string | read-only | Contains a detailed error message if any issues or failures occurred during the execution of the pre-installation tasks. |
| `gatewayStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the Gateway component during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `iam` | iam.ResourceMetadata | read-only | IAM resource metadata |
| `iam.displayName` | string | read-only | Resource display name |
| `iam.id` | string (uuid) | read-only | Unique identifier of the resource |
| `iam.state` | iam.ResourceMetadata.StateEnum | read-only | Resource state — one of `EXPIRED`, `IN_CREATION`, `OK`, `SUSPENDED` |
| `iam.tags` | object | read-only | Resource tags. Tags that were internally computed are prefixed with ovh: |
| `iam.urn` | string | read-only | Unique resource name used in policies |
| `sapHanaInstallationStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the SAP HANA installation during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `sapHanaSid` | string | read-only | Describes the System ID (SID) assigned to the SAP HANA instance being installed as part of the pre-installation tasks. |
| `sapSid` | string | read-only | Describes the System ID (SID) assigned to the SAP system being installed as part of the pre-installation tasks. |
| `sapSystemInstallationStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the SAP system installation during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `startTime` | string | read-only | Records the date and time when the pre-installation tasks were initiated. |
| `status` | dedicatedCloud.sap.statusEnum | read-only | Provides an overview of the current overall status of the pre-installation tasks. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `taskId` | string (uuid) | read-only | Uniquely identifies each set of pre-installation tasks. |
| `vmDeploymentStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of virtual machines deployment during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |

```json
[
  {
    "applicationType": "ABAP",
    "applicationVersion": "string",
    "cleanStatus": "FAILURE",
    "deploymentType": "Distributed",
    "endTime": "string",
    "errorMessage": "string",
    "gatewayStatus": "FAILURE",
    "iam": {
      "displayName": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "state": "EXPIRED",
      "tags": {
        "key": "string"
      },
      "urn": "string"
    },
    "sapHanaInstallationStatus": "FAILURE",
    "sapHanaSid": "string",
    "sapSid": "string",
    "sapSystemInstallationStatus": "FAILURE",
    "startTime": "string",
    "status": "FAILURE",
    "taskId": "00000000-0000-0000-0000-000000000000",
    "vmDeploymentStatus": "FAILURE"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/sap" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/sap")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/sap");

print_r($result);
?>
```

## Get a pre-installation task

`GET /1.0/dedicatedCloud/{serviceName}/sap/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/sap-features-hub/#get-dedicatedcloud-servicename-sap-taskid

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:sap/get`

Returns the status of the task and of each step, from virtual machine deployment to SAP installation, with an error message if a step fails.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Domain of the service |
| `taskId` | path | string (uuid) | yes | Task ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicatedCloud.sapWithIAM | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `applicationType` | dedicatedCloud.sap.applicationTypeEnum | read-only | Describes the type of SAP application that is being installed as part of the pre-installation tasks. — one of `ABAP`, `JAVA` |
| `applicationVersion` | string | read-only | Describes the specific version of the SAP application that is being installed during the pre-installation process. |
| `cleanStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current status of the clean-up operations performed as part of the pre-installation tasks. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `deploymentType` | dedicatedCloud.sap.deploymentTypeEnum | read-only | Describes the type of deployment strategy being used for the SAP installation during the pre-installation process. — one of `Distributed`, `High-Availability`, `Standard` |
| `endTime` | string | read-only | Records the date and time when the pre-installation tasks were finished. |
| `errorMessage` | string | read-only | Contains a detailed error message if any issues or failures occurred during the execution of the pre-installation tasks. |
| `gatewayStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the Gateway component during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `iam` | iam.ResourceMetadata | read-only | IAM resource metadata |
| `iam.displayName` | string | read-only | Resource display name |
| `iam.id` | string (uuid) | read-only | Unique identifier of the resource |
| `iam.state` | iam.ResourceMetadata.StateEnum | read-only | Resource state — one of `EXPIRED`, `IN_CREATION`, `OK`, `SUSPENDED` |
| `iam.tags` | object | read-only | Resource tags. Tags that were internally computed are prefixed with ovh: |
| `iam.urn` | string | read-only | Unique resource name used in policies |
| `sapHanaInstallationStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the SAP HANA installation during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `sapHanaSid` | string | read-only | Describes the System ID (SID) assigned to the SAP HANA instance being installed as part of the pre-installation tasks. |
| `sapSid` | string | read-only | Describes the System ID (SID) assigned to the SAP system being installed as part of the pre-installation tasks. |
| `sapSystemInstallationStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of the SAP system installation during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `startTime` | string | read-only | Records the date and time when the pre-installation tasks were initiated. |
| `status` | dedicatedCloud.sap.statusEnum | read-only | Provides an overview of the current overall status of the pre-installation tasks. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |
| `taskId` | string (uuid) | read-only | Uniquely identifies each set of pre-installation tasks. |
| `vmDeploymentStatus` | dedicatedCloud.sap.statusEnum | read-only | Provides the current operational state of virtual machines deployment during the pre-installation process. — one of `FAILURE`, `PENDING`, `RETRY`, `REVOKED`, `STARTED`, `SUCCESS` |

```json
{
  "applicationType": "ABAP",
  "applicationVersion": "string",
  "cleanStatus": "FAILURE",
  "deploymentType": "Distributed",
  "endTime": "string",
  "errorMessage": "string",
  "gatewayStatus": "FAILURE",
  "iam": {
    "displayName": "string",
    "id": "00000000-0000-0000-0000-000000000000",
    "state": "EXPIRED",
    "tags": {
      "key": "string"
    },
    "urn": "string"
  },
  "sapHanaInstallationStatus": "FAILURE",
  "sapHanaSid": "string",
  "sapSid": "string",
  "sapSystemInstallationStatus": "FAILURE",
  "startTime": "string",
  "status": "FAILURE",
  "taskId": "00000000-0000-0000-0000-000000000000",
  "vmDeploymentStatus": "FAILURE"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/sap/{taskId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/dedicatedCloud/{serviceName}/sap/{taskId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/dedicatedCloud/{serviceName}/sap/{taskId}");

print_r($result);
?>
```

## Create a pre-installation task

`POST /1.0/dedicatedCloud/{serviceName}/sap`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/sap-features-hub/#post-dedicatedcloud-servicename-sap

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:sap/create`

Starts a task that deploys the SAP HANA and application server virtual machines in a datacenter of the service, then installs SAP HANA and the SAP system. Only one task can run at a time on the service. To check the parameters without starting a task, use the validate endpoint.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Domain of the service |

### Request body (required)

Type: `dedicatedCloud.sap.params`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `applicationServers` | dedicatedCloud.sap.applicationServers[] | yes | An array containing the configuration details for each SAP Application Server (such as SCS, ERS, PAS, AAS) virtual machine that will be deployed. |
| `applicationServers[].datastoreName` | string | yes | Defines the name of the datastore where the SAP Application server's virtual machine will be stored. |
| `applicationServers[].gateway` | ipv4 | yes | Defines the IPv4 address of the default gateway that the SAP Application server will use to access external networks. |
| `applicationServers[].instanceNumber` | string | yes | Represents the unique instance number assigned to the SAP Application server within the SAP system landscape. |
| `applicationServers[].ipAddress` | ipv4 | yes | Defines the static IPv4 address for the SAP Application server, which must be unique within the specified network. |
| `applicationServers[].memory` | integer | yes | Allocates the amount of RAM (in gigabytes) to be assigned to the SAP Application server for optimal performance. |
| `applicationServers[].name` | string | yes | Defines the hostname of the SAP Application server's virtual machine, which should be unique. |
| `applicationServers[].netmask` | ipv4 | yes | Defines the netmask for the SAP Application server, which defines the network range it belongs to. |
| `applicationServers[].network` | string | yes | Defines the network name to which the SAP Application server will be connected. |
| `applicationServers[].ovaTemplate` | dedicatedCloud.sap.ovaTemplatesEnum | yes | Selects the OVA template that will be used to deploy the SAP Application server. — one of `SLES SLE-15-SP4-Full-x86_64 (BYOL)`, `SLES SLE-15-SP5-Full-x86_64 (BYOL)`, `SLES SLE-15-SP6-Full-x86_64 (BYOL)`, `SLES SLE-15-SP7-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP4-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP5-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP6-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP7-Full-x86_64 (BYOL)` |
| `applicationServers[].role` | dedicatedCloud.sap.rolesEnum | yes | Assigns a specific role to the SAP Application server, based on its intended function within the SAP environment. — one of `CI`, `DI`, `ERS`, `SCS` |
| `applicationServers[].rootPassword` | string (password) | yes | Defines the password for the root user account of the SAP Application server's virtual machine. |
| `applicationServers[].vcpus` | integer | yes | Defines the number of virtual CPUs (vCPUs) that will be allocated to the SAP Application server. |
| `applicationType` | dedicatedCloud.sap.applicationTypeEnum | yes | Selects the type of SAP application that will be installed, such as NetWeaver 7.50 or S/4HANA. — one of `ABAP`, `JAVA` |
| `applicationVersion` | dedicatedCloud.sap.applicationVersionEnum | yes | Selects the specific version of the SAP application that will be deployed. — one of `NetWeaver 7.50`, `S/4HANA 2021`, `S/4HANA 2022`, `S/4HANA 2023` |
| `bucketBackint` | dedicatedCloud.sap.bucket |  | Configuration settings for the storage bucket used by the OVHcloud Backint Agent to store SAP HANA backup files. |
| `bucketBackint.accessKey` | string | yes | A unique alphanumeric string used as part of the authentication process to access the bucket. |
| `bucketBackint.endpoint` | string | yes | The URL where the bucket can be accessed over the internet. |
| `bucketBackint.id` | string | yes | A unique identifier assigned to the bucket. |
| `bucketBackint.secretKey` | string (password) | yes | Confidential string used with access key for bucket authentication. |
| `bucketSources` | dedicatedCloud.sap.bucket | yes | Configuration settings for the storage bucket that contains the necessary SAP installation sources. |
| `bucketSources.accessKey` | string | yes | A unique alphanumeric string used as part of the authentication process to access the bucket. |
| `bucketSources.endpoint` | string | yes | The URL where the bucket can be accessed over the internet. |
| `bucketSources.id` | string | yes | A unique identifier assigned to the bucket. |
| `bucketSources.secretKey` | string (password) | yes | Confidential string used with access key for bucket authentication. |
| `clusterName` | string | yes | A user-defined name for the cluster that will host the SAP environment, usually 'Cluster1'. |
| `datacenterId` | integer | yes | The unique identifier for the datacenter where the SAP environment will be deployed. |
| `deploymentType` | dedicatedCloud.sap.deploymentTypeEnum | yes | Selects the type of SAP deployment, such as Standard, Distributed or High-Availability. — one of `Distributed`, `High-Availability`, `Standard` |
| `domainName` | string | yes | The fully qualified domain name (FQDN) that will be used for the SAP environment. |
| `firewall` | dedicatedCloud.sap.firewall | yes | Configuration settings for the firewall to protect the SAP environment. |
| `firewall.applicationServers` | boolean | yes | Controls the firewall status for the SAP Application servers at the operating system level. Set to 'true' to enable the firewall, or 'false' to disable it. |
| `firewall.centralServices` | boolean | yes | Controls the firewall status for the SAP Central Services server at the operating system level. Set to 'true' to enable the firewall, or 'false' to disable it. |
| `firewall.hanaDatabase` | boolean | yes | Controls the firewall status for the SAP HANA servers at the operating system level. Set to 'true' to enable the firewall, or 'false' to disable it. |
| `hanaServers` | dedicatedCloud.sap.hanaServers[] | yes | An array containing the configuration details for each SAP HANA virtual machine that will be deployed. |
| `hanaServers[].datastoreName` | string | yes | Defines the name of the datastore where the SAP HANA server's virtual machine will be stored. |
| `hanaServers[].gateway` | ipv4 | yes | Defines the IPv4 address of the default gateway that the SAP HANA server will use to access external networks. |
| `hanaServers[].instanceNumber` | string | yes | Represents the unique instance number assigned to the SAP HANA server within the SAP system landscape. |
| `hanaServers[].ipAddress` | ipv4 | yes | Defines the IPv4 address that will be assigned to the SAP HANA server's virtual machine. |
| `hanaServers[].memory` | integer | yes | Allocates the amount of RAM (in gigabytes) to be assigned to the SAP HANA server for optimal performance. |
| `hanaServers[].name` | string | yes | Defines the hostname that will be assigned to the SAP HANA server's virtual machine. |
| `hanaServers[].netmask` | ipv4 | yes | Defines the netmask for the SAP HANA server, which defines the network range it belongs to. |
| `hanaServers[].network` | string | yes | Defines the network name to which the SAP HANA server will be connected. |
| `hanaServers[].ovaTemplate` | dedicatedCloud.sap.ovaTemplatesEnum | yes | Selects the OVA template that will be used to deploy the SAP HANA server. — one of `SLES SLE-15-SP4-Full-x86_64 (BYOL)`, `SLES SLE-15-SP5-Full-x86_64 (BYOL)`, `SLES SLE-15-SP6-Full-x86_64 (BYOL)`, `SLES SLE-15-SP7-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP4-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP5-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP6-Full-x86_64 (BYOL)`, `SLES for SAP SLE-15-SP7-Full-x86_64 (BYOL)` |
| `hanaServers[].rootPassword` | string (password) | yes | Defines the password for the root user account of the SAP HANA server's virtual machine. |
| `hanaServers[].thickDatastorePolicy` | string | yes | Defines the thick provisioning policy that will be applied to the SAP HANA server's storage allocation. |
| `hanaServers[].vcpus` | integer | yes | Defines the number of virtual CPUs (vCPUs) that will be allocated to the SAP HANA server. |
| `logsDataPlatform` | dedicatedCloud.sap.ldp |  | Configuration settings for the Logs Data Platform that will be used to collect and externalize operating system and SAP logs. |
| `logsDataPlatform.certificate` | string (password) | yes | A certificate to authenticate and establish a trusted connection with the entrypoint of the SAP Logs Data Platform. |
| `logsDataPlatform.entrypoint` | string | yes | The specific URL endpoint provided by Logs Data Platform for pushing logs. |
| `osLicense` | string |  | The license key or identifier for the operating system that will be used for the SAP environment. |
| `osUpdate` | boolean | yes | A boolean value indicating whether the operating system should be updated during the pre-installation process. |
| `passwords` | dedicatedCloud.sap.passwords | yes | Configuration settings for the various passwords required for the SAP environment, including database, administrator, and service accounts. |
| `passwords.masterSap` | string (password) | yes | The password for the SAP master account, which is used for installation tasks related to the SAP system. |
| `passwords.masterSapHana` | string (password) | yes | The password for the SAP HANA master account, which is used for installation tasks related to the SAP HANA database. |
| `passwords.sidadm` | string (password) | yes | The password for the sidadm account, which is the system administrator account for the SAP installation. |
| `passwords.system` | string (password) | yes | The password for the SAP HANA SYSTEM account, which is a privileged user account used for managing the SAP HANA database. |
| `serviceName` | string |  | The name of the Hosted Private Cloud service. This field is primarily used by the OVHcloud Manager during the import process. |
| `sids` | dedicatedCloud.sap.sids | yes | Configuration settings for the System IDs (SIDs) that will be used for the SAP environment. |
| `sids.sapHanaSid` | string | yes | A unique alphanumeric identifier assigned to the SAP HANA system. |
| `sids.sapSid` | string | yes | A unique alphanumeric identifier assigned to the SAP system. |
| `systemUsage` | dedicatedCloud.sap.systemUsageEnum | yes | Selects the intended usage of the SAP system, such as custom, development, production or test. — one of `custom`, `development`, `production`, `test` |

```json
{
  "applicationServers": [
    {
      "datastoreName": "string",
      "gateway": "192.0.2.0",
      "instanceNumber": "string",
      "ipAddress": "192.0.2.0",
      "memory": 0,
      "name": "string",
      "netmask": "192.0.2.0",
      "network": "string",
      "ovaTemplate": "SLES SLE-15-SP4-Full-x86_64 (BYOL)",
      "role": "CI",
      "rootPassword": "string",
      "vcpus": 0
    }
  ],
  "applicationType": "ABAP",
  "applicationVersion": "NetWeaver 7.50",
  "bucketBackint": {
    "accessKey": "string",
    "endpoint": "string",
    "id": "string",
    "secretKey": "string"
  },
  "bucketSources": {
    "accessKey": "string",
    "endpoint": "string",
    "id": "string",
    "secretKey": "string"
  },
  "clusterName": "string",
  "datacenterId": 0,
  "deploymentType": "Distributed",
  "domainName": "string",
  "firewall": {
    "applicationServers": true,
    "centralServices": true,
    "hanaDatabase": true
  },
  "hanaServers": [
    {
      "datastoreName": "string",
      "gateway": "192.0.2.0",
      "instanceNumber": "string",
      "ipAddress": "192.0.2.0",
      "memory": 0,
      "name": "string",
      "netmask": "192.0.2.0",
      "network": "string",
      "ovaTemplate": "SLES SLE-15-SP4-Full-x86_64 (BYOL)",
      "rootPassword": "string",
      "thickDatastorePolicy": "string",
      "vcpus": 0
    }
  ],
  "logsDataPlatform": {
    "certificate": "string",
    "entrypoint": "string"
  },
  "osLicense": "string",
  "osUpdate": true,
  "passwords": {
    "masterSap": "string",
    "masterSapHana": "string",
    "sidadm": "string",
  …
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string (uuid) | successful operation |
| 400 | object | Error 400 response |
| 403 | object | Error 403 response |
| 404 | object | Error 404 response |
| 409 | object | Error 409 response |

```json
"00000000-0000-0000-0000-000000000000"
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/sap" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: dedicatedCloud.sap.params
result = client.post("/dedicatedCloud/{serviceName}/sap",
	applicationServers = None, # An array containing the configuration details for each SAP Application Server (such as SCS, ERS, PAS, AAS) virtual machine that will be deployed. (type: array)
	applicationType = None, # Selects the type of SAP application that will be installed, such as NetWeaver 7.50 or S/4HANA. (type: dedicatedCloud.sap.applicationTypeEnum)
	applicationVersion = None, # Selects the specific version of the SAP application that will be deployed. (type: dedicatedCloud.sap.applicationVersionEnum)
	bucketBackint = None, # Configuration settings for the storage bucket used by the OVHcloud Backint Agent to store SAP HANA backup files. (type: dedicatedCloud.sap.bucket)
	bucketSources = None, # Configuration settings for the storage bucket that contains the necessary SAP installation sources. (type: dedicatedCloud.sap.bucket)
	clusterName = None, # A user-defined name for the cluster that will host the SAP environment, usually 'Cluster1'. (type: string)
	datacenterId = None, # The unique identifier for the datacenter where the SAP environment will be deployed. (type: integer)
	deploymentType = None, # Selects the type of SAP deployment, such as Standard, Distributed or High-Availability. (type: dedicatedCloud.sap.deploymentTypeEnum)
	domainName = None, # The fully qualified domain name (FQDN) that will be used for the SAP environment. (type: string)
	firewall = None, # Configuration settings for the firewall to protect the SAP environment. (type: dedicatedCloud.sap.firewall)
	hanaServers = None, # An array containing the configuration details for each SAP HANA virtual machine that will be deployed. (type: array)
	logsDataPlatform = None, # Configuration settings for the Logs Data Platform that will be used to collect and externalize operating system and SAP logs. (type: dedicatedCloud.sap.ldp)
	osLicense = None, # The license key or identifier for the operating system that will be used for the SAP environment. (type: string)
	osUpdate = None, # A boolean value indicating whether the operating system should be updated during the pre-installation process. (type: boolean)
	passwords = None, # Configuration settings for the various passwords required for the SAP environment, including database, administrator, and service accounts. (type: dedicatedCloud.sap.passwords)
	serviceName = None, # The name of the Hosted Private Cloud service. This field is primarily used by the OVHcloud Manager during the import process. (type: string)
	sids = None, # Configuration settings for the System IDs (SIDs) that will be used for the SAP environment. (type: dedicatedCloud.sap.sids)
	systemUsage = None, # Selects the intended usage of the SAP system, such as custom, development, production or test. (type: dedicatedCloud.sap.systemUsageEnum)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: dedicatedCloud.sap.params
$result = $ovh->post("/dedicatedCloud/{serviceName}/sap", array(
	applicationServers => null, // An array containing the configuration details for each SAP Application Server (such as SCS, ERS, PAS, AAS) virtual machine that will be deployed. (type: array)
	applicationType => null, // Selects the type of SAP application that will be installed, such as NetWeaver 7.50 or S/4HANA. (type: dedicatedCloud.sap.applicationTypeEnum)
	applicationVersion => null, // Selects the specific version of the SAP application that will be deployed. (type: dedicatedCloud.sap.applicationVersionEnum)
	bucketBackint => null, // Configuration settings for the storage bucket used by the OVHcloud Backint Agent to store SAP HANA backup files. (type: dedicatedCloud.sap.bucket)
	bucketSources => null, // Configuration settings for the storage bucket that contains the necessary SAP installation sources. (type: dedicatedCloud.sap.bucket)
	clusterName => null, // A user-defined name for the cluster that will host the SAP environment, usually 'Cluster1'. (type: string)
	datacenterId => null, // The unique identifier for the datacenter where the SAP environment will be deployed. (type: integer)
	deploymentType => null, // Selects the type of SAP deployment, such as Standard, Distributed or High-Availability. (type: dedicatedCloud.sap.deploymentTypeEnum)
	domainName => null, // The fully qualified domain name (FQDN) that will be used for the SAP environment. (type: string)
	firewall => null, // Configuration settings for the firewall to protect the SAP environment. (type: dedicatedCloud.sap.firewall)
	hanaServers => null, // An array containing the configuration details for each SAP HANA virtual machine that will be deployed. (type: array)
	logsDataPlatform => null, // Configuration settings for the Logs Data Platform that will be used to collect and externalize operating system and SAP logs. (type: dedicatedCloud.sap.ldp)
	osLicense => null, // The license key or identifier for the operating system that will be used for the SAP environment. (type: string)
	osUpdate => null, // A boolean value indicating whether the operating system should be updated during the pre-installation process. (type: boolean)
	passwords => null, // Configuration settings for the various passwords required for the SAP environment, including database, administrator, and service accounts. (type: dedicatedCloud.sap.passwords)
	serviceName => null, // The name of the Hosted Private Cloud service. This field is primarily used by the OVHcloud Manager during the import process. (type: string)
	sids => null, // Configuration settings for the System IDs (SIDs) that will be used for the SAP environment. (type: dedicatedCloud.sap.sids)
	systemUsage => null, // Selects the intended usage of the SAP system, such as custom, development, production or test. (type: dedicatedCloud.sap.systemUsageEnum)
));

print_r($result);
?>
```

## Delete a pre-installation task

`DELETE /1.0/dedicatedCloud/{serviceName}/sap/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/sap-features-hub/#delete-dedicatedcloud-servicename-sap-taskid

**Status:** Stable production version  
**IAM actions:** `pccVMware:apiovh:sap/delete`

Deletes the task. The virtual machines it deployed are kept.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Domain of the service |
| `taskId` | path | string (uuid) | yes | Task ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/dedicatedCloud/{serviceName}/sap/{taskId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/dedicatedCloud/{serviceName}/sap/{taskId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/dedicatedCloud/{serviceName}/sap/{taskId}");

print_r($result);
?>
```
