resource.proto 7.9 KB

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