openapi: 3.0.0
info:
title: Object Storage Interoperability Services API
version: 1.0.0-oas3
contact:
email: wachen@vmware.com
description: 'This is VMware Cloud Director Object Storage Interoperability Services API. Once storage platform vendor implements REST APIs complying with this specification, Object Storage Extension can integrate with the platform without coding effort.'
paths:
'/api/v1/tenants/{tenantId}':
head:
tags:
- tenant
- required
summary: Check whether the tenant exists
operationId: headTenant
description: |
Operation ID: headTenant
Check whether the tenant exists
parameters:
- in: path
name: tenantId
required: true
description: Tenant ID to check on the platform
schema:
type: string
responses:
'200':
description: The tenant exists
'404':
description: "The tenant doesn't exist"
get:
tags:
- tenant
- optional
summary: Get the tenant
operationId: getTenant
description: |
Operation ID: getTenant
Get the tenant with tenant ID. The cd_tenant_id in the response indicates the mapping between Cloud Direct tenant and platform tenant. "
parameters:
- in: path
name: tenantId
required: true
description: Tenant ID to get the tenant from the platform
schema:
type: string
responses:
'200':
description: The tenant is returned
content:
application/json:
schema:
$ref: '#/components/schemas/OsisTenant'
'404':
description: "The tenant doesn't exist"
'501':
description: The optional API is not implemented
patch:
tags:
- tenant
- required
summary: Update Cloud Director tenand IDs of the platform tenant
operationId: updateTenant
description: |
Operation ID: updateTenant
Update Cloud Director tenand IDs of the platform tenant
parameters:
- in: path
name: tenantId
required: true
description: Tenant ID of the tenant to update
schema:
type: string
responses:
'200':
description: The Cloud Director IDs are updated
content:
application/json:
schema:
$ref: '#/components/schemas/OsisTenant'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OsisTenant'
description: "Cloud Director tenant IDs to update in the platform tenant. Only property 'cd_tenant_ids' takes effect"
required: true
delete:
tags:
- tenant
- optional
summary: Delete a tenant in the platform
operationId: deleteTenant
description: |
Operation ID: deleteTenant
Delete a tenant in the platform
parameters:
- in: path
name: tenantId
required: true
description: Tenant ID of the tenant to delete
schema:
type: string
- in: query
name: purge_data
required: false
description: Purge data when the tenant is deleted
schema:
type: boolean
default: 'false'
responses:
'204':
description: The tenant is deleted
'501':
description: The optional API is not implemented
/api/v1/tenants:
get:
tags:
- tenant
- required
summary: List tenants of platform
operationId: listTenants
description: |
Operation ID: listTenants
List tenants of the platform
parameters:
- in: query
name: offset
description: The start index of tenants to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of tenants to return
schema:
type: integer
format: int64
responses:
'200':
description: Tenants of the platform are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfTenants'
post:
tags:
- tenant
- required
summary: Create a tenant in the platform
operationId: createTenant
description: |
Operation ID: createTenant
Create a tenant in the platform. The platform decides whether to adopt the cd_tenand_id in request body as tenant_id. This means the platform could generate new tenant_id by itself for the new tenant. The tenant_id in request body is ignored.
responses:
'201':
description: A tenant is created
headers:
Location:
description: the new created tenant URI
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/OsisTenant'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OsisTenant'
description: Tenant to create in the platform
required: true
/api/v1/tenants/query:
get:
tags:
- tenant
- required
summary: Query tenants of platform
operationId: queryTenants
description: |
Operation ID: queryTenants
Query tenants of the platform
parameters:
- in: query
name: offset
description: The start index of tenants to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of tenants to return
schema:
type: integer
format: int64
- in: query
name: filter
description: The conditions to query platform tenants
schema:
type: string
example: cd_tenant_id==deb3dcd0-07d9-472e-a535-ef59d082a13c
responses:
'200':
description: Tenants of the platform are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfTenants'
/api/v1/users/query:
get:
tags:
- user
- required
summary: Query users of the platform tenant
operationId: queryUsers
description: |
Operation ID: queryUsers
Query users of the platform tenant
responses:
'200':
description: Users of the platform tenant are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfUsers'
parameters:
- in: query
name: offset
description: The start index of users to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of users to return
schema:
type: integer
format: int64
- in: query
name: filter
description: The conditions to query platform users
schema:
type: string
example: cd_user_id==2480b2b3-7889-46f0-ab64-69b56a9b1e41;user_id==rachelw
'/api/v1/tenants/{tenantId}/users':
post:
tags:
- user
- required
summary: Create a user in the platform tenant
operationId: createUser
description: |
Operation ID: createUser
Create a user in the platform. The platform decides whether to adopt the cd_user_id in request body as canonical ID. This means the platform could generate new user_id by itself for the new user. The user_id in request body is ignored.
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the created user belongs to
schema:
type: string
responses:
'201':
description: A user is created
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
description: User to create in the platform tenant. canonical_user_id is ignored.
required: true
get:
tags:
- user
- required
summary: List users of the platform tenant
description: |
Operation ID: listUsers
List users of the platform tenant
responses:
'200':
description: Users of the platform tenant are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfUsers'
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the listed users belongs to
schema:
type: string
- in: query
name: offset
description: The start index of users to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of users to return
schema:
type: integer
format: int64
operationId: listUsers
'/api/v1/tenants/{tenantId}/users/{userId}':
get:
tags:
- user
- required
summary: Get the user with user ID of the tenant
operationId: getUserWithId
description: |
Operation ID: getUserWithId
Get the user with the user ID in the tenant. The cd_user_id in the response indicates the mapping between Cloud Direct user and platform user.
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of the user to get
schema:
type: string
responses:
'200':
description: The user is returned
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
'404':
description: "The tenant doesn't exist"
head:
tags:
- user
- optional
summary: Check whether the user exists
operationId: headUser
description: |
Operation ID: headUser
Check whether the user exists in the platform tenant
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of the user to check
schema:
type: string
responses:
'200':
description: The user exists
'404':
description: "The user doesn't exist"
'501':
description: The optional API is not implemented
patch:
tags:
- user
- required
summary: Enable or disable status in the tenant
operationId: updateUserStatus
description: |
Operation ID: updateUserStatus
Update status of the user in the platform tenant
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the user to update belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of the user to update
schema:
type: string
responses:
'201':
description: The user status is updated
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
description: "User status to update in the platform tenant. Only property 'active' takes effect"
required: true
delete:
tags:
- user
- required
summary: Delete the user in the platform tenant
operationId: deleteUser
description: |
Operation ID: deleteUser
Delete the user in the platform tenant
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the deleted user belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of the user to delete
schema:
type: string
- in: query
name: purge_data
required: false
description: Purge data when the user is deleted
schema:
type: boolean
default: 'false'
responses:
'204':
description: The user is deleted
'/api/v1/users/{canonicalUserId}':
get:
tags:
- user
- required
summary: Get the user with user canonical ID
operationId: getUserWithCanonicalID
description: |
Operation ID: getUserWithCanonicalID
Get the user with the user canonical ID
parameters:
- in: path
name: canonicalUserId
required: true
description: The canonical ID of the user to get
schema:
type: string
responses:
'200':
description: The user is returned
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUser'
'404':
description: "The tenant doesn't exist"
'/api/v1/s3credentials/query':
get:
tags:
- s3credential
- required
summary: Query S3 credentials of the platform user
operationId: queryCredentials
description: |
Operation ID: queryCredentials
Query S3 credentials of the platform user
responses:
'200':
description: S3 credentials of the platform user are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfS3Credentials'
parameters:
- in: query
name: offset
description: The start index of credentials to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of credentials to return
schema:
type: integer
format: int64
- in: query
name: filter
description: The conditions to query platform users
schema:
type: string
example: user_id==2480b2b3-7889-46f0-ab64-69b56a9b1e41;tenant_id=0083ab1a5c6605c8b985
'/api/v1/tenants/{tenantId}/users/{userId}/s3credentials':
get:
tags:
- s3credential
- required
summary: List S3 credentials of the platform user
operationId: listCredentials
description: |
Operation ID: listCredentials
List S3 credentials of the platform user
responses:
'200':
description: S3 credentials of the platform user are returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfS3Credentials'
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of user which the S3 credenitials belong to
schema:
type: string
- in: query
name: offset
description: The start index of credentials to return
schema:
type: integer
format: int64
- in: query
name: limit
description: Maximum number of credentials to return
schema:
type: integer
format: int64
post:
tags:
- s3credential
- required
summary: Create S3 credential for the platform user
operationId: createCredential
description: |
Operation ID: createCredential
Create S3 credential for the platform user
parameters:
- in: path
name: tenantId
required: true
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: path
name: userId
required: true
description: The ID of the user which the created S3 credential belongs to
schema:
type: string
responses:
'201':
description: S3 credential is created for the user
content:
application/json:
schema:
$ref: '#/components/schemas/OsisS3Credential'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
'/api/v1/s3credentials/{accessKey}':
get:
tags:
- s3credential
- required
summary: Get S3 credential of the platform user
operationId: getCredential
description: |
Operation ID: createCredential
Get S3 credential of the platform user. Parameters tenant_id and tenant_id are always in request; the platform decides whehter to use them.
parameters:
- in: query
name: tenant_id
required: false
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: query
name: user_id
required: false
description: The ID of the user which the S3 credential belongs to
schema:
type: string
- in: path
name: accessKey
description: The access key of the S3 credential to get
required: true
schema:
type: string
responses:
'200':
description: The S3 credenital is returned
content:
application/json:
schema:
$ref: '#/components/schemas/OsisS3Credential'
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties: {}
patch:
tags:
- s3credential
- optional
summary: Enable or disable S3 credential for the platform user
operationId: updateCredentialStatus
description: |
Operation ID: updateCredentialStatus
Enabled or disable S3 credential for the platform user. Parameters tenant_id and tenant_id are always in request; the platform decides whehter to use them.
parameters:
- in: query
name: tenant_id
required: false
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: query
name: user_id
required: false
description: The ID of the user which the status updated S3 credential belongs to
schema:
type: string
- in: path
name: accessKey
description: The access key of the S3 credential to update status
required: true
schema:
type: string
responses:
'200':
description: The status of the S3 credential is updated
content:
application/json:
schema:
$ref: '#/components/schemas/OsisS3Credential'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/OsisError'
'501':
description: The optional API is not implemented
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OsisS3Credential'
description: "The S3 credential containing the status to update. Only property 'active' takes effect"
required: true
delete:
tags:
- s3credential
- optional
summary: Delete the S3 credential of the platform user
operationId: deleteCredential
description: |
Operation ID: deleteCredential
Delete the S3 credential of the platform user. Parameters tenant_id and tenant_id are always in request; the platform decides whehter to use them.
parameters:
- in: query
name: tenant_id
required: false
description: The ID of the tenant which the user belongs to
schema:
type: string
- in: query
name: user_id
required: false
description: The ID of the user which the deleted S3 credential belongs to
schema:
type: string
- in: path
name: accessKey
description: The access key of the S3 credential to delete
required: true
schema:
type: string
responses:
'204':
description: The S3 credential is deleted
'501':
description: The optional API is not implemented
/api/v1/usage:
get:
tags:
- usage
- optional
summary: Get the usage of the platform tenant or user
operationId: getUsage
description: |
Operation ID: getUsage
Get the platform usage of global (without query parameter), tenant (only with tenant_id) or user (with tenant_id and user_id).
parameters:
- in: query
name: tenant_id
description: "The ID of the tenant to get its usage."
schema:
type: string
- in: query
name: user_id
description: "The ID of the user to get its usage."
schema:
type: string
responses:
'200':
description: The usage of the tenant or user is returned
content:
application/json:
schema:
$ref: '#/components/schemas/OsisUsage'
'501':
description: The optional API is not implemented
/api/v1/bucket-list:
get:
tags:
- bucketlist
- optional
summary: Get the bucket list of the platform tenant
operationId: getBucketList
description: |
Operation ID: getBucketList
Get the bucket list of the platform tenant
parameters:
- in: query
name: tenant_id
description: The ID of the tenant to get its bueckt list
required: true
schema:
type: string
- in: query
name: offset
description: The start index of buckets to return
schema:
type: integer
format: int64
- in: query
name: limit
description: The maximum number of buckets to return
schema:
type: integer
format: int64
responses:
'200':
description: The bucket list of the platform tenant is returned
content:
application/json:
schema:
$ref: '#/components/schemas/PageOfBucketMeta'
'501':
description: The optional API is not implemented
/api/v1/bucket-logging-id:
get:
tags:
- bucketloggingid
- optional
summary: Get the bucket logging id of the platform
operationId: getBucketLoggingId
description: |
Operation ID: getBucketLoggingId
Get the bucket logging id of the platform
responses:
'200':
description: The bucket logging id of the platform is returned
content:
application/json:
schema:
type: string
example: '|logging'
'501':
description: The optional API is not implemented
/api/v1/anonymous-user:
get:
tags:
- anonymoususer
- optional
summary: Get the anonymous user id and name of the platform
operationId: getAnonymousUser
description: |
Operation ID: getAnonymousUser
Get the anonymous user id and name of the platform
responses:
'200':
description: The anonymous user of the platform is returned
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: The anonymous user ID.
name:
type: string
description: The anonymous user name.
'501':
description: The optional API is not implemented
/api/v1/console:
get:
tags:
- console
- optional
summary: Get the console URI of the platform or platform tenant
operationId: getConsole
description: |
Operation ID: getConsole
Get the console URI of the platform or platform tenant if tenantId is specified
responses:
'200':
description: The console URI is returned
content:
application/json:
schema:
type: string
example: 'https://endpoint/admin-console?groupId=8c3a25ab-b55e-4d98-82d2-4acdb96595ad&token=00d5e91b0bcd3696ed47&apiToken=rmbpsurwertr'
'501':
description: The optional API is not implemented
parameters:
- in: query
name: tenant_id
description: The ID of the tenant to get its console URI
required: false
schema:
type: string
- in: query
name: lang
description: The language of console page to show
required: false
schema:
type: string
/api/v1/s3capabilities:
get:
tags:
- s3capability
- required
summary: Get S3 capabilities of the platform
operationId: getS3Capabilities
description: |
Operation ID: getS3Capabilities
Get S3 capabilities of the platform
responses:
'200':
description: S3 capabilities of the platform
content:
application/json:
schema:
$ref: '#/components/schemas/OsisS3Capabilities'
/api/info:
get:
summary: Get the REST servcies information
tags:
- info
- required
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Information'
operationId: getInfo
description: |
Operation ID: getInfo
'Get the information of the REST Services, including platform name, OSIS version and etc'
security: []
parameters: []
/api/v1/auth/token:
post:
summary: Refresh JWT access token with refresh token
tags:
- token
- required
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshRequest'
required: false
operationId: refreshToken
description: |
Operation ID: refreshToken
Refresh JWT access token with refresh token. This API is required as it is highly recommended to use API token instead of basic authentication.
security: []
parameters: []
tags:
- name: info
description: Information APIs
- name: tenant
description: Tenant APIs
- name: user
description: User APIs
- name: s3credential
description: S3Credential APIs
- name: s3capability
description: S3Capability APIs
- name: usage
description: Usage APIs
- name: bucketlist
description: Bucket List APIs
- name: region
description: Region APIs
- name: console
description: Console APIs
- name: bucketloggingid
description: Bucket Logging ID API
- name: anonymoususer
description: Anonymous User
- name: required
description: 'Mandatory APIs to integrate with OSE for essential functions, like basic S3 bucket/object CRUD operations'
- name: optional
description: "Optional APIs to integrate with OSE extension platform, including statistic, tenant off-board, etc. If the optional API is not implemented, it is required to add its operationId to Info resource's not_implemented array field"
security:
- basicAuth: []
- bearerAuth: []
servers:
- url: 'https://localhost/osis'
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
RefreshRequest:
type: object
title: refresh request
properties:
refresh_token:
type: string
example: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJNUEcwUlZDRENERFRTUkpKT05KSyIsInNjb3BlcyI6WyJST0xFX1JFRlJFU0hfVE9LRU4iXSwiaXNzIjoiaHR0cDovL2NlcGgub3Npcy5vc2Uudm13YXJlLmNvbSIsImp0aSI6IjZiMGFmMGUwLTI3ZDctNDA2Zi1iM2JhLTkwYTUyZjRmZDJmNyIsImlhdCI6MTU5NjUzMzU5NSwiZXhwIjoxNTk2NTM3MTk1fQ.2i1UWqWs2fgjjP9Z2uWbFJTiZu5fWoey3OOJQNt6Fe3fZbKN5Jbv7INCT4l9lD5lnu_kqEavy_xm8DO_jXjPbA
description: refresh token of OSIS
required:
- refresh_token
RefreshResponse:
type: object
title: refresh response
properties:
access_token:
type: string
example: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJNUEcwUlZDRENERFRTUkpKT05KSyIsInNjb3BlcyI6WyJST0xFX0FETUlOIl0sImlzcyI6Imh0dHA6Ly9jZXBoLm9zaXMub3NlLnZtd2FyZS5jb20iLCJpYXQiOjE1OTY1MzM1OTUsImV4cCI6MTU5NjUzNDQ5NX0.OvUJS0kA745Bo8G9EWb_xOw7FFe6rVDZt9Au0vSPltDEuxcb0fpLPC360D_j5nwpb3ajzub6BMQgJroJGts0zg
description: access token of OSIS
required:
- access_token
OsisTenant:
type: object
title: platform tenant
properties:
name:
type: string
example: ACME
description: tenant name
active:
type: boolean
example: true
description: tenant status
tenant_id:
type: string
example: d290f1ee-6c54-4b01-90e6-d701748f0851
description: tenant id
cd_tenant_ids:
type: array
items:
type: string
example:
- 8daca9a9-5b11-4f63-9c52-953a2ef77739
description: Cloud Director tenant ids
required:
- name
- active
- tenant_id
- cd_tenant_id
OsisUser:
type: object
title: platform user
properties:
user_id:
type: string
example: rachelw
description: user id
canonical_user_id:
type: string
example: 68fb0f20-4a0c-4036-a584-cc3ee421093f
description: canonical user id
tenant_id:
type: string
example: bb8287a9-874e-46d2-abbd-58278e1ac046
description: id of the tenant which the user belongs to
active:
type: boolean
description: user status
username:
type: string
description: username mapped with Cloud Director username
email:
type: string
format: email
description: user email
example: rachelw@acme.com
role:
type: string
enum:
- PROVIDER_ADMIN
- TENANT_ADMIN
- TENANT_USER
- ANONYMOUS
- UNKNOWN
description: user role
cd_user_id:
type: string
example: rachelw
description: Cloud Director user id
cd_tenant_id:
type: string
example: 40b97e3c-c3b1-4251-b7de-e9637324683f
description: id of Cloud Director tenant which the user belongs to
required:
- user_id
- canonical_user_id
- active
- tenant_id
- cd_user_id
- cd_tenant_id
OsisS3Credential:
type: object
title: platform s3 credential
properties:
access_key:
type: string
example: 00e4a3d674aada749f04
description: S3 access key
secret_key:
type: string
example: yz8PIwNjmm2zlHX8m7st6BSKh8PCe7bqAaRGkF5K
description: S3 secret key
active:
type: boolean
example: true
description: S3 credential status
creation_date:
type: string
format: date-time
description: S3 credential creation date
tenant_id:
type: string
description: The ID of the tenant which the S3 credential belongs to
example: acme
user_id:
type: string
description: The ID of the user which the S3 credential belongs to
example: 961515dd-8348-4cac-8780-5edcb8a87b58
username:
type: string
description: The name of the user which the S3 credential belongs to
example: rachelw
cd_user_id:
type: string
example: 2b4d76d7-89fa-45fb-ab3e-3fa3bb268335
description: Cloud Director user id
cd_tenant_id:
type: string
example: 40b97e3c-c3b1-4251-b7de-e9637324683f
description: id of Cloud Director tenant which the user belongs to
required:
- access_key
- secret_key
OsisUsage:
type: object
title: platform usage for tenant or user
properties:
bucket_count:
type: integer
format: int64
example: 532
description: bucket count of tenant or user
object_count:
type: integer
format: int64
example: 298635
description: object count of tenant or user
total_bytes:
type: integer
format: int64
example: 80948230763
description: total storage bytes of tenant or user
available_bytes:
type: integer
format: int64
example: 48193854929
description: available storage bytes of tenant or user
used_bytes:
type: integer
format: int64
example: 32754375834
description: used storage bytes of tenant or user
required:
- bucket_count
- object_count
- total_bytes
- avaialble_bytes
- used_bytes
OsisBucketMeta:
type: object
title: metadata of bucket
properties:
name:
type: string
description: bucket name
creation_date:
type: string
format: date-time
description: bucket creation date
user_id:
type: string
description: user id of bucket owner
required:
- name
- creation_date
- user_id
OsisError:
title: OsisError
type: object
description: a standard error object
properties:
code:
type: string
example: E_BAD_REQUEST
message:
type: string
example: invalid value for the property xyz.
required:
- code
Information:
title: information
type: object
properties:
platform_name:
type: string
example: ceph
description: name of the storage platform
platform_version:
type: string
example: 15.2.3
description: version of the storage platform
api_version:
type: string
example: '1.0'
description: OSIS version the REST services complying with
logo_uri:
type: string
description: uri of the platform logo so that OSE can use it on UI
format: uri
example: 'https://ceph.ose.vmware.com/static/images/ceph.svg'
status:
type: string
enum:
- NORMAL
- WARNING
- ERROR
- UNKNOWN
auth_modes:
type: array
items:
type: string
enum:
- Basic
- Bearer
services:
type: object
additionalProperties:
type: string
example:
iam: 'https://iam.ceph.ose.vmware.com'
description: Supported Services' URL of the storage platform
regions:
type: array
items:
type: string
example: us-west-2
description: 'regions for the storage platform; if it is not appliable for the platform, return default'
storage_classes:
type: array
items:
type: string
example: standard
description: 'storage classes of the storage platforms; if it is not applicable for the platform, return standard'
not_implemented:
type: array
description: the operation id array of optional OSIS APIs which is not implemented
items:
type: string
example:
- getUsage
- getConsole
required:
- platform_name
- api_version
- status
- not_implemented
PageOfTenants:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OsisTenant'
page_info:
$ref: '#/components/schemas/PageInfo'
PageOfUsers:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OsisUser'
page_info:
$ref: '#/components/schemas/PageInfo'
PageOfS3Credentials:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OsisS3Credential'
page_info:
$ref: '#/components/schemas/PageInfo'
PageOfBucketMeta:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OsisBucketMeta'
page_info:
$ref: '#/components/schemas/PageInfo'
PageInfo:
type: object
properties:
limit:
type: integer
format: int64
description: maxium number of the items in each page
offset:
type: integer
format: int64
description: offset of the current page in the whole set of items
total:
type: integer
format: int64
description: total number of the items
required:
- limit
- offset
- total
OsisS3Capabilities:
title: S3Capabilities
type: object
properties:
exclusions:
type: object
additionalProperties:
type: object
properties:
by_params:
type: array
items:
type: string
by_headers:
type: array
items:
type: string
by_payload:
type: array
items:
type: string
description: 'return the S3 API code which is not supported by the storage platform; the API code complies with https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html'