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/protobuf/field_mask.proto"; 22import "google/protobuf/timestamp.proto"; 23 24option csharp_namespace = "Google.Cloud.NetApp.V1"; 25option go_package = "cloud.google.com/go/netapp/apiv1/netapppb;netapppb"; 26option java_multiple_files = true; 27option java_outer_classname = "ActiveDirectoryProto"; 28option java_package = "com.google.cloud.netapp.v1"; 29option php_namespace = "Google\\Cloud\\NetApp\\V1"; 30option ruby_package = "Google::Cloud::NetApp::V1"; 31 32// ListActiveDirectoriesRequest for requesting multiple active directories. 33message ListActiveDirectoriesRequest { 34 // Required. Parent value for ListActiveDirectoriesRequest 35 string parent = 1 [ 36 (google.api.field_behavior) = REQUIRED, 37 (google.api.resource_reference) = { 38 child_type: "netapp.googleapis.com/ActiveDirectory" 39 } 40 ]; 41 42 // Requested page size. Server may return fewer items than requested. 43 // If unspecified, the server will pick an appropriate default. 44 int32 page_size = 2; 45 46 // A token identifying a page of results the server should return. 47 string page_token = 3; 48 49 // Filtering results 50 string filter = 4; 51 52 // Hint for how to order the results 53 string order_by = 5; 54} 55 56// ListActiveDirectoriesResponse contains all the active directories requested. 57message ListActiveDirectoriesResponse { 58 // The list of active directories. 59 repeated ActiveDirectory active_directories = 1; 60 61 // A token identifying a page of results the server should return. 62 string next_page_token = 2; 63 64 // Locations that could not be reached. 65 repeated string unreachable = 3; 66} 67 68// GetActiveDirectory for getting a single active directory. 69message GetActiveDirectoryRequest { 70 // Required. Name of the active directory. 71 string name = 1 [ 72 (google.api.field_behavior) = REQUIRED, 73 (google.api.resource_reference) = { 74 type: "netapp.googleapis.com/ActiveDirectory" 75 } 76 ]; 77} 78 79// CreateActiveDirectoryRequest for creating an active directory. 80message CreateActiveDirectoryRequest { 81 // Required. Value for parent. 82 string parent = 1 [ 83 (google.api.field_behavior) = REQUIRED, 84 (google.api.resource_reference) = { 85 child_type: "netapp.googleapis.com/ActiveDirectory" 86 } 87 ]; 88 89 // Required. Fields of the to be created active directory. 90 ActiveDirectory active_directory = 2 [(google.api.field_behavior) = REQUIRED]; 91 92 // Required. ID of the active directory to create. 93 string active_directory_id = 3 [(google.api.field_behavior) = REQUIRED]; 94} 95 96// UpdateActiveDirectoryRequest for updating an active directory. 97message UpdateActiveDirectoryRequest { 98 // Required. Field mask is used to specify the fields to be overwritten in the 99 // Active Directory resource by the update. 100 // The fields specified in the update_mask are relative to the resource, not 101 // the full request. A field will be overwritten if it is in the mask. If the 102 // user does not provide a mask then all fields will be overwritten. 103 google.protobuf.FieldMask update_mask = 1 104 [(google.api.field_behavior) = REQUIRED]; 105 106 // Required. The volume being updated 107 ActiveDirectory active_directory = 2 [(google.api.field_behavior) = REQUIRED]; 108} 109 110// DeleteActiveDirectoryRequest for deleting a single active directory. 111message DeleteActiveDirectoryRequest { 112 // Required. Name of the active directory. 113 string name = 1 [ 114 (google.api.field_behavior) = REQUIRED, 115 (google.api.resource_reference) = { 116 type: "netapp.googleapis.com/ActiveDirectory" 117 } 118 ]; 119} 120 121// ActiveDirectory is the public representation of the active directory config. 122message ActiveDirectory { 123 option (google.api.resource) = { 124 type: "netapp.googleapis.com/ActiveDirectory" 125 pattern: "projects/{project}/locations/{location}/activeDirectories/{active_directory}" 126 plural: "activeDirectories" 127 singular: "activeDirectory" 128 }; 129 130 // The Active Directory States 131 enum State { 132 // Unspecified Active Directory State 133 STATE_UNSPECIFIED = 0; 134 135 // Active Directory State is Creating 136 CREATING = 1; 137 138 // Active Directory State is Ready 139 READY = 2; 140 141 // Active Directory State is Updating 142 UPDATING = 3; 143 144 // Active Directory State is In use 145 IN_USE = 4; 146 147 // Active Directory State is Deleting 148 DELETING = 5; 149 150 // Active Directory State is Error 151 ERROR = 6; 152 } 153 154 // Identifier. The resource name of the active directory. 155 // Format: 156 // `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`. 157 string name = 1 [(google.api.field_behavior) = IDENTIFIER]; 158 159 // Output only. Create time of the active directory. 160 google.protobuf.Timestamp create_time = 2 161 [(google.api.field_behavior) = OUTPUT_ONLY]; 162 163 // Output only. The state of the AD. 164 State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 165 166 // Required. Name of the Active Directory domain 167 string domain = 4 [(google.api.field_behavior) = REQUIRED]; 168 169 // The Active Directory site the service will limit Domain Controller 170 // discovery too. 171 string site = 5; 172 173 // Required. Comma separated list of DNS server IP addresses for the Active 174 // Directory domain. 175 string dns = 6 [(google.api.field_behavior) = REQUIRED]; 176 177 // Required. NetBIOSPrefix is used as a prefix for SMB server name. 178 string net_bios_prefix = 7 [(google.api.field_behavior) = REQUIRED]; 179 180 // The Organizational Unit (OU) within the Windows Active Directory the user 181 // belongs to. 182 string organizational_unit = 8; 183 184 // If enabled, AES encryption will be enabled for SMB communication. 185 bool aes_encryption = 9; 186 187 // Required. Username of the Active Directory domain administrator. 188 string username = 10 [(google.api.field_behavior) = REQUIRED]; 189 190 // Required. Password of the Active Directory domain administrator. 191 string password = 11 [(google.api.field_behavior) = REQUIRED]; 192 193 // Optional. Users to be added to the Built-in Backup Operator active 194 // directory group. 195 repeated string backup_operators = 12 196 [(google.api.field_behavior) = OPTIONAL]; 197 198 // Optional. Domain users to be given the SeSecurityPrivilege. 199 repeated string security_operators = 13 200 [(google.api.field_behavior) = OPTIONAL]; 201 202 // Name of the active directory machine. This optional parameter is used only 203 // while creating kerberos volume 204 string kdc_hostname = 14; 205 206 // KDC server IP address for the active directory machine. 207 string kdc_ip = 15; 208 209 // If enabled, will allow access to local users and LDAP users. If access is 210 // needed for only LDAP users, it has to be disabled. 211 bool nfs_users_with_ldap = 16; 212 213 // Description of the active directory. 214 string description = 17; 215 216 // Specifies whether or not the LDAP traffic needs to be signed. 217 bool ldap_signing = 18; 218 219 // If enabled, traffic between the SMB server to Domain Controller (DC) will 220 // be encrypted. 221 bool encrypt_dc_connections = 19; 222 223 // Labels for the active directory. 224 map<string, string> labels = 20; 225 226 // Output only. The state details of the Active Directory. 227 string state_details = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; 228} 229