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