xref: /aosp_15_r20/external/googleapis/google/cloud/netapp/v1/storage_pool.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.netapp.v1;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/cloud/netapp/v1/common.proto";
22import "google/protobuf/field_mask.proto";
23import "google/protobuf/timestamp.proto";
24
25option csharp_namespace = "Google.Cloud.NetApp.V1";
26option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb";
27option java_multiple_files = true;
28option java_outer_classname = "StoragePoolProto";
29option java_package = "com.google.cloud.netapp.v1";
30option php_namespace = "Google\\Cloud\\NetApp\\V1";
31option ruby_package = "Google::Cloud::NetApp::V1";
32
33// GetStoragePoolRequest gets a Storage Pool.
34message GetStoragePoolRequest {
35  // Required. Name of the storage pool
36  string name = 1 [
37    (google.api.field_behavior) = REQUIRED,
38    (google.api.resource_reference) = {
39      type: "netapp.googleapis.com/StoragePool"
40    }
41  ];
42}
43
44// ListStoragePoolsRequest lists Storage Pools.
45message ListStoragePoolsRequest {
46  // Required. Parent value
47  string parent = 1 [
48    (google.api.field_behavior) = REQUIRED,
49    (google.api.resource_reference) = {
50      child_type: "netapp.googleapis.com/StoragePool"
51    }
52  ];
53
54  // Optional. The maximum number of items to return.
55  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
56
57  // Optional. The next_page_token value to use if there are additional
58  // results to retrieve for this list request.
59  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
60
61  // Optional. Sort results. Supported values are "name", "name desc" or ""
62  // (unsorted).
63  string order_by = 4 [(google.api.field_behavior) = OPTIONAL];
64
65  // Optional. List filter.
66  string filter = 5 [(google.api.field_behavior) = OPTIONAL];
67}
68
69// ListStoragePoolsResponse is the response to a ListStoragePoolsRequest.
70message ListStoragePoolsResponse {
71  // The list of StoragePools
72  repeated StoragePool storage_pools = 1;
73
74  // A token identifying a page of results the server should return.
75  string next_page_token = 2;
76
77  // Locations that could not be reached.
78  repeated string unreachable = 3;
79}
80
81// CreateStoragePoolRequest creates a Storage Pool.
82message CreateStoragePoolRequest {
83  // Required. Value for parent.
84  string parent = 1 [
85    (google.api.field_behavior) = REQUIRED,
86    (google.api.resource_reference) = {
87      child_type: "netapp.googleapis.com/StoragePool"
88    }
89  ];
90
91  // Required. Id of the requesting storage pool
92  // If auto-generating Id server-side, remove this field and
93  // id from the method_signature of Create RPC
94  string storage_pool_id = 2 [(google.api.field_behavior) = REQUIRED];
95
96  // Required. The required parameters to create a new storage pool.
97  StoragePool storage_pool = 3 [(google.api.field_behavior) = REQUIRED];
98}
99
100// UpdateStoragePoolRequest updates a Storage Pool.
101message UpdateStoragePoolRequest {
102  // Required. Field mask is used to specify the fields to be overwritten in the
103  // StoragePool resource by the update.
104  // The fields specified in the update_mask are relative to the resource, not
105  // the full request. A field will be overwritten if it is in the mask. If the
106  // user does not provide a mask then all fields will be overwritten.
107  google.protobuf.FieldMask update_mask = 1
108      [(google.api.field_behavior) = REQUIRED];
109
110  // Required. The pool being updated
111  StoragePool storage_pool = 2 [(google.api.field_behavior) = REQUIRED];
112}
113
114// DeleteStoragePoolRequest deletes a Storage Pool.
115message DeleteStoragePoolRequest {
116  // Required. Name of the storage pool
117  string name = 1 [
118    (google.api.field_behavior) = REQUIRED,
119    (google.api.resource_reference) = {
120      type: "netapp.googleapis.com/StoragePool"
121    }
122  ];
123}
124
125// StoragePool is a container for volumes with a service level and capacity.
126// Volumes can be created in a pool of sufficient available capacity.
127// StoragePool capacity is what you are billed for.
128message StoragePool {
129  option (google.api.resource) = {
130    type: "netapp.googleapis.com/StoragePool"
131    pattern: "projects/{project}/locations/{location}/storagePools/{storage_pool}"
132    plural: "storagePools"
133    singular: "storagePool"
134  };
135
136  // The Storage Pool States
137  enum State {
138    // Unspecified Storage Pool State
139    STATE_UNSPECIFIED = 0;
140
141    // Storage Pool State is Ready
142    READY = 1;
143
144    // Storage Pool State is Creating
145    CREATING = 2;
146
147    // Storage Pool State is Deleting
148    DELETING = 3;
149
150    // Storage Pool State is Updating
151    UPDATING = 4;
152
153    // Storage Pool State is Restoring
154    RESTORING = 5;
155
156    // Storage Pool State is Disabled
157    DISABLED = 6;
158
159    // Storage Pool State is Error
160    ERROR = 7;
161  }
162
163  // Identifier. Name of the storage pool
164  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
165
166  // Required. Service level of the storage pool
167  ServiceLevel service_level = 2 [(google.api.field_behavior) = REQUIRED];
168
169  // Required. Capacity in GIB of the pool
170  int64 capacity_gib = 3 [(google.api.field_behavior) = REQUIRED];
171
172  // Output only. Allocated size of all volumes in GIB in the storage pool
173  int64 volume_capacity_gib = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
174
175  // Output only. Volume count of the storage pool
176  int32 volume_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
177
178  // Output only. State of the storage pool
179  State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
180
181  // Output only. State details of the storage pool
182  string state_details = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
183
184  // Output only. Create time of the storage pool
185  google.protobuf.Timestamp create_time = 8
186      [(google.api.field_behavior) = OUTPUT_ONLY];
187
188  // Optional. Description of the storage pool
189  string description = 9 [(google.api.field_behavior) = OPTIONAL];
190
191  // Optional. Labels as key value pairs
192  map<string, string> labels = 10 [(google.api.field_behavior) = OPTIONAL];
193
194  // Required. VPC Network name.
195  // Format: projects/{project}/global/networks/{network}
196  string network = 11 [
197    (google.api.field_behavior) = REQUIRED,
198    (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
199  ];
200
201  // Optional. Specifies the Active Directory to be used for creating a SMB
202  // volume.
203  string active_directory = 12 [
204    (google.api.field_behavior) = OPTIONAL,
205    (google.api.resource_reference) = {
206      type: "netapp.googleapis.com/ActiveDirectory"
207    }
208  ];
209
210  // Optional. Specifies the KMS config to be used for volume encryption.
211  string kms_config = 13 [
212    (google.api.field_behavior) = OPTIONAL,
213    (google.api.resource_reference) = {
214      type: "netapp.googleapis.com/KmsConfig"
215    }
216  ];
217
218  // Optional. Flag indicating if the pool is NFS LDAP enabled or not.
219  bool ldap_enabled = 14 [(google.api.field_behavior) = OPTIONAL];
220
221  // Optional. This field is not implemented. The values provided in this field
222  // are ignored.
223  string psa_range = 15 [(google.api.field_behavior) = OPTIONAL];
224
225  // Output only. Specifies the current pool encryption key source.
226  EncryptionType encryption_type = 16
227      [(google.api.field_behavior) = OUTPUT_ONLY];
228
229  // Deprecated. Used to allow SO pool to access AD or DNS server from other
230  // regions.
231  optional bool global_access_allowed = 17 [deprecated = true];
232}
233