diff --git a/v2/.openapi-generator/FILES b/v2/.openapi-generator/FILES index 1193237..229a70d 100644 --- a/v2/.openapi-generator/FILES +++ b/v2/.openapi-generator/FILES @@ -6,6 +6,8 @@ api_default.go client.go configuration.go docs/AcceptedMessage.md +docs/AttachNfsVolumeData.md +docs/AttachType.md docs/AttachVolumeData.md docs/AuthUserData.md docs/CapacityStats.md @@ -25,6 +27,13 @@ docs/MasterDeploymentInfo.md docs/MasterDeploymentInfoAllOf.md docs/MasterHealth.md docs/Namespace.md +docs/NfsAcl.md +docs/NfsAclIdentity.md +docs/NfsAclSquashConfig.md +docs/NfsConfig.md +docs/NfsExportConfig.md +docs/NfsVolumeExports.md +docs/NfsVolumeMountEndpoint.md docs/Node.md docs/NodeHealth.md docs/PoliciesIdSpecs.md @@ -56,6 +65,8 @@ go.sum model__policies__id__specs.go model__policies_specs.go model_accepted_message.go +model_attach_nfs_volume_data.go +model_attach_type.go model_attach_volume_data.go model_auth_user_data.go model_capacity_stats.go @@ -74,6 +85,13 @@ model_master_deployment_info.go model_master_deployment_info_all_of.go model_master_health.go model_namespace.go +model_nfs_acl.go +model_nfs_acl_identity.go +model_nfs_acl_squash_config.go +model_nfs_config.go +model_nfs_export_config.go +model_nfs_volume_exports.go +model_nfs_volume_mount_endpoint.go model_node.go model_node_health.go model_policy_group.go diff --git a/v2/README.md b/v2/README.md index f34eda3..7276ada 100644 --- a/v2/README.md +++ b/v2/README.md @@ -5,7 +5,7 @@ No description provided (generated by Openapi Generator https://github.com/opena ## Overview This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client. -- API version: 2.2.0 +- API version: 2.3.0 - Package version: 2.2.0 - Build package: org.openapitools.codegen.languages.GoClientCodegen For more information, please visit [https://storageos.com](https://storageos.com) @@ -33,6 +33,7 @@ All URIs are relative to *http://localhost/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**AttachNFSVolume**](docs/DefaultApi.md#attachnfsvolume) | **Post** /namespaces/{namespaceID}/volumes/{id}/nfs/attach | attach and share the volume using NFS *DefaultApi* | [**AttachVolume**](docs/DefaultApi.md#attachvolume) | **Post** /namespaces/{namespaceID}/volumes/{id}/attach | Attach a volume to the given node *DefaultApi* | [**AuthenticateUser**](docs/DefaultApi.md#authenticateuser) | **Post** /auth/login | Authenticate a user *DefaultApi* | [**CreateNamespace**](docs/DefaultApi.md#createnamespace) | **Post** /namespaces | Create a new namespace @@ -69,6 +70,8 @@ Class | Method | HTTP request | Description *DefaultApi* | [**UpdateAuthenticatedUser**](docs/DefaultApi.md#updateauthenticateduser) | **Put** /users/self | Update the authenticated user's information *DefaultApi* | [**UpdateCluster**](docs/DefaultApi.md#updatecluster) | **Put** /cluster | Update the cluster's global configuration settings *DefaultApi* | [**UpdateLicence**](docs/DefaultApi.md#updatelicence) | **Put** /cluster/licence | Update the licence global configuration settings +*DefaultApi* | [**UpdateNFSVolumeExports**](docs/DefaultApi.md#updatenfsvolumeexports) | **Put** /namespaces/{namespaceID}/volumes/{id}/nfs/export-config | Update an nfs volume's export configuration +*DefaultApi* | [**UpdateNFSVolumeMountEndpoint**](docs/DefaultApi.md#updatenfsvolumemountendpoint) | **Put** /namespaces/{namespaceID}/volumes/{id}/nfs/mount-endpoint | Update an nfs volume's mount endpoint *DefaultApi* | [**UpdateNamespace**](docs/DefaultApi.md#updatenamespace) | **Put** /namespaces/{id} | Update a namespace *DefaultApi* | [**UpdateNode**](docs/DefaultApi.md#updatenode) | **Put** /nodes/{id} | Update a node *DefaultApi* | [**UpdatePolicyGroup**](docs/DefaultApi.md#updatepolicygroup) | **Put** /policies/{id} | Update a policy group @@ -79,6 +82,8 @@ Class | Method | HTTP request | Description ## Documentation For Models - [AcceptedMessage](docs/AcceptedMessage.md) + - [AttachNfsVolumeData](docs/AttachNfsVolumeData.md) + - [AttachType](docs/AttachType.md) - [AttachVolumeData](docs/AttachVolumeData.md) - [AuthUserData](docs/AuthUserData.md) - [CapacityStats](docs/CapacityStats.md) @@ -97,6 +102,13 @@ Class | Method | HTTP request | Description - [MasterDeploymentInfoAllOf](docs/MasterDeploymentInfoAllOf.md) - [MasterHealth](docs/MasterHealth.md) - [Namespace](docs/Namespace.md) + - [NfsAcl](docs/NfsAcl.md) + - [NfsAclIdentity](docs/NfsAclIdentity.md) + - [NfsAclSquashConfig](docs/NfsAclSquashConfig.md) + - [NfsConfig](docs/NfsConfig.md) + - [NfsExportConfig](docs/NfsExportConfig.md) + - [NfsVolumeExports](docs/NfsVolumeExports.md) + - [NfsVolumeMountEndpoint](docs/NfsVolumeMountEndpoint.md) - [Node](docs/Node.md) - [NodeHealth](docs/NodeHealth.md) - [PoliciesIdSpecs](docs/PoliciesIdSpecs.md) diff --git a/v2/api/openapi.yaml b/v2/api/openapi.yaml index fce3adc..45a9e5f 100644 --- a/v2/api/openapi.yaml +++ b/v2/api/openapi.yaml @@ -5,7 +5,7 @@ info: name: StorageOS url: https://storageos.com title: StorageOS API - version: 2.2.0 + version: 2.3.0 externalDocs: description: The latest StorageOS user documentation url: https://docs.storageos.com/ @@ -2578,7 +2578,7 @@ paths: schema: $ref: '#/components/schemas/Error' description: | - Available storage is not enough to handle the request. + Available storage is not enough to handle the request or target node has reached maximum number of attached volumes. security: - jwt: [] summary: Create a new Volume in the specified namespace @@ -3241,9 +3241,435 @@ paths: description: | The request caused an internal server error and should be retried. Check the health of the node/cluster and if the error persists, contact support. + "507": + content: + application/json: + example: + error: insufficient storage capacity available + schema: + $ref: '#/components/schemas/Error' + description: | + Available storage is not enough to handle the request or target node has reached maximum number of attached volumes. security: - jwt: [] summary: Attach a volume to the given node + /namespaces/{namespaceID}/volumes/{id}/nfs/attach: + post: + description: | + Attach the given volume as an NFS volume. + If no export configuration has been set via the /nfs/export-config endpoint, the nfs service will start with defaults settings (sharing the volume at its root). + operationId: attachNFSVolume + parameters: + - description: ID of a Namespace + explode: false + in: path + name: namespaceID + required: true + schema: + $ref: '#/components/schemas/NamespaceID' + style: simple + - description: ID of a Volume + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/VolumeID' + style: simple + - description: | + If set to true this value indicates that the user wants to ignore entity version constraints, thereby "forcing" the operation. + explode: true + in: query + name: ignore-version + required: false + schema: + $ref: '#/components/schemas/IgnoreVersion' + style: form + - description: | + Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. + The URL parameter value overrides the "async-max" header value, if any. + The value of this header defines the timeout duration for the request, it must be set to a valid duration string. + A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + We reject negative or nil duration values. + explode: true + in: query + name: async-max + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/AttachNFSVolumeData' + content: + application/json: + schema: + properties: + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: AttachNFSVolumeData + type: object + description: NFS volume configuration. The version is the corresponding volume's + version. + required: true + responses: + "200": + description: The volume was successfully attached. + "400": + content: + application/json: + example: + error: a short description of the validation failure + schema: + $ref: '#/components/schemas/Error' + description: The request does not conform to the API specification. + "401": + content: + application/json: + example: + error: authentication required + schema: + $ref: '#/components/schemas/Error' + description: | + The requested endpoint requires authentication - you must log in first. + If attempting to log in, your credentials were not recognised. + "403": + content: + application/json: + example: + error: unauthorised + schema: + $ref: '#/components/schemas/Error' + description: | + The authenticated user does not have permission to perform the requested action. + "404": + content: + application/json: + example: + error: not found + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced resource does not exist. + "409": + content: + application/json: + example: + error: in use + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced entity is currently in use. + "412": + content: + application/json: + example: + error: attempting to write stale object + schema: + $ref: '#/components/schemas/Error' + description: | + The entity to be wrote has been concurrently updated by another request - the submitted entity data has been replaced. + The caller should fetch the entity again, check the actions are still required and resubmit the request with the new entity version field. + "422": + content: + application/json: + example: + error: invalid state for operation (currently "deleted") + schema: + $ref: '#/components/schemas/Error' + description: | + An action was requested that cannot be performed on the entity in it's current state. + As an example, this error might be returned when trying to delete a currently mounted volume. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: | + The request caused an internal server error and should be retried. + Check the health of the node/cluster and if the error persists, contact support. + security: + - jwt: [] + summary: attach and share the volume using NFS + /namespaces/{namespaceID}/volumes/{id}/nfs/mount-endpoint: + put: + description: | + Update the NFS volume's mount endpoint + operationId: updateNFSVolumeMountEndpoint + parameters: + - description: ID of a Namespace + explode: false + in: path + name: namespaceID + required: true + schema: + $ref: '#/components/schemas/NamespaceID' + style: simple + - description: ID of a Volume + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/VolumeID' + style: simple + - description: | + If set to true this value indicates that the user wants to ignore entity version constraints, thereby "forcing" the operation. + explode: true + in: query + name: ignore-version + required: false + schema: + $ref: '#/components/schemas/IgnoreVersion' + style: form + - description: | + Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. + The URL parameter value overrides the "async-max" header value, if any. + The value of this header defines the timeout duration for the request, it must be set to a valid duration string. + A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + We reject negative or nil duration values. + explode: true + in: query + name: async-max + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/NFSVolumeMountEndpoint' + content: + application/json: + schema: + properties: + mountEndpoint: + default: "" + description: | + The address to which the NFS server is bound. + type: string + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: NFSVolumeMountEndpoint + type: object + description: | + Update an existing NFS volume's mount endpoint + required: true + responses: + "200": + description: The volume's mount endpoint was successfully updated. + "400": + content: + application/json: + example: + error: a short description of the validation failure + schema: + $ref: '#/components/schemas/Error' + description: The request does not conform to the API specification. + "401": + content: + application/json: + example: + error: authentication required + schema: + $ref: '#/components/schemas/Error' + description: | + The requested endpoint requires authentication - you must log in first. + If attempting to log in, your credentials were not recognised. + "403": + content: + application/json: + example: + error: unauthorised + schema: + $ref: '#/components/schemas/Error' + description: | + The authenticated user does not have permission to perform the requested action. + "404": + content: + application/json: + example: + error: not found + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced resource does not exist. + "409": + content: + application/json: + example: + error: in use + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced entity is currently in use. + "412": + content: + application/json: + example: + error: attempting to write stale object + schema: + $ref: '#/components/schemas/Error' + description: | + The entity to be wrote has been concurrently updated by another request - the submitted entity data has been replaced. + The caller should fetch the entity again, check the actions are still required and resubmit the request with the new entity version field. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: | + The request caused an internal server error and should be retried. + Check the health of the node/cluster and if the error persists, contact support. + security: + - jwt: [] + summary: Update an nfs volume's mount endpoint + /namespaces/{namespaceID}/volumes/{id}/nfs/export-config: + put: + description: | + Update the NFS volume's export configuration + operationId: updateNFSVolumeExports + parameters: + - description: ID of a Namespace + explode: false + in: path + name: namespaceID + required: true + schema: + $ref: '#/components/schemas/NamespaceID' + style: simple + - description: ID of a Volume + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/VolumeID' + style: simple + - description: | + If set to true this value indicates that the user wants to ignore entity version constraints, thereby "forcing" the operation. + explode: true + in: query + name: ignore-version + required: false + schema: + $ref: '#/components/schemas/IgnoreVersion' + style: form + - description: | + Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. + The URL parameter value overrides the "async-max" header value, if any. + The value of this header defines the timeout duration for the request, it must be set to a valid duration string. + A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + We reject negative or nil duration values. + explode: true + in: query + name: async-max + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/NFSVolumeExports' + content: + application/json: + schema: + properties: + exports: + items: + $ref: '#/components/schemas/NfsExportConfig' + type: array + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: NFSVolumeExports + type: object + description: | + Updates an existing volume's NFS export configuration. + The volume will use the given export configuration once attached. + required: true + responses: + "200": + description: The volume's NFS export configuration was successfully updated. + "400": + content: + application/json: + example: + error: a short description of the validation failure + schema: + $ref: '#/components/schemas/Error' + description: The request does not conform to the API specification. + "401": + content: + application/json: + example: + error: authentication required + schema: + $ref: '#/components/schemas/Error' + description: | + The requested endpoint requires authentication - you must log in first. + If attempting to log in, your credentials were not recognised. + "403": + content: + application/json: + example: + error: unauthorised + schema: + $ref: '#/components/schemas/Error' + description: | + The authenticated user does not have permission to perform the requested action. + "404": + content: + application/json: + example: + error: not found + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced resource does not exist. + "409": + content: + application/json: + example: + error: in use + schema: + $ref: '#/components/schemas/Error' + description: | + A referenced entity is currently in use. + "412": + content: + application/json: + example: + error: attempting to write stale object + schema: + $ref: '#/components/schemas/Error' + description: | + The entity to be wrote has been concurrently updated by another request - the submitted entity data has been replaced. + The caller should fetch the entity again, check the actions are still required and resubmit the request with the new entity version field. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: | + The request caused an internal server error and should be retried. + Check the health of the node/cluster and if the error persists, contact support. + security: + - jwt: [] + summary: Update an nfs volume's export configuration /namespaces/{namespaceID}/volumes/{id}/replicas: put: description: | @@ -4017,6 +4443,12 @@ components: schema: $ref: '#/components/schemas/UpdateUserData' required: true + NFSVolumeMountEndpoint: + content: + application/json: + schema: + $ref: '#/components/schemas/NFSVolumeMountEndpoint' + required: true CreateUserData: content: application/json: @@ -4035,6 +4467,12 @@ components: schema: $ref: '#/components/schemas/UpdateLicence' required: true + AttachNFSVolumeData: + content: + application/json: + schema: + $ref: '#/components/schemas/AttachNFSVolumeData' + required: true CreatePolicyGroupData: content: application/json: @@ -4047,6 +4485,12 @@ components: schema: $ref: '#/components/schemas/UpdatePolicyGroupData' required: true + NFSVolumeExports: + content: + application/json: + schema: + $ref: '#/components/schemas/NFSVolumeExports' + required: true SetReplicasRequest: content: application/json: @@ -4166,7 +4610,7 @@ components: schema: $ref: '#/components/schemas/Error' description: | - Available storage is not enough to handle the request. + Available storage is not enough to handle the request or target node has reached maximum number of attached volumes. StaleWrite: content: application/json: @@ -4292,6 +4736,17 @@ components: - block example: ext4 type: string + AttachType: + description: | + The attachment type of a volume. "host" indicates that the volume is consumed by the node it is attached to. + enum: + - unknown + - detached + - nfs + - host + example: host + readOnly: true + type: string NodeHealth: description: | The operational health of a node entity @@ -4369,6 +4824,133 @@ components: example: 42 type: uint64 type: object + NfsAcl: + example: + squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + properties: + identity: + $ref: '#/components/schemas/NfsAcl_identity' + squashConfig: + $ref: '#/components/schemas/NfsAcl_squashConfig' + accessLevel: + description: | + The access level this ACL grants - read-only, or read-write. + enum: + - ro + - rw + example: rw + type: string + type: object + NfsExportConfig: + example: + path: /very/important/files/ + acls: + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + pseudoPath: /very/important/files/somewhere/else + exportID: 42 + properties: + exportID: + description: | + ID for this export + example: 42 + type: uint64 + path: + default: "" + description: | + The path relative to the volume root to serve as the export root + example: /very/important/files/ + type: string + pseudoPath: + default: "" + description: | + The configured pseudo path in the NFS virtual filesystem. This is the path clients will see when traversing to this export on the NFS share. + example: /very/important/files/somewhere/else + type: string + acls: + items: + $ref: '#/components/schemas/NfsAcl' + type: array + type: object + NFSConfig: + example: + exports: + - path: /very/important/files/ + acls: + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + pseudoPath: /very/important/files/somewhere/else + exportID: 42 + - path: /very/important/files/ + acls: + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + pseudoPath: /very/important/files/somewhere/else + exportID: 42 + serviceEndpoint: serviceEndpoint + properties: + exports: + items: + $ref: '#/components/schemas/NfsExportConfig' + nullable: true + type: array + serviceEndpoint: + default: "" + description: | + The address to which the NFS server is bound. + nullable: true + readOnly: true + type: string + type: object Labels: additionalProperties: type: string @@ -4581,6 +5163,7 @@ components: - $ref: '#/components/schemas/UserSession_allOf' Volume: example: + attachmentType: host replicas: - null - null @@ -4596,6 +5179,49 @@ components: createdAt: 2019-03-10T13:42:42Z namespaceID: "" name: app-data + nfs: + exports: + - path: /very/important/files/ + acls: + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + pseudoPath: /very/important/files/somewhere/else + exportID: 42 + - path: /very/important/files/ + acls: + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + - squashConfig: + uid: "" + gid: "" + squash: root + accessLevel: rw + identity: + identityType: hostname + matcher: '*.prod.storageos.com' + pseudoPath: /very/important/files/somewhere/else + exportID: 42 + serviceEndpoint: serviceEndpoint id: c5666b58-b805-4215-ab4a-cb094948ccc6 updatedAt: 2019-03-29T23:13:13Z properties: @@ -4614,6 +5240,8 @@ components: allOf: - $ref: '#/components/schemas/NodeID' readOnly: true + nfs: + $ref: '#/components/schemas/NFSConfig' namespaceID: allOf: - $ref: '#/components/schemas/NamespaceID' @@ -4631,6 +5259,8 @@ components: type: object fsType: $ref: '#/components/schemas/FsType' + attachmentType: + $ref: '#/components/schemas/AttachType' master: allOf: - $ref: '#/components/schemas/MasterDeploymentInfo' @@ -4959,6 +5589,9 @@ components: A representation of a cluster's licence properties example: clusterCapacityBytes: 1000000 + features: + - features + - features kind: unregistered clusterID: c5666b58-b805-4215-ab4a-cb094948ccc6 usedBytes: 42 @@ -5003,6 +5636,13 @@ components: A user friendly reference to the customer example: Desmond type: string + features: + description: | + A list of product features which are enabled by the licence, subject to the installed version. + items: + type: string + nullable: true + type: array version: description: | An opaque representation of an entity version at the time it was obtained from the API. @@ -5272,7 +5912,6 @@ components: If true, disallows requests that attempt to mutate the resource. example: false type: boolean - type: object CreatePolicyGroupData: example: specs: @@ -5325,7 +5964,6 @@ components: If true, disallows requests that attempt to mutate the resource. example: false type: boolean - type: object UpdatePolicyGroupData: example: specs: @@ -5456,6 +6094,51 @@ components: type: string title: AttachVolumeData type: object + AttachNFSVolumeData: + properties: + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: AttachNFSVolumeData + type: object + NFSVolumeMountEndpoint: + properties: + mountEndpoint: + default: "" + description: | + The address to which the NFS server is bound. + type: string + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: NFSVolumeMountEndpoint + type: object + NFSVolumeExports: + properties: + exports: + items: + $ref: '#/components/schemas/NfsExportConfig' + type: array + version: + description: | + An opaque representation of an entity version at the time it was obtained from the API. + All operations that mutate the entity must include this version field in the request unchanged. + The format of this type is undefined and may change but the defined properties will not change. + example: NDI0MjQyNDI0MjQyNDI0MjQy + maxLength: 30 + type: string + title: NFSVolumeExports + type: object SetReplicasRequest: example: replicas: 2 @@ -5559,6 +6242,55 @@ components: type: string title: UpdateLicence type: object + NfsAcl_identity: + example: + identityType: hostname + matcher: '*.prod.storageos.com' + properties: + identityType: + description: | + The identity type used to identify the nfs client. + enum: + - cidr + - hostname + - netgroup + example: hostname + type: string + matcher: + description: | + NFS identity matcher. + For "cidr", this should be a valid CIDR block string such as "10.0.0.0/8". + For "hostname", this must be the hostname sent by the client, with ? and * wildcard characters. + For netgroup, this must be in the form of "@netgroup" with ? and * wildcard characters. + example: '*.prod.storageos.com' + type: string + NfsAcl_squashConfig: + example: + uid: "" + gid: "" + squash: root + properties: + uid: + type: int64 + gid: + type: int64 + squash: + description: "SquashConfig defines the root squashing behaviour. \nWhen\ + \ a client creates a file, it sends the user UID from the client. If the\ + \ client is running as root, this sends uid=0. Root squashing allows the\ + \ NFS administrator to prevent the client from writing as \"root\" to\ + \ the NFS share, instead mapping the client to a new UID/GID (usually\ + \ nfsnobody, -2).\n\"none\" performs no UID/GID alterations, using the\ + \ values sent by the client.\n\"root\" mapps UID & GID 0 to the values\ + \ specified.\n\"rootuid\" maps UID 0 and a GID of any value to the value\ + \ specified.\n\"all\" maps changes all UID and GID values to those specified.\n" + enum: + - none + - root + - rootuid + - all + example: root + type: string UserSession_allOf_session: properties: expiresInSeconds: @@ -5571,24 +6303,20 @@ components: description: | The JWT token for the auth session. type: string - type: object UserSession_allOf: properties: session: $ref: '#/components/schemas/UserSession_allOf_session' - type: object MasterDeploymentInfo_allOf: properties: health: $ref: '#/components/schemas/MasterHealth' - type: object ReplicaDeploymentInfo_allOf: properties: health: $ref: '#/components/schemas/ReplicaHealth' syncProgress: $ref: '#/components/schemas/SyncProgress' - type: object PolicyGroup_users: properties: id: @@ -5599,7 +6327,6 @@ components: username: example: admin type: string - type: object securitySchemes: jwt: bearerFormat: JWT diff --git a/v2/api_default.go b/v2/api_default.go index e8cf402..8c40242 100644 --- a/v2/api_default.go +++ b/v2/api_default.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ @@ -15,7 +15,6 @@ import ( _ioutil "io/ioutil" _nethttp "net/http" _neturl "net/url" - _bytes "bytes" "strings" "github.com/antihax/optional" "os" @@ -29,6 +28,173 @@ var ( // DefaultApiService DefaultApi service type DefaultApiService service +// AttachNFSVolumeOpts Optional parameters for the method 'AttachNFSVolume' +type AttachNFSVolumeOpts struct { + IgnoreVersion optional.Bool + AsyncMax optional.String +} + +/* +AttachNFSVolume attach and share the volume using NFS +Attach the given volume as an NFS volume. If no export configuration has been set via the /nfs/export-config endpoint, the nfs service will start with defaults settings (sharing the volume at its root). + * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param namespaceID ID of a Namespace + * @param id ID of a Volume + * @param attachNfsVolumeData + * @param optional nil or *AttachNFSVolumeOpts - Optional Parameters: + * @param "IgnoreVersion" (optional.Bool) - If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. + * @param "AsyncMax" (optional.String) - Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. +*/ +func (a *DefaultApiService) AttachNFSVolume(ctx _context.Context, namespaceID string, id string, attachNfsVolumeData AttachNfsVolumeData, localVarOptionals *AttachNFSVolumeOpts) (*_nethttp.Response, error) { + var ( + localVarHTTPMethod = _nethttp.MethodPost + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/namespaces/{namespaceID}/volumes/{id}/nfs/attach" + localVarPath = strings.Replace(localVarPath, "{"+"namespaceID"+"}", _neturl.PathEscape(parameterToString(namespaceID, "")) , -1) + + localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", _neturl.PathEscape(parameterToString(id, "")) , -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := _neturl.Values{} + localVarFormParams := _neturl.Values{} + + if localVarOptionals != nil && localVarOptionals.IgnoreVersion.IsSet() { + localVarQueryParams.Add("ignore-version", parameterToString(localVarOptionals.IgnoreVersion.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.AsyncMax.IsSet() { + localVarQueryParams.Add("async-max", parameterToString(localVarOptionals.AsyncMax.Value(), "")) + } + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &attachNfsVolumeData + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 409 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 412 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 422 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + } + return localVarHTTPResponse, newErr + } + + return localVarHTTPResponse, nil +} + /* AttachVolume Attach a volume to the given node Attach the volume identified by id to the node identified in the request's body. @@ -87,7 +253,6 @@ func (a *DefaultApiService) AttachVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -165,6 +330,16 @@ func (a *DefaultApiService) AttachVolume(ctx _context.Context, namespaceID strin return localVarHTTPResponse, newErr } newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 507 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v } return localVarHTTPResponse, newErr } @@ -226,7 +401,6 @@ func (a *DefaultApiService) AuthenticateUser(ctx _context.Context, authUserData localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -344,7 +518,6 @@ func (a *DefaultApiService) CreateNamespace(ctx _context.Context, createNamespac localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -482,7 +655,6 @@ func (a *DefaultApiService) CreatePolicyGroup(ctx _context.Context, createPolicy localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -620,7 +792,6 @@ func (a *DefaultApiService) CreateUser(ctx _context.Context, createUserData Crea localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -771,7 +942,6 @@ func (a *DefaultApiService) CreateVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -939,7 +1109,6 @@ func (a *DefaultApiService) DeleteAuthenticatedUser(ctx _context.Context, versio localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1073,7 +1242,6 @@ func (a *DefaultApiService) DeleteAuthenticatedUserSessions(ctx _context.Context localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1225,7 +1393,6 @@ func (a *DefaultApiService) DeleteNamespace(ctx _context.Context, id string, ver localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1392,7 +1559,6 @@ func (a *DefaultApiService) DeleteNode(ctx _context.Context, id string, version localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1564,7 +1730,6 @@ func (a *DefaultApiService) DeletePolicyGroup(ctx _context.Context, id string, v localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1711,7 +1876,6 @@ func (a *DefaultApiService) DeleteSessions(ctx _context.Context, id string) (*_n localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -1863,7 +2027,6 @@ func (a *DefaultApiService) DeleteUser(ctx _context.Context, id string, version localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2028,7 +2191,6 @@ func (a *DefaultApiService) DeleteVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2218,7 +2380,6 @@ func (a *DefaultApiService) DetachVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } @@ -2374,7 +2535,6 @@ func (a *DefaultApiService) GetAuthenticatedUser(ctx _context.Context) (User, *_ localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -2499,7 +2659,6 @@ func (a *DefaultApiService) GetCluster(ctx _context.Context) (Cluster, *_nethttp localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -2614,7 +2773,6 @@ func (a *DefaultApiService) GetDiagnostics(ctx _context.Context) (*os.File, *_ne localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -2739,7 +2897,6 @@ func (a *DefaultApiService) GetLicence(ctx _context.Context) (Licence, *_nethttp localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -2857,7 +3014,6 @@ func (a *DefaultApiService) GetNamespace(ctx _context.Context, id string) (Names localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -2995,7 +3151,6 @@ func (a *DefaultApiService) GetNode(ctx _context.Context, id string) (Node, *_ne localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3123,7 +3278,6 @@ func (a *DefaultApiService) GetPolicyGroup(ctx _context.Context, id string) (Pol localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3261,7 +3415,6 @@ func (a *DefaultApiService) GetUser(ctx _context.Context, id string) (User, *_ne localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3392,7 +3545,6 @@ func (a *DefaultApiService) GetVolume(ctx _context.Context, namespaceID string, localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3527,7 +3679,6 @@ func (a *DefaultApiService) ListNamespaces(ctx _context.Context) ([]Namespace, * localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3642,7 +3793,6 @@ func (a *DefaultApiService) ListNodes(ctx _context.Context) ([]Node, *_nethttp.R localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3757,7 +3907,6 @@ func (a *DefaultApiService) ListPolicyGroups(ctx _context.Context) ([]PolicyGrou localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3872,7 +4021,6 @@ func (a *DefaultApiService) ListUsers(ctx _context.Context) ([]User, *_nethttp.R localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -3990,7 +4138,6 @@ func (a *DefaultApiService) ListVolumes(ctx _context.Context, namespaceID string localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4105,7 +4252,6 @@ func (a *DefaultApiService) RefreshJwt(ctx _context.Context) (UserSession, *_net localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4234,7 +4380,6 @@ func (a *DefaultApiService) ResizeVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4408,7 +4553,6 @@ func (a *DefaultApiService) SetReplicas(ctx _context.Context, namespaceID string localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4563,7 +4707,6 @@ func (a *DefaultApiService) Spec(ctx _context.Context) (string, *_nethttp.Respon localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4652,7 +4795,6 @@ func (a *DefaultApiService) UpdateAuthenticatedUser(ctx _context.Context, update localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4810,7 +4952,6 @@ func (a *DefaultApiService) UpdateCluster(ctx _context.Context, updateClusterDat localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -4958,7 +5099,6 @@ func (a *DefaultApiService) UpdateLicence(ctx _context.Context, updateLicence Up localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -5042,6 +5182,320 @@ func (a *DefaultApiService) UpdateLicence(ctx _context.Context, updateLicence Up return localVarReturnValue, localVarHTTPResponse, nil } +// UpdateNFSVolumeExportsOpts Optional parameters for the method 'UpdateNFSVolumeExports' +type UpdateNFSVolumeExportsOpts struct { + IgnoreVersion optional.Bool + AsyncMax optional.String +} + +/* +UpdateNFSVolumeExports Update an nfs volume's export configuration +Update the NFS volume's export configuration + * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param namespaceID ID of a Namespace + * @param id ID of a Volume + * @param nfsVolumeExports + * @param optional nil or *UpdateNFSVolumeExportsOpts - Optional Parameters: + * @param "IgnoreVersion" (optional.Bool) - If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. + * @param "AsyncMax" (optional.String) - Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. +*/ +func (a *DefaultApiService) UpdateNFSVolumeExports(ctx _context.Context, namespaceID string, id string, nfsVolumeExports NfsVolumeExports, localVarOptionals *UpdateNFSVolumeExportsOpts) (*_nethttp.Response, error) { + var ( + localVarHTTPMethod = _nethttp.MethodPut + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/namespaces/{namespaceID}/volumes/{id}/nfs/export-config" + localVarPath = strings.Replace(localVarPath, "{"+"namespaceID"+"}", _neturl.PathEscape(parameterToString(namespaceID, "")) , -1) + + localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", _neturl.PathEscape(parameterToString(id, "")) , -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := _neturl.Values{} + localVarFormParams := _neturl.Values{} + + if localVarOptionals != nil && localVarOptionals.IgnoreVersion.IsSet() { + localVarQueryParams.Add("ignore-version", parameterToString(localVarOptionals.IgnoreVersion.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.AsyncMax.IsSet() { + localVarQueryParams.Add("async-max", parameterToString(localVarOptionals.AsyncMax.Value(), "")) + } + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &nfsVolumeExports + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 409 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 412 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + } + return localVarHTTPResponse, newErr + } + + return localVarHTTPResponse, nil +} + +// UpdateNFSVolumeMountEndpointOpts Optional parameters for the method 'UpdateNFSVolumeMountEndpoint' +type UpdateNFSVolumeMountEndpointOpts struct { + IgnoreVersion optional.Bool + AsyncMax optional.String +} + +/* +UpdateNFSVolumeMountEndpoint Update an nfs volume's mount endpoint +Update the NFS volume's mount endpoint + * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param namespaceID ID of a Namespace + * @param id ID of a Volume + * @param nfsVolumeMountEndpoint + * @param optional nil or *UpdateNFSVolumeMountEndpointOpts - Optional Parameters: + * @param "IgnoreVersion" (optional.Bool) - If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. + * @param "AsyncMax" (optional.String) - Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. +*/ +func (a *DefaultApiService) UpdateNFSVolumeMountEndpoint(ctx _context.Context, namespaceID string, id string, nfsVolumeMountEndpoint NfsVolumeMountEndpoint, localVarOptionals *UpdateNFSVolumeMountEndpointOpts) (*_nethttp.Response, error) { + var ( + localVarHTTPMethod = _nethttp.MethodPut + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/namespaces/{namespaceID}/volumes/{id}/nfs/mount-endpoint" + localVarPath = strings.Replace(localVarPath, "{"+"namespaceID"+"}", _neturl.PathEscape(parameterToString(namespaceID, "")) , -1) + + localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", _neturl.PathEscape(parameterToString(id, "")) , -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := _neturl.Values{} + localVarFormParams := _neturl.Values{} + + if localVarOptionals != nil && localVarOptionals.IgnoreVersion.IsSet() { + localVarQueryParams.Add("ignore-version", parameterToString(localVarOptionals.IgnoreVersion.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.AsyncMax.IsSet() { + localVarQueryParams.Add("async-max", parameterToString(localVarOptionals.AsyncMax.Value(), "")) + } + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &nfsVolumeMountEndpoint + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 409 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 412 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v Error + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.model = v + } + return localVarHTTPResponse, newErr + } + + return localVarHTTPResponse, nil +} + // UpdateNamespaceOpts Optional parameters for the method 'UpdateNamespace' type UpdateNamespaceOpts struct { IgnoreVersion optional.Bool @@ -5109,7 +5563,6 @@ func (a *DefaultApiService) UpdateNamespace(ctx _context.Context, id string, upd localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -5270,7 +5723,6 @@ func (a *DefaultApiService) UpdateNode(ctx _context.Context, id string, updateNo localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -5431,7 +5883,6 @@ func (a *DefaultApiService) UpdatePolicyGroup(ctx _context.Context, id string, u localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -5592,7 +6043,6 @@ func (a *DefaultApiService) UpdateUser(ctx _context.Context, id string, updateUs localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } @@ -5761,7 +6211,6 @@ func (a *DefaultApiService) UpdateVolume(ctx _context.Context, namespaceID strin localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody)) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } diff --git a/v2/client.go b/v2/client.go index 225393f..f19b5df 100644 --- a/v2/client.go +++ b/v2/client.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ @@ -37,11 +37,11 @@ import ( ) var ( - jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?(?:problem\+)?json)`) + jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`) xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`) ) -// APIClient manages communication with the StorageOS API API v2.2.0 +// APIClient manages communication with the StorageOS API API v2.3.0 // In most cases there should be only one, shared, APIClient. type APIClient struct { cfg *Configuration diff --git a/v2/configuration.go b/v2/configuration.go index d138c50..5b09898 100644 --- a/v2/configuration.go +++ b/v2/configuration.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/docs/AttachNfsVolumeData.md b/v2/docs/AttachNfsVolumeData.md new file mode 100644 index 0000000..3158a63 --- /dev/null +++ b/v2/docs/AttachNfsVolumeData.md @@ -0,0 +1,11 @@ +# AttachNfsVolumeData + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Version** | **string** | An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/AttachType.md b/v2/docs/AttachType.md new file mode 100644 index 0000000..6401f00 --- /dev/null +++ b/v2/docs/AttachType.md @@ -0,0 +1,10 @@ +# AttachType + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/DefaultApi.md b/v2/docs/DefaultApi.md index 234c46d..bcae075 100644 --- a/v2/docs/DefaultApi.md +++ b/v2/docs/DefaultApi.md @@ -4,6 +4,7 @@ All URIs are relative to *http://localhost/v2* Method | HTTP request | Description ------------- | ------------- | ------------- +[**AttachNFSVolume**](DefaultApi.md#AttachNFSVolume) | **Post** /namespaces/{namespaceID}/volumes/{id}/nfs/attach | attach and share the volume using NFS [**AttachVolume**](DefaultApi.md#AttachVolume) | **Post** /namespaces/{namespaceID}/volumes/{id}/attach | Attach a volume to the given node [**AuthenticateUser**](DefaultApi.md#AuthenticateUser) | **Post** /auth/login | Authenticate a user [**CreateNamespace**](DefaultApi.md#CreateNamespace) | **Post** /namespaces | Create a new namespace @@ -40,6 +41,8 @@ Method | HTTP request | Description [**UpdateAuthenticatedUser**](DefaultApi.md#UpdateAuthenticatedUser) | **Put** /users/self | Update the authenticated user's information [**UpdateCluster**](DefaultApi.md#UpdateCluster) | **Put** /cluster | Update the cluster's global configuration settings [**UpdateLicence**](DefaultApi.md#UpdateLicence) | **Put** /cluster/licence | Update the licence global configuration settings +[**UpdateNFSVolumeExports**](DefaultApi.md#UpdateNFSVolumeExports) | **Put** /namespaces/{namespaceID}/volumes/{id}/nfs/export-config | Update an nfs volume's export configuration +[**UpdateNFSVolumeMountEndpoint**](DefaultApi.md#UpdateNFSVolumeMountEndpoint) | **Put** /namespaces/{namespaceID}/volumes/{id}/nfs/mount-endpoint | Update an nfs volume's mount endpoint [**UpdateNamespace**](DefaultApi.md#UpdateNamespace) | **Put** /namespaces/{id} | Update a namespace [**UpdateNode**](DefaultApi.md#UpdateNode) | **Put** /nodes/{id} | Update a node [**UpdatePolicyGroup**](DefaultApi.md#UpdatePolicyGroup) | **Put** /policies/{id} | Update a policy group @@ -48,6 +51,56 @@ Method | HTTP request | Description +## AttachNFSVolume + +> AttachNFSVolume(ctx, namespaceID, id, attachNfsVolumeData, optional) + +attach and share the volume using NFS + +Attach the given volume as an NFS volume. If no export configuration has been set via the /nfs/export-config endpoint, the nfs service will start with defaults settings (sharing the volume at its root). + +### Required Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**namespaceID** | **string**| ID of a Namespace | +**id** | **string**| ID of a Volume | +**attachNfsVolumeData** | [**AttachNfsVolumeData**](AttachNfsVolumeData.md)| | + **optional** | ***AttachNFSVolumeOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a AttachNFSVolumeOpts struct + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + + **ignoreVersion** | **optional.Bool**| If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. | [default to false] + **asyncMax** | **optional.String**| Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. | + +### Return type + + (empty response body) + +### Authorization + +[jwt](../README.md#jwt) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + + ## AttachVolume > AttachVolume(ctx, namespaceID, id, attachVolumeData) @@ -1405,6 +1458,106 @@ Name | Type | Description | Notes [[Back to README]](../README.md) +## UpdateNFSVolumeExports + +> UpdateNFSVolumeExports(ctx, namespaceID, id, nfsVolumeExports, optional) + +Update an nfs volume's export configuration + +Update the NFS volume's export configuration + +### Required Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**namespaceID** | **string**| ID of a Namespace | +**id** | **string**| ID of a Volume | +**nfsVolumeExports** | [**NfsVolumeExports**](NfsVolumeExports.md)| | + **optional** | ***UpdateNFSVolumeExportsOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a UpdateNFSVolumeExportsOpts struct + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + + **ignoreVersion** | **optional.Bool**| If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. | [default to false] + **asyncMax** | **optional.String**| Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. | + +### Return type + + (empty response body) + +### Authorization + +[jwt](../README.md#jwt) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + + +## UpdateNFSVolumeMountEndpoint + +> UpdateNFSVolumeMountEndpoint(ctx, namespaceID, id, nfsVolumeMountEndpoint, optional) + +Update an nfs volume's mount endpoint + +Update the NFS volume's mount endpoint + +### Required Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**namespaceID** | **string**| ID of a Namespace | +**id** | **string**| ID of a Volume | +**nfsVolumeMountEndpoint** | [**NfsVolumeMountEndpoint**](NfsVolumeMountEndpoint.md)| | + **optional** | ***UpdateNFSVolumeMountEndpointOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a UpdateNFSVolumeMountEndpointOpts struct + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + + **ignoreVersion** | **optional.Bool**| If set to true this value indicates that the user wants to ignore entity version constraints, thereby \"forcing\" the operation. | [default to false] + **asyncMax** | **optional.String**| Optional parameter which will make the api request asynchronous. The operation will not be cancelled even if the client disconnect. The URL parameter value overrides the \"async-max\" header value, if any. The value of this header defines the timeout duration for the request, it must be set to a valid duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". We reject negative or nil duration values. | + +### Return type + + (empty response body) + +### Authorization + +[jwt](../README.md#jwt) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + + ## UpdateNamespace > Namespace UpdateNamespace(ctx, id, updateNamespaceData, optional) diff --git a/v2/docs/Licence.md b/v2/docs/Licence.md index 027424d..6b094ed 100644 --- a/v2/docs/Licence.md +++ b/v2/docs/Licence.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **UsedBytes** | **uint64** | Sum of the size of all volumes in the cluster | [optional] **Kind** | **string** | Denotes which category the licence belongs to | [optional] **CustomerName** | **string** | A user friendly reference to the customer | [optional] +**Features** | Pointer to **[]string** | A list of product features which are enabled by the licence, subject to the installed version. | [optional] **Version** | **string** | An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/v2/docs/NfsAcl.md b/v2/docs/NfsAcl.md new file mode 100644 index 0000000..6ff5b49 --- /dev/null +++ b/v2/docs/NfsAcl.md @@ -0,0 +1,13 @@ +# NfsAcl + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Identity** | [**NfsAclIdentity**](NfsAcl_identity.md) | | [optional] +**SquashConfig** | [**NfsAclSquashConfig**](NfsAcl_squashConfig.md) | | [optional] +**AccessLevel** | **string** | The access level this ACL grants - read-only, or read-write. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsAclIdentity.md b/v2/docs/NfsAclIdentity.md new file mode 100644 index 0000000..d311779 --- /dev/null +++ b/v2/docs/NfsAclIdentity.md @@ -0,0 +1,12 @@ +# NfsAclIdentity + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**IdentityType** | **string** | The identity type used to identify the nfs client. | [optional] +**Matcher** | **string** | NFS identity matcher. For \"cidr\", this should be a valid CIDR block string such as \"10.0.0.0/8\". For \"hostname\", this must be the hostname sent by the client, with ? and * wildcard characters. For netgroup, this must be in the form of \"@netgroup\" with ? and * wildcard characters. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsAclSquashConfig.md b/v2/docs/NfsAclSquashConfig.md new file mode 100644 index 0000000..09d6c75 --- /dev/null +++ b/v2/docs/NfsAclSquashConfig.md @@ -0,0 +1,13 @@ +# NfsAclSquashConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Uid** | **int64** | | [optional] +**Gid** | **int64** | | [optional] +**Squash** | **string** | SquashConfig defines the root squashing behaviour. When a client creates a file, it sends the user UID from the client. If the client is running as root, this sends uid=0. Root squashing allows the NFS administrator to prevent the client from writing as \"root\" to the NFS share, instead mapping the client to a new UID/GID (usually nfsnobody, -2). \"none\" performs no UID/GID alterations, using the values sent by the client. \"root\" mapps UID & GID 0 to the values specified. \"rootuid\" maps UID 0 and a GID of any value to the value specified. \"all\" maps changes all UID and GID values to those specified. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsConfig.md b/v2/docs/NfsConfig.md new file mode 100644 index 0000000..392a2ca --- /dev/null +++ b/v2/docs/NfsConfig.md @@ -0,0 +1,12 @@ +# NfsConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Exports** | Pointer to [**[]NfsExportConfig**](NfsExportConfig.md) | | [optional] +**ServiceEndpoint** | Pointer to **string** | The address to which the NFS server is bound. | [optional] [readonly] [default to ] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsExportConfig.md b/v2/docs/NfsExportConfig.md new file mode 100644 index 0000000..7cd891e --- /dev/null +++ b/v2/docs/NfsExportConfig.md @@ -0,0 +1,14 @@ +# NfsExportConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ExportID** | **uint64** | ID for this export | [optional] +**Path** | **string** | The path relative to the volume root to serve as the export root | [optional] [default to ] +**PseudoPath** | **string** | The configured pseudo path in the NFS virtual filesystem. This is the path clients will see when traversing to this export on the NFS share. | [optional] [default to ] +**Acls** | [**[]NfsAcl**](NfsAcl.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsVolumeExports.md b/v2/docs/NfsVolumeExports.md new file mode 100644 index 0000000..485b3bb --- /dev/null +++ b/v2/docs/NfsVolumeExports.md @@ -0,0 +1,12 @@ +# NfsVolumeExports + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Exports** | [**[]NfsExportConfig**](NfsExportConfig.md) | | [optional] +**Version** | **string** | An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/NfsVolumeMountEndpoint.md b/v2/docs/NfsVolumeMountEndpoint.md new file mode 100644 index 0000000..0a76ef6 --- /dev/null +++ b/v2/docs/NfsVolumeMountEndpoint.md @@ -0,0 +1,12 @@ +# NfsVolumeMountEndpoint + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**MountEndpoint** | **string** | The address to which the NFS server is bound. | [optional] [default to ] +**Version** | **string** | An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/v2/docs/Volume.md b/v2/docs/Volume.md index c45cb9a..60b48cd 100644 --- a/v2/docs/Volume.md +++ b/v2/docs/Volume.md @@ -8,9 +8,11 @@ Name | Type | Description | Notes **Name** | **string** | | [optional] **Description** | **string** | | [optional] **AttachedOn** | **string** | | [optional] [readonly] +**Nfs** | [**NfsConfig**](NFSConfig.md) | | [optional] **NamespaceID** | **string** | | [optional] [readonly] **Labels** | **map[string]string** | A set of arbitrary key value labels to apply to the entity. | [optional] **FsType** | [**FsType**](FsType.md) | | [optional] +**AttachmentType** | [**AttachType**](AttachType.md) | | [optional] **Master** | [**MasterDeploymentInfo**](MasterDeploymentInfo.md) | | [optional] [readonly] **Replicas** | Pointer to [**[]ReplicaDeploymentInfo**](ReplicaDeploymentInfo.md) | | [optional] [readonly] [default to []] **SizeBytes** | **uint64** | A volume's size in bytes | [optional] diff --git a/v2/model__policies__id__specs.go b/v2/model__policies__id__specs.go index b761b29..c60300a 100644 --- a/v2/model__policies__id__specs.go +++ b/v2/model__policies__id__specs.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model__policies_specs.go b/v2/model__policies_specs.go index 8ec3b26..5b84f27 100644 --- a/v2/model__policies_specs.go +++ b/v2/model__policies_specs.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_accepted_message.go b/v2/model_accepted_message.go index 371e2a7..38e8891 100644 --- a/v2/model_accepted_message.go +++ b/v2/model_accepted_message.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_attach_nfs_volume_data.go b/v2/model_attach_nfs_volume_data.go new file mode 100644 index 0000000..c3df51f --- /dev/null +++ b/v2/model_attach_nfs_volume_data.go @@ -0,0 +1,16 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// AttachNfsVolumeData struct for AttachNfsVolumeData +type AttachNfsVolumeData struct { + // An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. + Version string `json:"version,omitempty"` +} diff --git a/v2/model_attach_type.go b/v2/model_attach_type.go new file mode 100644 index 0000000..e52af4a --- /dev/null +++ b/v2/model_attach_type.go @@ -0,0 +1,21 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// AttachType The attachment type of a volume. \"host\" indicates that the volume is consumed by the node it is attached to. +type AttachType string + +// List of AttachType +const ( + ATTACHTYPE_UNKNOWN AttachType = "unknown" + ATTACHTYPE_DETACHED AttachType = "detached" + ATTACHTYPE_NFS AttachType = "nfs" + ATTACHTYPE_HOST AttachType = "host" +) diff --git a/v2/model_attach_volume_data.go b/v2/model_attach_volume_data.go index eb4f15f..246a2a1 100644 --- a/v2/model_attach_volume_data.go +++ b/v2/model_attach_volume_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_auth_user_data.go b/v2/model_auth_user_data.go index 3d3a6c3..67f6840 100644 --- a/v2/model_auth_user_data.go +++ b/v2/model_auth_user_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_capacity_stats.go b/v2/model_capacity_stats.go index 9b1751a..9549628 100644 --- a/v2/model_capacity_stats.go +++ b/v2/model_capacity_stats.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_cluster.go b/v2/model_cluster.go index 6ebc187..a59d1dd 100644 --- a/v2/model_cluster.go +++ b/v2/model_cluster.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_create_namespace_data.go b/v2/model_create_namespace_data.go index dce8ff2..b161a48 100644 --- a/v2/model_create_namespace_data.go +++ b/v2/model_create_namespace_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_create_policy_group_data.go b/v2/model_create_policy_group_data.go index 3c3de02..7b8b8cc 100644 --- a/v2/model_create_policy_group_data.go +++ b/v2/model_create_policy_group_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_create_user_data.go b/v2/model_create_user_data.go index 311f813..6f9cd50 100644 --- a/v2/model_create_user_data.go +++ b/v2/model_create_user_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_create_volume_data.go b/v2/model_create_volume_data.go index 4797402..ee8ecde 100644 --- a/v2/model_create_volume_data.go +++ b/v2/model_create_volume_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_deployment_info.go b/v2/model_deployment_info.go index 3aad62e..fda2a97 100644 --- a/v2/model_deployment_info.go +++ b/v2/model_deployment_info.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_error.go b/v2/model_error.go index 8bd3df3..19368a0 100644 --- a/v2/model_error.go +++ b/v2/model_error.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_fs_type.go b/v2/model_fs_type.go index 43bed02..1b994c4 100644 --- a/v2/model_fs_type.go +++ b/v2/model_fs_type.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_licence.go b/v2/model_licence.go index 0953c82..66a1549 100644 --- a/v2/model_licence.go +++ b/v2/model_licence.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ @@ -26,6 +26,8 @@ type Licence struct { Kind string `json:"kind,omitempty"` // A user friendly reference to the customer CustomerName string `json:"customerName,omitempty"` + // A list of product features which are enabled by the licence, subject to the installed version. + Features *[]string `json:"features,omitempty"` // An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. Version string `json:"version,omitempty"` } diff --git a/v2/model_log_format.go b/v2/model_log_format.go index 0b7d7d5..66cce59 100644 --- a/v2/model_log_format.go +++ b/v2/model_log_format.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_log_level.go b/v2/model_log_level.go index 963a453..aed7f07 100644 --- a/v2/model_log_level.go +++ b/v2/model_log_level.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_master_deployment_info.go b/v2/model_master_deployment_info.go index e1c31ce..c45e665 100644 --- a/v2/model_master_deployment_info.go +++ b/v2/model_master_deployment_info.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_master_deployment_info_all_of.go b/v2/model_master_deployment_info_all_of.go index 1351db4..50bd5ec 100644 --- a/v2/model_master_deployment_info_all_of.go +++ b/v2/model_master_deployment_info_all_of.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_master_health.go b/v2/model_master_health.go index 40d0b55..196d3aa 100644 --- a/v2/model_master_health.go +++ b/v2/model_master_health.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_namespace.go b/v2/model_namespace.go index fb402f8..576649a 100644 --- a/v2/model_namespace.go +++ b/v2/model_namespace.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_nfs_acl.go b/v2/model_nfs_acl.go new file mode 100644 index 0000000..e3e1e60 --- /dev/null +++ b/v2/model_nfs_acl.go @@ -0,0 +1,18 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsAcl struct for NfsAcl +type NfsAcl struct { + Identity NfsAclIdentity `json:"identity,omitempty"` + SquashConfig NfsAclSquashConfig `json:"squashConfig,omitempty"` + // The access level this ACL grants - read-only, or read-write. + AccessLevel string `json:"accessLevel,omitempty"` +} diff --git a/v2/model_nfs_acl_identity.go b/v2/model_nfs_acl_identity.go new file mode 100644 index 0000000..1a5b526 --- /dev/null +++ b/v2/model_nfs_acl_identity.go @@ -0,0 +1,18 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsAclIdentity struct for NfsAclIdentity +type NfsAclIdentity struct { + // The identity type used to identify the nfs client. + IdentityType string `json:"identityType,omitempty"` + // NFS identity matcher. For \"cidr\", this should be a valid CIDR block string such as \"10.0.0.0/8\". For \"hostname\", this must be the hostname sent by the client, with ? and * wildcard characters. For netgroup, this must be in the form of \"@netgroup\" with ? and * wildcard characters. + Matcher string `json:"matcher,omitempty"` +} diff --git a/v2/model_nfs_acl_squash_config.go b/v2/model_nfs_acl_squash_config.go new file mode 100644 index 0000000..e8ffe85 --- /dev/null +++ b/v2/model_nfs_acl_squash_config.go @@ -0,0 +1,18 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsAclSquashConfig struct for NfsAclSquashConfig +type NfsAclSquashConfig struct { + Uid int64 `json:"uid,omitempty"` + Gid int64 `json:"gid,omitempty"` + // SquashConfig defines the root squashing behaviour. When a client creates a file, it sends the user UID from the client. If the client is running as root, this sends uid=0. Root squashing allows the NFS administrator to prevent the client from writing as \"root\" to the NFS share, instead mapping the client to a new UID/GID (usually nfsnobody, -2). \"none\" performs no UID/GID alterations, using the values sent by the client. \"root\" mapps UID & GID 0 to the values specified. \"rootuid\" maps UID 0 and a GID of any value to the value specified. \"all\" maps changes all UID and GID values to those specified. + Squash string `json:"squash,omitempty"` +} diff --git a/v2/model_nfs_config.go b/v2/model_nfs_config.go new file mode 100644 index 0000000..daf202c --- /dev/null +++ b/v2/model_nfs_config.go @@ -0,0 +1,17 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsConfig struct for NfsConfig +type NfsConfig struct { + Exports *[]NfsExportConfig `json:"exports,omitempty"` + // The address to which the NFS server is bound. + ServiceEndpoint *string `json:"serviceEndpoint,omitempty"` +} diff --git a/v2/model_nfs_export_config.go b/v2/model_nfs_export_config.go new file mode 100644 index 0000000..c2cb5bf --- /dev/null +++ b/v2/model_nfs_export_config.go @@ -0,0 +1,21 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsExportConfig struct for NfsExportConfig +type NfsExportConfig struct { + // ID for this export + ExportID uint64 `json:"exportID,omitempty"` + // The path relative to the volume root to serve as the export root + Path string `json:"path,omitempty"` + // The configured pseudo path in the NFS virtual filesystem. This is the path clients will see when traversing to this export on the NFS share. + PseudoPath string `json:"pseudoPath,omitempty"` + Acls []NfsAcl `json:"acls,omitempty"` +} diff --git a/v2/model_nfs_volume_exports.go b/v2/model_nfs_volume_exports.go new file mode 100644 index 0000000..329c959 --- /dev/null +++ b/v2/model_nfs_volume_exports.go @@ -0,0 +1,17 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsVolumeExports struct for NfsVolumeExports +type NfsVolumeExports struct { + Exports []NfsExportConfig `json:"exports,omitempty"` + // An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. + Version string `json:"version,omitempty"` +} diff --git a/v2/model_nfs_volume_mount_endpoint.go b/v2/model_nfs_volume_mount_endpoint.go new file mode 100644 index 0000000..9da0dff --- /dev/null +++ b/v2/model_nfs_volume_mount_endpoint.go @@ -0,0 +1,18 @@ +/* + * StorageOS API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * API version: 2.3.0 + * Contact: info@storageos.com + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package api +// NfsVolumeMountEndpoint struct for NfsVolumeMountEndpoint +type NfsVolumeMountEndpoint struct { + // The address to which the NFS server is bound. + MountEndpoint string `json:"mountEndpoint,omitempty"` + // An opaque representation of an entity version at the time it was obtained from the API. All operations that mutate the entity must include this version field in the request unchanged. The format of this type is undefined and may change but the defined properties will not change. + Version string `json:"version,omitempty"` +} diff --git a/v2/model_node.go b/v2/model_node.go index 2291df2..6a50fac 100644 --- a/v2/model_node.go +++ b/v2/model_node.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_node_health.go b/v2/model_node_health.go index 32055a6..b6d57e8 100644 --- a/v2/model_node_health.go +++ b/v2/model_node_health.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_policy_group.go b/v2/model_policy_group.go index 08f9458..88e5b12 100644 --- a/v2/model_policy_group.go +++ b/v2/model_policy_group.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_policy_group_users.go b/v2/model_policy_group_users.go index f09a5d1..0fc0c95 100644 --- a/v2/model_policy_group_users.go +++ b/v2/model_policy_group_users.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_replica_deployment_info.go b/v2/model_replica_deployment_info.go index ebda8a0..5550da2 100644 --- a/v2/model_replica_deployment_info.go +++ b/v2/model_replica_deployment_info.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_replica_deployment_info_all_of.go b/v2/model_replica_deployment_info_all_of.go index 9f895b3..4c34de6 100644 --- a/v2/model_replica_deployment_info_all_of.go +++ b/v2/model_replica_deployment_info_all_of.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_replica_health.go b/v2/model_replica_health.go index 8edd503..b91e0aa 100644 --- a/v2/model_replica_health.go +++ b/v2/model_replica_health.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_resize_volume_request.go b/v2/model_resize_volume_request.go index 903e63d..281fae0 100644 --- a/v2/model_resize_volume_request.go +++ b/v2/model_resize_volume_request.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_set_replicas_request.go b/v2/model_set_replicas_request.go index dd37600..879c6cf 100644 --- a/v2/model_set_replicas_request.go +++ b/v2/model_set_replicas_request.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_sync_progress.go b/v2/model_sync_progress.go index 97665e3..1098bca 100644 --- a/v2/model_sync_progress.go +++ b/v2/model_sync_progress.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_authenticated_user_data.go b/v2/model_update_authenticated_user_data.go index c68b080..15fc69e 100644 --- a/v2/model_update_authenticated_user_data.go +++ b/v2/model_update_authenticated_user_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_cluster_data.go b/v2/model_update_cluster_data.go index dbd2836..13092e7 100644 --- a/v2/model_update_cluster_data.go +++ b/v2/model_update_cluster_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_licence.go b/v2/model_update_licence.go index 0f61606..d03f5ad 100644 --- a/v2/model_update_licence.go +++ b/v2/model_update_licence.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_namespace_data.go b/v2/model_update_namespace_data.go index 3d2197f..814e469 100644 --- a/v2/model_update_namespace_data.go +++ b/v2/model_update_namespace_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_node_data.go b/v2/model_update_node_data.go index ba4aa89..849d4ca 100644 --- a/v2/model_update_node_data.go +++ b/v2/model_update_node_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_policy_group_data.go b/v2/model_update_policy_group_data.go index 9f3019f..002a07e 100644 --- a/v2/model_update_policy_group_data.go +++ b/v2/model_update_policy_group_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_user_data.go b/v2/model_update_user_data.go index 0ea1eeb..75ce52b 100644 --- a/v2/model_update_user_data.go +++ b/v2/model_update_user_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_update_volume_data.go b/v2/model_update_volume_data.go index 010cb47..a70efce 100644 --- a/v2/model_update_volume_data.go +++ b/v2/model_update_volume_data.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_user.go b/v2/model_user.go index 45945b6..d29399d 100644 --- a/v2/model_user.go +++ b/v2/model_user.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_user_session.go b/v2/model_user_session.go index 883a84c..ba6849e 100644 --- a/v2/model_user_session.go +++ b/v2/model_user_session.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_user_session_all_of.go b/v2/model_user_session_all_of.go index cd4fe10..f0dad25 100644 --- a/v2/model_user_session_all_of.go +++ b/v2/model_user_session_all_of.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_user_session_all_of_session.go b/v2/model_user_session_all_of_session.go index d9d05be..724ba94 100644 --- a/v2/model_user_session_all_of_session.go +++ b/v2/model_user_session_all_of_session.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ diff --git a/v2/model_volume.go b/v2/model_volume.go index 08771bc..465eff3 100644 --- a/v2/model_volume.go +++ b/v2/model_volume.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ @@ -19,10 +19,12 @@ type Volume struct { Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` AttachedOn string `json:"attachedOn,omitempty"` + Nfs NfsConfig `json:"nfs,omitempty"` NamespaceID string `json:"namespaceID,omitempty"` // A set of arbitrary key value labels to apply to the entity. Labels map[string]string `json:"labels,omitempty"` FsType FsType `json:"fsType,omitempty"` + AttachmentType AttachType `json:"attachmentType,omitempty"` Master MasterDeploymentInfo `json:"master,omitempty"` Replicas *[]ReplicaDeploymentInfo `json:"replicas,omitempty"` // A volume's size in bytes diff --git a/v2/openapi.yaml b/v2/openapi.yaml index 84049ea..e047ee2 100644 --- a/v2/openapi.yaml +++ b/v2/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.2" info: title: "StorageOS API" - version: "2.2.0" + version: "2.3.0" contact: name: StorageOS url: https://storageos.com @@ -127,6 +127,19 @@ components: description: > The file system type of a volume. "block" is a raw block device (no filesystem). example: "ext4" + + AttachType: + type: string + readOnly: true + enum: + - "unknown" + - "detached" + - "nfs" + - "host" + description: > + The attachment type of a volume. "host" indicates that the + volume is consumed by the node it is attached to. + example: "host" NodeHealth: type: string @@ -166,7 +179,7 @@ components: description: > The operational health of a volume replica deployment example: "ready" - + SyncProgress: type: object readOnly: true @@ -194,7 +207,7 @@ components: example: 5 description: > The progress report for an ongoing sync. - + CapacityStats: type: object properties: @@ -216,7 +229,124 @@ components: description: > Byte value available to an unprivileged user example: 42 - + NfsAcl: + type: object + properties: + identity: + type: object + properties: + identityType: + type: string + enum: + - "cidr" + - "hostname" + - "netgroup" + description: > + The identity type used to identify the nfs client. + example: "hostname" + matcher: + type: string + description: > + NFS identity matcher. + + For "cidr", this should be a valid CIDR block string + such as "10.0.0.0/8". + + For "hostname", this must be the hostname sent by the + client, with ? and * wildcard characters. + + For netgroup, this must be in the form of + "@netgroup" with ? and * wildcard characters. + example: "*.prod.storageos.com" + squashConfig: + type: object + properties: + uid: + type: int64 + gid: + type: int64 + squash: + type: string + enum: + - "none" + - "root" + - "rootuid" + - "all" + description: > + SquashConfig defines the root squashing behaviour. + + When a client creates a file, it sends the user UID + from the client. If the client is running as root, + this sends uid=0. Root squashing allows the NFS + administrator to prevent the client from writing as + "root" to the NFS share, instead mapping the client + to a new UID/GID (usually nfsnobody, -2). + + "none" performs no UID/GID alterations, using the + values sent by the client. + + "root" mapps UID & GID 0 to the values specified. + + "rootuid" maps UID 0 and a GID of any value to the + value specified. + + "all" maps changes all UID and GID values to those + specified. + + example: "root" + accessLevel: + type: string + enum: + - "ro" + - "rw" + description: > + The access level this ACL grants - read-only, or read-write. + example: "rw" + + NfsExportConfig: + type: object + properties: + exportID: + type: uint64 + default: 0 + description: > + ID for this export + example: 42 + path: + type: string + default: "" + description: > + The path relative to the volume root to serve as the export root + example: "/very/important/files/" + pseudoPath: + type: string + default: "" + description: > + The configured pseudo path in the NFS virtual filesystem. + This is the path clients will see when traversing to this + export on the NFS share. + example: "/very/important/files/somewhere/else" + acls: + type: array + items: + $ref: "#/components/schemas/NfsAcl" + NFSConfig: + type: object + properties: + exports: + nullable: true + type: array + items: + $ref: "#/components/schemas/NfsExportConfig" + serviceEndpoint: + type: string + readOnly: true + nullable: true + default: "" + description: > + The address to which the NFS server is bound. + + Labels: type: object description: > @@ -443,6 +573,10 @@ components: readOnly: true allOf: - $ref: "#/components/schemas/NodeID" + nfs: + readOnly: true + nullable: true + $ref: "#/components/schemas/NFSConfig" namespaceID: readOnly: true allOf: @@ -451,6 +585,9 @@ components: $ref: "#/components/schemas/Labels" fsType: $ref: "#/components/schemas/FsType" + attachmentType: + readOnly: true + $ref: "#/components/schemas/AttachType" master: readOnly: true allOf: @@ -692,6 +829,14 @@ components: description: > A user friendly reference to the customer example: "Desmond" + features: + type: array + items: + type: string + nullable: true + description: > + A list of product features which are enabled by the + licence, subject to the installed version. version: $ref: "#/components/schemas/Version" description: > @@ -874,7 +1019,8 @@ components: InsufficientStorage: description: > - Available storage is not enough to handle the request. + Available storage is not enough to handle the request or + target node has reached maximum number of attached volumes. content: application/json: schema: @@ -2503,6 +2649,10 @@ paths: "500": $ref: "#/components/responses/ServerError" + + "507": + $ref: "#/components/responses/InsufficientStorage" + delete: summary: Detach the given volume operationId: detachVolume @@ -2544,6 +2694,215 @@ paths: "503": $ref: "#/components/responses/StoreError" + /namespaces/{namespaceID}/volumes/{id}/nfs/attach: + parameters: + - name: namespaceID + in: path + description: ID of a Namespace + required: true + schema: + $ref: "#/components/schemas/NamespaceID" + - name: id + in: path + description: ID of a Volume + required: true + schema: + $ref: "#/components/schemas/VolumeID" + + post: + summary: attach and share the volume using NFS + operationId: attachNFSVolume + description: > + Attach the given volume as an NFS volume. + + If no export configuration has been set via the + /nfs/export-config endpoint, the nfs service will start with + defaults settings (sharing the volume at its root). + security: + - jwt: [] + parameters: + - $ref: "#/components/parameters/IgnoreVersion" + - $ref: "#/components/parameters/AsyncHeader" + - $ref: "#/components/parameters/AsyncParam" + requestBody: + description: NFS volume configuration. The version is the corresponding volume's version. + required: true + content: + application/json: + schema: + type: object + title: AttachNFSVolumeData + properties: + version: + $ref: "#/components/schemas/Version" + + responses: + "200": + description: The volume was successfully attached. + + "400": + $ref: "#/components/responses/BadRequest" + + "401": + $ref: "#/components/responses/Unauthorised" + + "403": + $ref: "#/components/responses/Forbidden" + + "404": + $ref: "#/components/responses/NotFound" + + "409": + $ref: "#/components/responses/InUse" + + "412": + $ref: "#/components/responses/StaleWrite" + + "422": + $ref: "#/components/responses/InvalidStateTransition" + + "500": + $ref: "#/components/responses/ServerError" + + /namespaces/{namespaceID}/volumes/{id}/nfs/mount-endpoint: + parameters: + - name: namespaceID + in: path + description: ID of a Namespace + required: true + schema: + $ref: "#/components/schemas/NamespaceID" + - name: id + in: path + description: ID of a Volume + required: true + schema: + $ref: "#/components/schemas/VolumeID" + + put: + summary: Update an nfs volume's mount endpoint + operationId: updateNFSVolumeMountEndpoint + description: > + Update the NFS volume's mount endpoint + security: + - jwt: [] + parameters: + - $ref: "#/components/parameters/IgnoreVersion" + - $ref: "#/components/parameters/AsyncHeader" + - $ref: "#/components/parameters/AsyncParam" + requestBody: + description: > + Update an existing NFS volume's mount endpoint + required: true + content: + application/json: + schema: + type: object + title: NFSVolumeMountEndpoint + properties: + mountEndpoint: + type: string + default: "" + description: > + The address to which the NFS server is bound. + version: + $ref: "#/components/schemas/Version" + + responses: + "200": + description: The volume's mount endpoint was successfully updated. + + "400": + $ref: "#/components/responses/BadRequest" + + "401": + $ref: "#/components/responses/Unauthorised" + + "403": + $ref: "#/components/responses/Forbidden" + + "404": + $ref: "#/components/responses/NotFound" + + "409": + $ref: "#/components/responses/InUse" + + "412": + $ref: "#/components/responses/StaleWrite" + + "500": + $ref: "#/components/responses/ServerError" + + /namespaces/{namespaceID}/volumes/{id}/nfs/export-config: + parameters: + - name: namespaceID + in: path + description: ID of a Namespace + required: true + schema: + $ref: "#/components/schemas/NamespaceID" + - name: id + in: path + description: ID of a Volume + required: true + schema: + $ref: "#/components/schemas/VolumeID" + + put: + summary: Update an nfs volume's export configuration + operationId: updateNFSVolumeExports + description: > + Update the NFS volume's export configuration + security: + - jwt: [] + parameters: + - $ref: "#/components/parameters/IgnoreVersion" + - $ref: "#/components/parameters/AsyncHeader" + - $ref: "#/components/parameters/AsyncParam" + requestBody: + description: > + Updates an existing volume's NFS export configuration. + + The volume will use the given export configuration once + attached. + required: true + content: + application/json: + schema: + type: object + title: NFSVolumeExports + properties: + exports: + type: array + items: + $ref: "#/components/schemas/NfsExportConfig" + version: + $ref: "#/components/schemas/Version" + + responses: + "200": + description: The volume's NFS export configuration was successfully updated. + + "400": + $ref: "#/components/responses/BadRequest" + + "401": + $ref: "#/components/responses/Unauthorised" + + "403": + $ref: "#/components/responses/Forbidden" + + "404": + $ref: "#/components/responses/NotFound" + + "409": + $ref: "#/components/responses/InUse" + + "412": + $ref: "#/components/responses/StaleWrite" + + "500": + $ref: "#/components/responses/ServerError" /namespaces/{namespaceID}/volumes/{id}/replicas: parameters: @@ -2951,4 +3310,4 @@ paths: content: text/yaml: schema: - $ref: "#/components/schemas/OpenAPISpec" + $ref: "#/components/schemas/OpenAPISpec" \ No newline at end of file diff --git a/v2/response.go b/v2/response.go index bfc92e4..0b7198d 100644 --- a/v2/response.go +++ b/v2/response.go @@ -3,7 +3,7 @@ * * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * API version: 2.2.0 + * API version: 2.3.0 * Contact: info@storageos.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */