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