xref: /aosp_15_r20/external/googleapis/google/cloud/managedidentities/v1beta1/resource.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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