1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 Google LLC. 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker// 15*d5c09012SAndroid Build Coastguard Worker 16*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 17*d5c09012SAndroid Build Coastguard Worker 18*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.managedidentities.v1; 19*d5c09012SAndroid Build Coastguard Worker 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ManagedIdentities.V1"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/managedidentities/apiv1/managedidentitiespb;managedidentitiespb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourceProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.managedidentities.v1"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ManagedIdentities\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ManagedIdentities::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// Represents a managed Microsoft Active Directory domain. 33*d5c09012SAndroid Build Coastguard Workermessage Domain { 34*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 35*d5c09012SAndroid Build Coastguard Worker type: "managedidentities.googleapis.com/Domain" 36*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/domains/{domain}" 37*d5c09012SAndroid Build Coastguard Worker }; 38*d5c09012SAndroid Build Coastguard Worker 39*d5c09012SAndroid Build Coastguard Worker // Represents the different states of a managed domain. 40*d5c09012SAndroid Build Coastguard Worker enum State { 41*d5c09012SAndroid Build Coastguard Worker // Not set. 42*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker // The domain is being created. 45*d5c09012SAndroid Build Coastguard Worker CREATING = 1; 46*d5c09012SAndroid Build Coastguard Worker 47*d5c09012SAndroid Build Coastguard Worker // The domain has been created and is fully usable. 48*d5c09012SAndroid Build Coastguard Worker READY = 2; 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // The domain's configuration is being updated. 51*d5c09012SAndroid Build Coastguard Worker UPDATING = 3; 52*d5c09012SAndroid Build Coastguard Worker 53*d5c09012SAndroid Build Coastguard Worker // The domain is being deleted. 54*d5c09012SAndroid Build Coastguard Worker DELETING = 4; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // The domain is being repaired and may be unusable. Details 57*d5c09012SAndroid Build Coastguard Worker // can be found in the `status_message` field. 58*d5c09012SAndroid Build Coastguard Worker REPAIRING = 5; 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // The domain is undergoing maintenance. 61*d5c09012SAndroid Build Coastguard Worker PERFORMING_MAINTENANCE = 6; 62*d5c09012SAndroid Build Coastguard Worker 63*d5c09012SAndroid Build Coastguard Worker // The domain is not serving requests. 64*d5c09012SAndroid Build Coastguard Worker UNAVAILABLE = 7; 65*d5c09012SAndroid Build Coastguard Worker } 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // Required. The unique name of the domain using the form: 68*d5c09012SAndroid Build Coastguard Worker // `projects/{project_id}/locations/global/domains/{domain_name}`. 69*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = REQUIRED]; 70*d5c09012SAndroid Build Coastguard Worker 71*d5c09012SAndroid Build Coastguard Worker // Optional. Resource labels that can contain user-provided metadata. 72*d5c09012SAndroid Build Coastguard Worker map<string, string> labels = 2 [(google.api.field_behavior) = OPTIONAL]; 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // Optional. The full names of the Google Compute Engine 75*d5c09012SAndroid Build Coastguard Worker // [networks](/compute/docs/networks-and-firewalls#networks) the domain 76*d5c09012SAndroid Build Coastguard Worker // instance is connected to. Networks can be added using UpdateDomain. 77*d5c09012SAndroid Build Coastguard Worker // The domain is only available on networks listed in `authorized_networks`. 78*d5c09012SAndroid Build Coastguard Worker // If CIDR subnets overlap between networks, domain creation will fail. 79*d5c09012SAndroid Build Coastguard Worker repeated string authorized_networks = 3 [(google.api.field_behavior) = OPTIONAL]; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Required. The CIDR range of internal addresses that are reserved for this 82*d5c09012SAndroid Build Coastguard Worker // domain. Reserved networks must be /24 or larger. Ranges must be 83*d5c09012SAndroid Build Coastguard Worker // unique and non-overlapping with existing subnets in 84*d5c09012SAndroid Build Coastguard Worker // [Domain].[authorized_networks]. 85*d5c09012SAndroid Build Coastguard Worker string reserved_ip_range = 4 [(google.api.field_behavior) = REQUIRED]; 86*d5c09012SAndroid Build Coastguard Worker 87*d5c09012SAndroid Build Coastguard Worker // Required. Locations where domain needs to be provisioned. 88*d5c09012SAndroid Build Coastguard Worker // [regions][compute/docs/regions-zones/] 89*d5c09012SAndroid Build Coastguard Worker // e.g. us-west1 or us-east4 90*d5c09012SAndroid Build Coastguard Worker // Service supports up to 4 locations at once. Each location will use a /26 91*d5c09012SAndroid Build Coastguard Worker // block. 92*d5c09012SAndroid Build Coastguard Worker repeated string locations = 5 [(google.api.field_behavior) = REQUIRED]; 93*d5c09012SAndroid Build Coastguard Worker 94*d5c09012SAndroid Build Coastguard Worker // Optional. The name of delegated administrator account used to perform 95*d5c09012SAndroid Build Coastguard Worker // Active Directory operations. If not specified, `setupadmin` will be used. 96*d5c09012SAndroid Build Coastguard Worker string admin = 6 [(google.api.field_behavior) = OPTIONAL]; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Output only. The fully-qualified domain name of the exposed domain used by 99*d5c09012SAndroid Build Coastguard Worker // clients to connect to the service. Similar to what would be chosen for an 100*d5c09012SAndroid Build Coastguard Worker // Active Directory set up on an internal network. 101*d5c09012SAndroid Build Coastguard Worker string fqdn = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 102*d5c09012SAndroid Build Coastguard Worker 103*d5c09012SAndroid Build Coastguard Worker // Output only. The time the instance was created. 104*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 105*d5c09012SAndroid Build Coastguard Worker 106*d5c09012SAndroid Build Coastguard Worker // Output only. The last update time. 107*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // Output only. The current state of this domain. 110*d5c09012SAndroid Build Coastguard Worker State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 111*d5c09012SAndroid Build Coastguard Worker 112*d5c09012SAndroid Build Coastguard Worker // Output only. Additional information about the current status of this 113*d5c09012SAndroid Build Coastguard Worker // domain, if available. 114*d5c09012SAndroid Build Coastguard Worker string status_message = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 115*d5c09012SAndroid Build Coastguard Worker 116*d5c09012SAndroid Build Coastguard Worker // Output only. The current trusts associated with the domain. 117*d5c09012SAndroid Build Coastguard Worker repeated Trust trusts = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 118*d5c09012SAndroid Build Coastguard Worker} 119*d5c09012SAndroid Build Coastguard Worker 120*d5c09012SAndroid Build Coastguard Worker// Represents a relationship between two domains. This allows a controller in 121*d5c09012SAndroid Build Coastguard Worker// one domain to authenticate a user in another domain. 122*d5c09012SAndroid Build Coastguard Workermessage Trust { 123*d5c09012SAndroid Build Coastguard Worker // Represents the different states of a domain trust. 124*d5c09012SAndroid Build Coastguard Worker enum State { 125*d5c09012SAndroid Build Coastguard Worker // Not set. 126*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // The domain trust is being created. 129*d5c09012SAndroid Build Coastguard Worker CREATING = 1; 130*d5c09012SAndroid Build Coastguard Worker 131*d5c09012SAndroid Build Coastguard Worker // The domain trust is being updated. 132*d5c09012SAndroid Build Coastguard Worker UPDATING = 2; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // The domain trust is being deleted. 135*d5c09012SAndroid Build Coastguard Worker DELETING = 3; 136*d5c09012SAndroid Build Coastguard Worker 137*d5c09012SAndroid Build Coastguard Worker // The domain trust is connected. 138*d5c09012SAndroid Build Coastguard Worker CONNECTED = 4; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // The domain trust is disconnected. 141*d5c09012SAndroid Build Coastguard Worker DISCONNECTED = 5; 142*d5c09012SAndroid Build Coastguard Worker } 143*d5c09012SAndroid Build Coastguard Worker 144*d5c09012SAndroid Build Coastguard Worker // Represents the different inter-forest trust types. 145*d5c09012SAndroid Build Coastguard Worker enum TrustType { 146*d5c09012SAndroid Build Coastguard Worker // Not set. 147*d5c09012SAndroid Build Coastguard Worker TRUST_TYPE_UNSPECIFIED = 0; 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker // The forest trust. 150*d5c09012SAndroid Build Coastguard Worker FOREST = 1; 151*d5c09012SAndroid Build Coastguard Worker 152*d5c09012SAndroid Build Coastguard Worker // The external domain trust. 153*d5c09012SAndroid Build Coastguard Worker EXTERNAL = 2; 154*d5c09012SAndroid Build Coastguard Worker } 155*d5c09012SAndroid Build Coastguard Worker 156*d5c09012SAndroid Build Coastguard Worker // Represents the direction of trust. 157*d5c09012SAndroid Build Coastguard Worker // See 158*d5c09012SAndroid Build Coastguard Worker // [System.DirectoryServices.ActiveDirectory.TrustDirection](https://docs.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectory.trustdirection?view=netframework-4.7.2) 159*d5c09012SAndroid Build Coastguard Worker // for more information. 160*d5c09012SAndroid Build Coastguard Worker enum TrustDirection { 161*d5c09012SAndroid Build Coastguard Worker // Not set. 162*d5c09012SAndroid Build Coastguard Worker TRUST_DIRECTION_UNSPECIFIED = 0; 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker // The inbound direction represents the trusting side. 165*d5c09012SAndroid Build Coastguard Worker INBOUND = 1; 166*d5c09012SAndroid Build Coastguard Worker 167*d5c09012SAndroid Build Coastguard Worker // The outboud direction represents the trusted side. 168*d5c09012SAndroid Build Coastguard Worker OUTBOUND = 2; 169*d5c09012SAndroid Build Coastguard Worker 170*d5c09012SAndroid Build Coastguard Worker // The bidirectional direction represents the trusted / trusting side. 171*d5c09012SAndroid Build Coastguard Worker BIDIRECTIONAL = 3; 172*d5c09012SAndroid Build Coastguard Worker } 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // Required. The fully qualified target domain name which will be in trust with the 175*d5c09012SAndroid Build Coastguard Worker // current domain. 176*d5c09012SAndroid Build Coastguard Worker string target_domain_name = 1 [(google.api.field_behavior) = REQUIRED]; 177*d5c09012SAndroid Build Coastguard Worker 178*d5c09012SAndroid Build Coastguard Worker // Required. The type of trust represented by the trust resource. 179*d5c09012SAndroid Build Coastguard Worker TrustType trust_type = 2 [(google.api.field_behavior) = REQUIRED]; 180*d5c09012SAndroid Build Coastguard Worker 181*d5c09012SAndroid Build Coastguard Worker // Required. The trust direction, which decides if the current domain is trusted, 182*d5c09012SAndroid Build Coastguard Worker // trusting, or both. 183*d5c09012SAndroid Build Coastguard Worker TrustDirection trust_direction = 3 [(google.api.field_behavior) = REQUIRED]; 184*d5c09012SAndroid Build Coastguard Worker 185*d5c09012SAndroid Build Coastguard Worker // Optional. The trust authentication type, which decides whether the trusted side has 186*d5c09012SAndroid Build Coastguard Worker // forest/domain wide access or selective access to an approved set of 187*d5c09012SAndroid Build Coastguard Worker // resources. 188*d5c09012SAndroid Build Coastguard Worker bool selective_authentication = 4 [(google.api.field_behavior) = OPTIONAL]; 189*d5c09012SAndroid Build Coastguard Worker 190*d5c09012SAndroid Build Coastguard Worker // Required. The target DNS server IP addresses which can resolve the remote domain 191*d5c09012SAndroid Build Coastguard Worker // involved in the trust. 192*d5c09012SAndroid Build Coastguard Worker repeated string target_dns_ip_addresses = 5 [(google.api.field_behavior) = REQUIRED]; 193*d5c09012SAndroid Build Coastguard Worker 194*d5c09012SAndroid Build Coastguard Worker // Required. The trust secret used for the handshake with the target domain. This will 195*d5c09012SAndroid Build Coastguard Worker // not be stored. 196*d5c09012SAndroid Build Coastguard Worker string trust_handshake_secret = 6 [(google.api.field_behavior) = REQUIRED]; 197*d5c09012SAndroid Build Coastguard Worker 198*d5c09012SAndroid Build Coastguard Worker // Output only. The time the instance was created. 199*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker // Output only. The last update time. 202*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 203*d5c09012SAndroid Build Coastguard Worker 204*d5c09012SAndroid Build Coastguard Worker // Output only. The current state of the trust. 205*d5c09012SAndroid Build Coastguard Worker State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 206*d5c09012SAndroid Build Coastguard Worker 207*d5c09012SAndroid Build Coastguard Worker // Output only. Additional information about the current state of the trust, if available. 208*d5c09012SAndroid Build Coastguard Worker string state_description = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 209*d5c09012SAndroid Build Coastguard Worker 210*d5c09012SAndroid Build Coastguard Worker // Output only. The last heartbeat time when the trust was known to be connected. 211*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp last_trust_heartbeat_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 212*d5c09012SAndroid Build Coastguard Worker} 213