# Cloud Service Provider Controller Resource

The API allows you to list, view, create and edit cloud service provider.

### GET /cloud-service-providers

Returns list of cloud service providers list records filtered by specified query parameters.

Request Parameters
name | type | description
--- | --- | ---
direction | query |
filter | query |
nameLike | query |
orderBy | query |
page | query |
size | query |

Response Body
media type | data type | description
--- | --- | ---
application/json | array of CloudServiceProviderListRecord (JSON) | list of cloud service providers list records filtered by specified query parameters

#### Example

##### Request

    GET /cloud-service-providers
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]

### POST /cloud-service-providers

Create a service provider.

Request Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderRequest (JSON) | specify data for new provider

Response Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderCreateResponse (JSON) | details of newly created provider

#### Example

##### Request

    POST /cloud-service-providers
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }

### GET /cloud-service-providers/rbac-contexts

Returns list of cloud service providers for a rbac context

Response Body
media type | data type | description
--- | --- | ---
application/json | array of RbacContextListRecord (JSON) | list of cloud service provider rbac context wrappers

#### Example

##### Request

    GET /cloud-service-providers/rbac-contexts
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]

### DELETE /cloud-service-providers/{guid}

Remove service provider.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for provider (use by vProtect)

#### Example

##### Request

    DELETE /cloud-service-providers/{guid}
    Content-Type: */*

    ...

##### Response

    HTTP/1.1 204 No Content

### GET /cloud-service-providers/{guid}

Get a single service provider.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for service provider (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderDetailsWithoutSecret (JSON) | service provider details

#### Example

##### Request

    GET /cloud-service-providers/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }

### PUT /cloud-service-providers/{guid}

Change provider details.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for provider (use by vProtect)

Request Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderRequest (JSON) | specify provider details to update

#### Example

##### Request

    PUT /cloud-service-providers/{guid}
    Content-Type: application/json

    { }

##### Response

    HTTP/1.1 204 No Content

### PUT /cloud-service-providers/{guid}/password

Change provider clientSecret.

Request Parameters
name | type | description
--- | --- | ---
guid | path | unique identification series of selected M365 provider

Request Body
media type | data type | description
--- | --- | ---
application/json | ChangeCloudServiceProviderPasswordRequest (JSON) | specify provider password to update

#### Example

##### Request

    PUT /cloud-service-providers/{guid}/password
    Content-Type: application/json

    { }

##### Response

    HTTP/1.1 204 No Content

### GET /cloud-service-providers/{guid}/statistics

Returns architecture statistics for M365 provider

Request Parameters
name | type | description | constraints
--- | --- | --- | ---
guid | path | unique identification series of selected M365 provider |
compute-zone | query |  |
from | query |  | long
to | query |  | long

Response Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderStatisticsDetails (JSON) | architecture statistics for M365 provider

#### Example

##### Request

    GET /cloud-service-providers/{guid}/statistics
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }

### GET /cloud-service-providers/{guid}/{clientId}/password

Returns architecture statistics for M365 provider

Request Parameters
name | type | description
--- | --- | ---
clientId | path |
guid | path | unique identification series of selected M365 provider

Response Body
media type | data type | description
--- | --- | ---
application/json | CloudServiceProviderPasswordResponse (JSON) | CloudServiceProvider Application password

#### Example

##### Request

    GET /cloud-service-providers/{guid}/{clientId}/password
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }