openapi: 3.0.0 info: version: "v1" title: SODA Infrastructure Management API description: SODA Infrastructure Management API for resource monitoring, alerting and management across multiple, heterogeneous storage backend. Currently supporting storage monitoring and alerting. contact: name: SODA Support url: 'https://sodafoundation.io/slack' email: support@sodafoundation.io license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' tags: - name: Storages paths: /v1/storages: get: tags: - Storages description: List all registered storage back ends operationId: GetStorageBackends parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: Comma separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: vendor in: query description: vendor(manufacturer) of the storage. required: false style: form explode: true schema: type: string - name: model in: query description: model of the storage required: false style: form explode: true schema: type: string - name: name in: query description: The storage name. required: false style: form explode: true schema: type: string - name: serial_number in: query description: The storage serial number. required: false style: form explode: true schema: type: string - name: status in: query description: The storage status required: false style: form explode: true schema: type: string enum: - normal - offline - abnormal responses: '200': description: Storage backend list available. content: application/json: schema: type: object required: - storages additionalProperties: true properties: storages: type: array title: The storages schema items: $ref: '#/components/schemas/StorageBackendResponse' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' post: tags: - Storages description: Register a storage device for management. operationId: addStorageBackends requestBody: description: Inventory item to add content: application/json: schema: $ref: '#/components/schemas/StorageBackendRegistry' responses: '200': description: 'Accepted, items added to the infrastructure management' content: application/json: schema: $ref: '#/components/schemas/StorageBackendResponse' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '409': description: An item already exists content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}': get: tags: - Storages description: Get details of a storage device operationId: GetStorageBackendbyID parameters: - name: storage_id in: path description: Database ID created for a storage backend . required: true style: simple explode: false schema: type: string responses: '200': description: Storage backend list available content: application/json: schema: $ref: '#/components/schemas/StorageBackendResponse' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' delete: tags: - Storages description: Unregister an already registered storage backend parameters: - name: storage_id in: path description: Database ID created for a storage backend . required: true style: simple explode: false schema: type: string responses: '202': description: Accepted '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/storages/sync: post: tags: - Storages description: Collect all resources from all registered backend and synchronize with DB. operationId: syncStorageBackends responses: '202': description: 'Accepted, ' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '409': description: An item already exists content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/sync': post: tags: - Storages description: Collect all resources from specified storage backend and synchronize with DB operationId: syncStorage parameters: - name: storage_id in: path description: Database ID created for a storage backend . required: true style: simple explode: false schema: type: string responses: '202': description: 'Accepted, ' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '409': description: An item already exists content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/access-info': get: tags: - Storages description: Get access info of a registered storage backend operationId: GettorageAccessInfobyID parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string responses: '200': description: Storage Access-info available content: application/json: schema: $ref: '#/components/schemas/StorageAccessInfoResponse' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' put: tags: - Storages description: Update a registered storage system access information in Infrastructure management DB. operationId: updateStorageAccessInfobyID parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/StorageBackendRegistryUpdate' responses: '200': description: Storage backend available with updated access information content: application/json: schema: $ref: '#/components/schemas/StorageAccessInfoResponse' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/access-infos': get: tags: - Storages description: Get access info of all registered storages operationId: GetAllStorageAccessInfos responses: '200': description: Storage Access-info available content: application/json: schema: $ref: '#/components/schemas/StorageAccessInfosResponse' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/storage-pools: get: tags: - Storage Pools description: List all storage pools. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The pool name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a storage pool. required: false style: form explode: true schema: type: string - name: native_storage_pool_id in: query description: Actual ID of the storage pool in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: status in: query description: The pool status required: false style: form explode: true schema: type: string enum: - normal - offline - abnormal responses: '200': description: List storage pools query was success content: application/json: schema: type: object required: - storage_pools additionalProperties: true properties: storage_pools: type: array title: the storage pools schema items: $ref: '#/components/schemas/StoragePoolSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storage-pools/{id}': get: tags: - Storage Pools description: Get storage pool detail by pool ID. parameters: - name: id in: path description: Database ID created for a storage pool. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StoragePoolSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/controllers: get: tags: - Controllers description: List all controllers. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The controller name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a controller. required: false style: form explode: true schema: type: string - name: native_controller_id in: query description: Actual ID of the controller in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: status in: query description: The controller status required: false style: form explode: true schema: type: string enum: - normal - offline - unknown responses: '200': description: List controllers query was success content: application/json: schema: type: object required: - controllers additionalProperties: true properties: controllers: type: array title: the controllers schema items: $ref: '#/components/schemas/ControllerSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/controllers/{id}': get: tags: - Controllers description: Get controller detail by controller ID. parameters: - name: id in: path description: Database ID created for a controller. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ControllerSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/ports: get: tags: - Ports description: List all ports. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The port name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a port. required: false style: form explode: true schema: type: string - name: native_port_id in: query description: Actual ID of the port in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: connection_status in: query description: The port connection_status required: false style: form explode: true schema: type: string enum: - connected - disconnected - unknown - name: health_status in: query description: The port health_status required: false style: form explode: true schema: type: string enum: - normal - abnormal - unknown responses: '200': description: List port query was success content: application/json: schema: type: object required: - ports additionalProperties: true properties: ports: type: array title: the port schema items: $ref: '#/components/schemas/PortSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/ports/{id}': get: tags: - Ports description: Get port detail by port ID. parameters: - name: id in: path description: Database ID created for a port. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PortSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/disks': get: tags: - Disks description: List all disks. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The disk name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a disk. required: false style: form explode: true schema: type: string - name: native_disk_id in: query description: Actual ID of the port in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: native_disk_group_id in: query description: Database ID created for a disk group. required: false style: form explode: true schema: type: string - name: status in: query description: The disk status required: false style: form explode: true schema: type: string enum: - normal - offline - abnormal responses: '200': description: List disk query was success content: application/json: schema: type: object required: - disks additionalProperties: true properties: disks: type: array title: the disk schema items: $ref: '#/components/schemas/DiskSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/disks/{id}': get: tags: - Disks description: Get disk detail by disk ID. parameters: - name: id in: path description: Database ID created for a disk. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DiskSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/volumes: get: tags: - Volumes description: List all storage volumes. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The volume name required: false style: form explode: true schema: type: string - name: native_storage_pool_id in: query description: Actual ID of the storage pool in the storage backend. required: false style: form explode: true schema: type: string - name: native_volume_id in: query description: Actual ID created for the volume in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: status in: query description: The volume status required: false style: form explode: true schema: type: string enum: - noraml - offline - abnormal responses: '200': description: List volumes operation was successful content: application/json: schema: type: object required: - volumes additionalProperties: true properties: volumes: type: array items: $ref: '#/components/schemas/VolumeRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/volumes/{id}': get: tags: - Volumes description: Get storage volume detail by volume ID. parameters: - name: id in: path description: Database ID created for a volume. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VolumeRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/filesystems: get: tags: - Filesystems description: List all filesystems. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The filesystem name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a filesystem. required: false style: form explode: true schema: type: string - name: native_filesystem_id in: query description: Actual ID of the filesystem in the storage backend. required: false style: form explode: true schema: type: string - name: native_pool_id in: query description: Pool ID of the filesystem in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: security_mode in: query description: The filesystem security modes required: false style: form explode: true schema: type: string enum: - mixed - native - ntfs - unix - name: status in: query description: The filesystem status required: false style: form explode: true schema: type: string enum: - normal - faulty responses: '200': description: List filesystem query was success content: application/json: schema: type: object required: - filesystems additionalProperties: true properties: filesystems: type: array title: the filesystem schema items: $ref: '#/components/schemas/FilesystemSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/filesystems/{id}': get: tags: - Filesystems description: Get filesystem detail by filesystem ID. parameters: - name: id in: path description: Database ID created for a filesystem. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FilesystemSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/qtrees: get: tags: - Qtrees description: List all qtrees. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The qtree name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a qtree. required: false style: form explode: true schema: type: string - name: native_qtree_id in: query description: Actual ID of the qtree in the storage backend. required: false style: form explode: true schema: type: string - name: native_filesystem_id in: query description: Filesystem ID of the qtree in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: security_mode in: query description: The qtree security modes required: false style: form explode: true schema: type: string enum: - mixed - native - ntfs - unix responses: '200': description: List qtree query was success content: application/json: schema: type: object required: - qtrees additionalProperties: true properties: qtrees: type: array title: the qtree schema items: $ref: '#/components/schemas/QtreeSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/qtrees/{id}': get: tags: - Qtrees description: Get qtree detail by qtree ID. parameters: - name: id in: path description: Database ID created for a qtree. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QtreeSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/quotas: get: tags: - Quotas description: List all quotas. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The quota name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a quota. required: false style: form explode: true schema: type: string - name: native_quota_id in: query description: Actual ID of the quota in the storage backend. required: false style: form explode: true schema: type: string - name: native_filesystem_id in: query description: Filesystem ID of the quota in the storage backend. required: false style: form explode: true schema: type: string - name: native_qtree_id in: query description: Qtree ID of the quota in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: type in: query description: The quota types required: false style: form explode: true schema: type: string enum: - filesystem - tree - user - group responses: '200': description: List quota query was success content: application/json: schema: type: object required: - quotas additionalProperties: true properties: quotas: type: array title: the quota schema items: $ref: '#/components/schemas/QuotaSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/quotas/{id}': get: tags: - Quotas description: Get quota detail by quota ID. parameters: - name: id in: path description: Database ID created for a quota. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' /v1/shares: get: tags: - Shares description: List all shares. parameters: - name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The share name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a share. required: false style: form explode: true schema: type: string - name: native_share_id in: query description: Actual ID of the share in the storage backend. required: false style: form explode: true schema: type: string - name: native_filesystem_id in: query description: Filesystem ID of the share in the storage backend. required: false style: form explode: true schema: type: string - name: native_qtree_id in: query description: Qtree ID of the share in the storage backend. required: false style: form explode: true schema: type: string - name: storage_id in: query description: Database ID created for a storage backend. required: false style: form explode: true schema: type: string - name: protocol in: query description: The share protocol required: false style: form explode: true schema: type: string enum: - cifs - nfs - ftp - hdfs responses: '200': description: List share query was success content: application/json: schema: type: object required: - shares additionalProperties: true properties: shares: type: array title: the share schema items: $ref: '#/components/schemas/ShareSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/shares/{id}': get: tags: - Shares description: Get share detail by share ID. parameters: - name: id in: path description: Database ID created for a share. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ShareSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/snmp-config': get: tags: - SnmpConfig description: >- Get details snmp alert source information configured on behalf of backend devices parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SnmpConfigRespSpec' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' put: tags: - SnmpConfig description: >- Modify snmp alert source information configured on behalf of backend devices operationId: putSnmpConfigInfo parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string requestBody: $ref: '#/components/requestBodies/SnmpConfigUpdateSpec' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SnmpConfigRespSpec' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' delete: tags: - SnmpConfig description: >- Removes snmp alert source information configured on behalf of backend devices parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: {} '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/alerts/{sequence_number}': delete: tags: - Alerts description: Clear the alert for the input alert sequence number parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: sequence_number in: path description: Sequence number which uniquely maps to the trap sent by a backend. required: true style: simple explode: false schema: type: string responses: '200': description: OK content: {} '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '404': description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/alerts/sync': post: tags: - Alerts description: Sync alerts from storage device operationId: syncStorageAlerts parameters: - name: storage_id in: path description: Database ID created for a storage backend . required: true style: simple explode: false schema: type: string requestBody: $ref: '#/components/requestBodies/StorageBackendAlertSync' responses: '200': description: 'Accepted, ' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '409': description: An item already exists content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{id}/capabilities': get: tags: - Performance Monitoring description: | Provides supported capabilities of Infrastructure management by storage configured in delfin deployment. parameters: - name: id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string responses: '200': description: Returns specifications of storage content: application/json: schema: $ref: '#/components/schemas/StorageCapabilitiesResponse' '404': description: The storage does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: Invalid capabilities. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '505': description: Capability feature not supported. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/snmp-configs': get: tags: - Storages description: >- Get all details snmp alert source information configured on behalf of backend devices responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SnmpConfigsRespSpec' '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/storage-host-initiators': get: tags: - Masking views description: List all storage host initiators. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The storage host initiator name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a storage host initiator. required: false style: form explode: true schema: type: string - name: description in: query description: The storage host initiator description required: false style: form explode: true schema: type: string - name: alias in: query description: The storage host initiator alias name required: false style: form explode: true schema: type: string - name: wwn in: query description: The storage host initiator worrld wide name required: false style: form explode: true schema: type: string - name: native_storage_host_initiator_id in: query description: >- Actual ID of the storage host initiator in the storage backend. required: false style: form explode: true schema: type: string - name: native_storage_host_id in: query description: >- Actual ID of the associated storage host in the storage backend if any. required: false style: form explode: true schema: type: string - name: status in: query description: The storage host initiator status required: false style: form explode: true schema: type: string enum: - normal - offline - abnormal - unknown responses: '200': description: List storage host initiators query was success content: application/json: schema: type: object required: - storage_host_initiators additionalProperties: true properties: storage_host_initiators: type: array title: the storage host initiators schema items: $ref: '#/components/schemas/StorageHostInitiatorRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/storage-hosts': get: tags: - Masking views description: List all storage hosts. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The storage host name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a storage host. required: false style: form explode: true schema: type: string - name: description in: query description: The storage host description required: false style: form explode: true schema: type: string - name: native_storage_host_id in: query description: Actual ID of the storage host in the storage backend. required: false style: form explode: true schema: type: string - name: status in: query description: The storage host status required: false style: form explode: true schema: type: string enum: - normal - offline - abnormal - unknown - name: ip_address in: query description: Ip address of the storage host. required: false style: form explode: true schema: type: string - name: os_type in: query description: Operating system of the storage host required: false style: form explode: true schema: type: string enum: - windows - linux responses: '200': description: List storage hosts query was success content: application/json: schema: type: object required: - storage_hosts additionalProperties: true properties: storage_hosts: type: array title: the storage hosts schema items: $ref: '#/components/schemas/StorageHostRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/storage-host-groups': get: tags: - Masking views description: List all storage host groups. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The storage host group name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a storage host group. required: false style: form explode: true schema: type: string - name: description in: query description: The storage host group description required: false style: form explode: true schema: type: string - name: native_storage_host_group_id in: query description: Actual ID of the storage host group in the storage backend. required: false style: form explode: true schema: type: string responses: '200': description: List storage host groups query was success content: application/json: schema: type: object required: - storage_host_groups additionalProperties: true properties: storage_host_groups: type: array title: the storage host group schema items: $ref: '#/components/schemas/StorageHostGroupRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/port-groups': get: tags: - Masking views description: List all port groups. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The port group name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a port group. required: false style: form explode: true schema: type: string - name: description in: query description: The port group description required: false style: form explode: true schema: type: string - name: native_port_group_id in: query description: Actual ID of the port group in the storage backend. required: false style: form explode: true schema: type: string responses: '200': description: List port groups query was success content: application/json: schema: type: object required: - port_groups additionalProperties: true properties: port_groups: type: array title: the port groups schema items: $ref: '#/components/schemas/PortGroupRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/volume-groups': get: tags: - Masking views description: List all volume groups. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The volume group name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a volume group. required: false style: form explode: true schema: type: string - name: description in: query description: The volume group description required: false style: form explode: true schema: type: string - name: native_volume_group_id in: query description: Actual ID of the volume group in the storage backend. required: false style: form explode: true schema: type: string responses: '200': description: List volume groups query was success content: application/json: schema: type: object required: - volume_groups additionalProperties: true properties: volume_groups: type: array title: the volume groups schema items: $ref: '#/components/schemas/VolumeGroupRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '/v1/storages/{storage_id}/masking-views': get: tags: - Masking views description: List all masking views. parameters: - name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string - name: limit in: query description: >- Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 - name: offset in: query description: >- Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sort in: query description: >- Comma-separated list of sort keys and optional sort directions in the form of key:val required: false style: form explode: true schema: type: string example: 'sort=name:desc,id:asc' - name: name in: query description: The masking view name required: false style: form explode: true schema: type: string - name: id in: query description: Database ID created for a masking view. required: false style: form explode: true schema: type: string - name: description in: query description: The masking view description required: false style: form explode: true schema: type: string - name: native_masking_view_id in: query description: Actual ID of the masking view in the storage backend. required: false style: form explode: true schema: type: string - name: native_storage_host_group_id in: query description: >- Actual ID of the storage host group in the storage backend. required: false style: form explode: true schema: type: string - name: native_volume_group_id in: query description: Actual ID of the volume group in the storage backend. required: false style: form explode: true schema: type: string - name: native_port_group_id in: query description: Actual ID of the port group in the storage backend. required: false style: form explode: true schema: type: string - name: native_storage_host_id in: query description: Actual ID of the storage host in the storage backend. required: false style: form explode: true schema: type: string - name: native_volume_id in: query description: Actual ID of the volume in the storage backend. required: false style: form explode: true schema: type: string - name: native_port_id in: query description: Actual ID of the port in the storage backend. required: false style: form explode: true schema: type: string responses: '200': description: List masking views query was success content: application/json: schema: type: object required: - masking_views additionalProperties: true properties: masking_views: type: array title: the masking views schema items: $ref: '#/components/schemas/MaskingViewRespSpec' '401': description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' '500': description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' components: schemas: BaseModel: type: object properties: id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 created_at: type: string format: date-time readOnly: true example: '2017-07-10T14:36:58.014Z' updated_at: type: string format: date-time readOnly: true example: '2017-07-10T14:36:58.014Z' RestAccessInfoRegistry: required: - host - port - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8008" username: type: string example: admin password: type: string SSHAccessInfoRegistry: required: - host - port - username - password - pub_key - pub_key_type type: object properties: host: type: string example: '10.0.0.1' port: type: string example: '22' username: type: string example: admin password: type: string pub_key: type: string example: '73:d8:34:18:70:2a:ae:d8:1c:a5:44:40:ef:50:d0:63' pub_key_type: type: string enum: ['ed25519', 'ecdsa', 'rsa'] CLIAccessInfoRegistry: required: - host - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8888" username: type: string example: admin password: type: string SMISAccessInfoRegistry: required: - host - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "5989" username: type: string example: admin password: type: string namespace: type: string RestAccessInfoUpdate: required: - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8008" username: type: string example: admin password: type: string SSHAccessInfoUpdate: required: - username - password type: object properties: host: type: string example: '10.0.0.1' port: type: string example: '22' username: type: string example: admin password: type: string pub_key: type: string example: '73:d8:34:18:70:2a:ae:d8:1c:a5:44:40:ef:50:d0:63' pub_key_type: type: string enum: ['ed25519', 'ecdsa', 'rsa'] CLIAccessInfoUpdate: required: - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8888" username: type: string example: admin password: type: string SMISAccessInfoUpdate: required: - username - password type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "5989" username: type: string example: admin password: type: string namespace: type: string RestAccessInfoResponse: required: - host - port - username type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8008" username: type: string example: admin password: type: string SSHAccessInfoResponse: required: - host - port - username type: object properties: host: type: string example: '10.0.0.1' port: type: string example: '22' username: type: string example: admin password: type: string pub_key: type: string example: '73:d8:34:18:70:2a:ae:d8:1c:a5:44:40:ef:50:d0:63' pub_key_type: type: string enum: ['ed25519', 'ecdsa', 'rsa'] CLIAccessInfoResponse: required: - host - port - username type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8008" username: type: string example: admin password: type: string SMISAccessInfoResponse: required: - host - port - username - namespace type: object properties: host: type: string example: 10.0.0.1 port: type: string example: "8008" username: type: string example: admin password: type: string namespace: type: string StorageBackendRegistry: required: - model - vendor anyOf: - $ref: '#/components/schemas/RestAccessInfoRegistry' - $ref: '#/components/schemas/SSHAccessInfoRegistry' - $ref: '#/components/schemas/CLIAccessInfoRegistry' - $ref: '#/components/schemas/SMISAccessInfoRegistry' type: object properties: name: type: string example: EMC-VMAX-123456 description: type: string example: VMAX storage lab1 vendor: type: string example: dellemc model: type: string example: vmax rest: $ref: '#/components/schemas/RestAccessInfoRegistry' ssh: $ref: '#/components/schemas/SSHAccessInfoRegistry' cli: $ref: '#/components/schemas/CLIAccessInfoRegistry' smis: $ref: '#/components/schemas/SMISAccessInfoRegistry' extra_attributes: type: object additionalProperties: type: string example: array_id: 00002554321 StorageBackendRegistryUpdate: anyOf: - $ref: '#/components/schemas/RestAccessInfoUpdate' - $ref: '#/components/schemas/SSHAccessInfoUpdate' - $ref: '#/components/schemas/CLIAccessInfoUpdate' - $ref: '#/components/schemas/SMISAccessInfoUpdate' type: object properties: rest: $ref: '#/components/schemas/RestAccessInfoUpdate' ssh: $ref: '#/components/schemas/SSHAccessInfoUpdate' cli: $ref: '#/components/schemas/CLIAccessInfoUpdate' smis: $ref: '#/components/schemas/SMISAccessInfoUpdate' extra_attributes: type: object additionalProperties: type: string example: controller1: string ip1: string shhKeyPath: string StorageBackendResponse: type: object properties: id: type: string name: type: string example: EMC-VMAX-123456 description: type: string example: VMAX storage lab1 vendor: type: string example: Dell EMC model: type: string example: VMAX250F status: type: string example: normal firmware: type: string example: 5978.278 serial_number: type: string example: '0002004355' location: type: string created_at: type: string updated_at: type: string sync_status: type: string enum: - SYNCED - SYNCING total_capacity: type: integer format: int64 used_capacity: type: integer format: int64 free_capacity: type: integer format: int64 StorageAccessInfoResponse: type: object properties: id: type: string rest: $ref: '#/components/schemas/RestAccessInfoResponse' ssh: $ref: '#/components/schemas/SSHAccessInfoResponse' cli: $ref: '#/components/schemas/CLIAccessInfoResponse' smis: $ref: '#/components/schemas/SMISAccessInfoResponse' vendor: type: string example: dellemc model: type: string example: vmax extra_attributes: type: object additionalProperties: type: string example: array_id: string StorageAccessInfosResponse: description: Response for all access infos configuration. type: object properties: access_infos: type: array description: the list of access info items: $ref: '#/components/schemas/StorageAccessInfoResponse' StoragePoolSpec: description: >- A storage pool is disocovered and updated by task manager Each pool can be regarded as a physical storage pool or a virtual storage pool. It is a logical and atomic pool and can be abstracted from any storage platform. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_storage_pool_id: type: string readOnly: true example: SRP_1 storage_type: type: string enum: - block - file - unified description: type: string status: type: string enum: - normal - offline - abnormal total_capacity: type: integer format: int64 used_capacity: type: integer format: int64 free_capacity: type: integer format: int64 ControllerSpec: description: >- A controller is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_controller_id: type: string readOnly: true example: Controller_A soft_version: type: string location: type: string status: type: string enum: - normal - offline - unknown cpu_info: type: string memory_size: type: integer format: int64 PortSpec: description: >- A port is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_port_id: type: string readOnly: true example: Port_A native_parent_id: type: string readOnly: true example: Controller_A speed: type: integer max_speed: type: integer location: type: string connection_status: type: string enum: - connected - disconnected - unknown health_status: type: string enum: - normal - abnormal - unknown type: type: string enum: - fc - iscsi - ficon - fcoe - eth - sas - ib - other logical_type: type: string enum: - frontend - backend - service - management - internal - maintenance - interconnect - other wwn: type: string mac_address: type: string ipv4: type: string ipv4_mask: type: string ipv6: type: string ipv6_mask: type: string DiskSpec: description: >- A disk is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_disk_id: type: string readOnly: true example: Disk_A serial_number: type: string readOnly: true example: SN00112233 manufacturer: type: string model: type: string firmware: type: string speed: type: integer capacity: type: integer location: type: string status: type: string enum: - normal - offline - abnormal physical_type: type: string enum: - sata - sas - ssd - nl-sas - unknown logical_type: type: string enum: - free - member - hotspare - cache health_score: type: integer native_disk_group_id: type: string FilesystemSpec: description: >- A filesystem is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_filesystem_id: type: string readOnly: true example: Filesystem_A native_pool_id: type: string readOnly: true example: Pool_A total_capacity: type: integer used_capacity: type: integer free_capacity: type: integer status: type: string enum: - normal - faulty worm: type: string enum: - non_worm - audit_log - compliance - enterprise type: type: string enum: - thick - thin deduplicated: type: boolean compressed: type: boolean security_mode: type: string enum: - mixed - native - ntfs - unix QtreeSpec: description: >- A qtree is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_qtree_id: type: string readOnly: true example: Qtree_A native_filesystem_id: type: string readOnly: true example: Filesystem_A path: type: string security_mode: type: string enum: - mixed - native - ntfs - unix QuotaSpec: description: >- A quota is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name - type type: object properties: id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_quota_id: type: string readOnly: true example: Quota_A name: type: string type: type: string enum: - filesystem - tree - user - group storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_filesystem_id: type: string readOnly: true example: Filesystem_A native_qtree_id: type: string readOnly: true example: Qtree_A capacity_hard_limit: type: integer format: int64 example: 100 capacity_soft_limit: type: integer format: int64 example: 80 file_hard_limit: type: integer format: int64 example: 10 file_soft_limit: type: integer format: int64 example: 8 used_capacity: type: integer format: int64 example: 100 file_count: type: integer format: int64 example: 10 user_group_name: type: string ShareSpec: description: >- A share is discovered and updated by task manager. allOf: - $ref: '#/components/schemas/BaseModel' - required: - id - name type: object properties: name: type: string id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_share_id: type: string readOnly: true example: Share_A native_filesystem_id: type: string readOnly: true example: Filesystem_A native_qtree_id: type: string protocol: type: string enum: - cifs - nfs - ftp - hdfs path: type: string VolumeRespSpec: description: Volume is an device created by storage service, it can be attached to physical machine or virtual machine instance. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string status: type: string enum: - available - error storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 total_capacity: type: integer format: int64 example: 2 used_capacity: type: integer format: int64 example: 2 free_capacity: type: integer format: int64 example: 2 compressed: type: boolean example: false deduplicated: type: boolean example: false type : type: string enum: - thick - thin native_volume_id: type: string wwn: type: string native_storage_pool_id: type: string SnmpConfigUpdateSpec: required: - host - version type: object properties: version: type: string description: SNMP version. Should be mandatorily set by user example: SNMPV2C enum: - SNMPV2C - SNMPV3 community_string: type: string description: Community string. This should be filled if version is V2C username: type: string description: SNMP V3 usm username. This should be filled if version is V3 engine_id: type: string description: >- Engind ID of the device which will be sending the traps. This should be filled if version is V3 security_level: type: string description: Security level for the user. This should be filled if version is V3 example: noAuthnoPriv enum: - noAuthnoPriv - authNoPriv - authPriv auth_protocol: type: string description: >- Authentication protocol to be selected. This should be filled if authNoPriv or authPriv is set as security_level example: MD5 enum: - MD5 - SHA auth_key: type: string description: >- Authentication key. This should be filled if authNoPriv or authPriv is set privacy_protocol: type: string description: >- Privacy or encryption protocol to be selected. This should be filled if authPriv is set as security_level example: DES enum: - 3DES - DES - AES privacy_key: type: string description: >- Privacy or encryption password. This should be filled if authPriv is set as security_level host: type: string example: 10.0.0.1 context_name: type: string description: Context name of the alert source example: "New Context" retry_num: type: integer description: >- Maximum number of retries while connecting to alert source By default, set to 1 example: 2 expiration: type: integer description: >- Expiration time (in sec) for one alert source connect request By default, set to 2 example: 60 port: type: integer description: >- Port for connecting to alert source By default, set to 161 example: 20162 description: SNMP alert source configuration attributes. SnmpConfigRespSpec: description: Response for snmp alert source configuration. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: version: type: string description: SNMP version. Should be mandatorily set by user example: SNMPV2C enum: - SNMPV2C - SNMPV3 community_string: type: string description: Community string. This should be filled ig version is V2C username: type: string description: SNMP V3 usm username. This should be filled ig version is V3 engine_id: type: string description: Engind ID of the device which will be sending the traps security_level: type: string description: Security level for the user example: noAuthnoPriv enum: - noAuthnoPriv - authNoPriv - authPriv auth_protocol: type: string description: >- Authentication protocol to be selected. This should be filled if authNoPriv or authPriv is set as security_level example: MD5 enum: - MD5 - SHA auth_key: type: string description: >- Authentication key. This should be filled if authNoPriv or authPriv is set privacy_protocol: type: string description: >- Privacy or encryption protocol to be selected. This should be filled if authPriv is set as security_level example: DES enum: - 3DES - DES - AES privacy_key: type: string description: >- Privacy or encryption password. This should be filled if authPriv is set as security_level host: type: string description: All alert source ips of the device example: 10.0.0.1,127.0.0.1 context_name: type: string description: Context name of the alert source example: "New Context" retry_num: type: integer description: >- Maximum number of retries while connecting to alert source By default, set to 1 example: 2 expiration: type: integer description: >- Expiration time (in sec) for one alert source connect request By default, set to 2 example: 60 port: type: integer description: >- Port for connecting to alert source By default, set to 161 example: 20162 SnmpConfigsRespSpec: description: Response for all snmp alert source configuration. type: object properties: snmp_configs: type: array description: the list of snmp configs items: $ref: '#/components/schemas/SnmpConfigRespSpec' StorageHostInitiatorRespSpec: description: >- Storage host initiator allows a host to gain access to the storage array, It may or may not have been attached to storage host. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true example: "storage host initiator" alias: type: string readOnly: true example: "storage host initiator" wwn: type: string readOnly: true example: "storage host initiator1" storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_storage_host_initiator_id: type: string readOnly: true description: >- Actual ID of the storage host initiator in the storage backend. example: storage_host_initiator_0 native_storage_host_id: type: string readOnly: true description: Actual ID of the storage host in the storage backend. example: storage_host_0 status: type: string readOnly: true enum: - normal - offline - abnormal - unknown StorageHostRespSpec: description: >- Storage host is a consumer of volume from storage. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_storage_host_id: type: string readOnly: true description: Actual ID of the storage host in the storage backend. example: storage_host_0 status: type: string readOnly: true enum: - normal - offline - abnormal - unknown ip_address: type: string readOnly: true description: Ip address of the storage host. example: "192.168.1.4" os_type: type: string readOnly: true description: Operating system of the storage host. enum: - windows - linux storage_host_initiators: type: array items: type: string readOnly: true description: List of storage host initiator native ids. StorageHostGroupRespSpec: description: >- Storage host group is a consumer of volume from storage. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_storage_host_group_id: type: string readOnly: true description: Actual ID of the storage host group in the storage backend. example: storage_host_group0 storage_hosts: type: array items: type: string readOnly: true description: List of storage host native ids. PortGroupRespSpec: description: >- Port group is collection of ports from storage. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_port_group_id: type: string readOnly: true description: Actual ID of the port group in the storage backend. example: port_group_0 ports: type: array items: type: string readOnly: true description: List of ports native ids. VolumeGroupRespSpec: description: >- Volume group is collection of volumes from storage. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_volume_group_id: type: string readOnly: true description: Actual ID of the volume group in the storage backend. example: volume_group_0 volumes: type: array items: type: string readOnly: true description: List of volumes native ids. MaskingViewRespSpec: description: >- Masking view is and object which shows the path from host and lun. allOf: - $ref: '#/components/schemas/BaseModel' - type: object properties: name: type: string description: type: string readOnly: true storage_id: type: string readOnly: true example: 084bf71e-a102-11e7-88a8-e31fe6d52248 native_masking_view_id: type: string readOnly: true description: Actual ID of the masking view in the storage backend. example: masking_view_0 native_storage_host_group_id: type: string readOnly: true description: >- Actual ID of the storage host group in the storage backend. example: storage_host_group_0 native_volume_group_id: type: string readOnly: true description: Actual ID of the volume group in the storage backend. example: volume_group_0 native_port_group_id: type: string readOnly: true description: Actual ID of the port group in the storage backend. example: port_group_0 native_storage_host_id: type: string readOnly: true description: Actual ID of the storage host in the storage backend. example: storage_host_0 native_volume_id: type: string readOnly: true description: Actual ID of the volume in the storage backend. example: volume_0 native_port_id: type: string readOnly: true description: Actual ID of the port in the storage backend. example: port_0 StorageBackendAlertSync: type: object properties: begin_time: type: integer format: int64 Start time(in milliseconds) for alert sync. It is optional. If not provided, alerts are fetched without filtering start time example: 13577777777777766 end_time: type: integer format: int64 description: >- End time(in milliseconds) for alert sync. It is optional. If not provided, alerts are fetched without filtering end time example: 13577777777777777 ErrorSpec: required: - error_code - error_msg - error_args type: object properties: error_code: type: string error_msg: type: string error_args: type: array items: type: string description: >- Detailed HTTP error response, which consists of a HTTP status code, and a custom error message unique for each failure case. StorageCapabilitiesResponse: type: object required: - metadata - spec properties: metadata: type: object properties: model: type: string description: Name of the supported storage (driver) example: VMAX250F vendor: type: string description: Name of the vendor example: Dell EMC spec: type: object required: - is_historic properties: is_historic: type: boolean example: true description: Set true during storage driver registration if driver support fetching historic metrics. This enable internal performance framework to either call driver interface to pull real time metrics or historic time series metrics. resource_metrics: $ref: '#/components/schemas/ResourceMetrics' ResourceMetrics: type: object description: Map of resources and supported metrics of respective resources for storage (driver) additionalProperties: type: array items: type: object description: list of metrics with supported Units and its description properties: unit: type: string description: supported metric unit description: type: string description: storage specific desctiption for respective metric example: storagePool: - throughput: unit: MB/s description: Represents how much data is successfully transferred in MB/s - readThroughput: unit: MB/s description: Represents how much data read is successfully transferred in MB/s - readRequests: unit: IOPS description: Read requests per second responses: HTTPStatus400: description: BadRequest content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' HTTPStatus401: description: NotAuthorized content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' HTTPStatus403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' HTTPStatus404: description: The resource does not exist content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' HTTPStatus409: description: An item already exists content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' HTTPStatus500: description: An unexpected error occured. content: application/json: schema: $ref: '#/components/schemas/ErrorSpec' parameters: storage_id: name: storage_id in: path description: Database ID created for a storage backend. required: true style: simple explode: false schema: type: string native_storage_pool_id: name: native_storage_pool_id in: path description: Actual ID of the storage pool in backend. required: true style: simple explode: false schema: type: string native_volume_id: name: native_volume_id in: path description: Actual ID of the volume in backend. required: true style: simple explode: false schema: type: string limit: name: limit in: query description: Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. required: false style: form explode: true schema: minimum: 1 type: integer format: int32 offset: name: offset in: query description: Used in conjunction with limit to return a slice of items. offset is where to start in the list. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - desc sequence_number: name: sequence_number in: path description: Sequence number which uniquely maps to the trap sent by a backend. required: true style: simple explode: false schema: type: string requestBodies: SnmpConfigUpdateSpec: content: application/json: schema: $ref: '#/components/schemas/SnmpConfigUpdateSpec' StorageBackendAlertSync: content: application/json: schema: $ref: '#/components/schemas/StorageBackendAlertSync'