1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 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 Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.resourcemanager.v3; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/iam/v1/iam_policy.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/iam/v1/policy.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto"; 26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 28*d5c09012SAndroid Build Coastguard Worker 29*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.ResourceManager.V3"; 30*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/resourcemanager/apiv3/resourcemanagerpb;resourcemanagerpb"; 31*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 32*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ProjectsProto"; 33*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.resourcemanager.v3"; 34*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\ResourceManager\\V3"; 35*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::ResourceManager::V3"; 36*d5c09012SAndroid Build Coastguard Worker 37*d5c09012SAndroid Build Coastguard Worker// Manages Google Cloud Projects. 38*d5c09012SAndroid Build Coastguard Workerservice Projects { 39*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "cloudresourcemanager.googleapis.com"; 40*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = 41*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform," 42*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform.read-only"; 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker // Retrieves the project identified by the specified `name` (for example, 45*d5c09012SAndroid Build Coastguard Worker // `projects/415104041262`). 46*d5c09012SAndroid Build Coastguard Worker // 47*d5c09012SAndroid Build Coastguard Worker // The caller must have `resourcemanager.projects.get` permission 48*d5c09012SAndroid Build Coastguard Worker // for this project. 49*d5c09012SAndroid Build Coastguard Worker rpc GetProject(GetProjectRequest) returns (Project) { 50*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 51*d5c09012SAndroid Build Coastguard Worker get: "/v3/{name=projects/*}" 52*d5c09012SAndroid Build Coastguard Worker }; 53*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 54*d5c09012SAndroid Build Coastguard Worker } 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // Lists projects that are direct children of the specified folder or 57*d5c09012SAndroid Build Coastguard Worker // organization resource. `list()` provides a strongly consistent view of the 58*d5c09012SAndroid Build Coastguard Worker // projects underneath the specified parent resource. `list()` returns 59*d5c09012SAndroid Build Coastguard Worker // projects sorted based upon the (ascending) lexical ordering of their 60*d5c09012SAndroid Build Coastguard Worker // `display_name`. The caller must have `resourcemanager.projects.list` 61*d5c09012SAndroid Build Coastguard Worker // permission on the identified parent. 62*d5c09012SAndroid Build Coastguard Worker rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) { 63*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 64*d5c09012SAndroid Build Coastguard Worker get: "/v3/projects" 65*d5c09012SAndroid Build Coastguard Worker }; 66*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 67*d5c09012SAndroid Build Coastguard Worker } 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // Search for projects that the caller has both `resourcemanager.projects.get` 70*d5c09012SAndroid Build Coastguard Worker // permission on, and also satisfy the specified query. 71*d5c09012SAndroid Build Coastguard Worker // 72*d5c09012SAndroid Build Coastguard Worker // This method returns projects in an unspecified order. 73*d5c09012SAndroid Build Coastguard Worker // 74*d5c09012SAndroid Build Coastguard Worker // This method is eventually consistent with project mutations; this means 75*d5c09012SAndroid Build Coastguard Worker // that a newly created project may not appear in the results or recent 76*d5c09012SAndroid Build Coastguard Worker // updates to an existing project may not be reflected in the results. To 77*d5c09012SAndroid Build Coastguard Worker // retrieve the latest state of a project, use the 78*d5c09012SAndroid Build Coastguard Worker // [GetProject][google.cloud.resourcemanager.v3.Projects.GetProject] method. 79*d5c09012SAndroid Build Coastguard Worker rpc SearchProjects(SearchProjectsRequest) returns (SearchProjectsResponse) { 80*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 81*d5c09012SAndroid Build Coastguard Worker get: "/v3/projects:search" 82*d5c09012SAndroid Build Coastguard Worker }; 83*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "query"; 84*d5c09012SAndroid Build Coastguard Worker } 85*d5c09012SAndroid Build Coastguard Worker 86*d5c09012SAndroid Build Coastguard Worker // Request that a new project be created. The result is an `Operation` which 87*d5c09012SAndroid Build Coastguard Worker // can be used to track the creation process. This process usually takes a few 88*d5c09012SAndroid Build Coastguard Worker // seconds, but can sometimes take much longer. The tracking `Operation` is 89*d5c09012SAndroid Build Coastguard Worker // automatically deleted after a few hours, so there is no need to call 90*d5c09012SAndroid Build Coastguard Worker // `DeleteOperation`. 91*d5c09012SAndroid Build Coastguard Worker rpc CreateProject(CreateProjectRequest) 92*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 93*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 94*d5c09012SAndroid Build Coastguard Worker post: "/v3/projects" 95*d5c09012SAndroid Build Coastguard Worker body: "project" 96*d5c09012SAndroid Build Coastguard Worker }; 97*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "project"; 98*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 99*d5c09012SAndroid Build Coastguard Worker response_type: "Project" 100*d5c09012SAndroid Build Coastguard Worker metadata_type: "CreateProjectMetadata" 101*d5c09012SAndroid Build Coastguard Worker }; 102*d5c09012SAndroid Build Coastguard Worker } 103*d5c09012SAndroid Build Coastguard Worker 104*d5c09012SAndroid Build Coastguard Worker // Updates the `display_name` and labels of the project identified by the 105*d5c09012SAndroid Build Coastguard Worker // specified `name` (for example, `projects/415104041262`). Deleting all 106*d5c09012SAndroid Build Coastguard Worker // labels requires an update mask for labels field. 107*d5c09012SAndroid Build Coastguard Worker // 108*d5c09012SAndroid Build Coastguard Worker // The caller must have `resourcemanager.projects.update` permission for this 109*d5c09012SAndroid Build Coastguard Worker // project. 110*d5c09012SAndroid Build Coastguard Worker rpc UpdateProject(UpdateProjectRequest) 111*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 112*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 113*d5c09012SAndroid Build Coastguard Worker patch: "/v3/{project.name=projects/*}" 114*d5c09012SAndroid Build Coastguard Worker body: "project" 115*d5c09012SAndroid Build Coastguard Worker }; 116*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "project,update_mask"; 117*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 118*d5c09012SAndroid Build Coastguard Worker response_type: "Project" 119*d5c09012SAndroid Build Coastguard Worker metadata_type: "UpdateProjectMetadata" 120*d5c09012SAndroid Build Coastguard Worker }; 121*d5c09012SAndroid Build Coastguard Worker } 122*d5c09012SAndroid Build Coastguard Worker 123*d5c09012SAndroid Build Coastguard Worker // Move a project to another place in your resource hierarchy, under a new 124*d5c09012SAndroid Build Coastguard Worker // resource parent. 125*d5c09012SAndroid Build Coastguard Worker // 126*d5c09012SAndroid Build Coastguard Worker // Returns an operation which can be used to track the process of the project 127*d5c09012SAndroid Build Coastguard Worker // move workflow. 128*d5c09012SAndroid Build Coastguard Worker // Upon success, the `Operation.response` field will be populated with the 129*d5c09012SAndroid Build Coastguard Worker // moved project. 130*d5c09012SAndroid Build Coastguard Worker // 131*d5c09012SAndroid Build Coastguard Worker // The caller must have `resourcemanager.projects.move` permission on the 132*d5c09012SAndroid Build Coastguard Worker // project, on the project's current and proposed new parent. 133*d5c09012SAndroid Build Coastguard Worker // 134*d5c09012SAndroid Build Coastguard Worker // If project has no current parent, or it currently does not have an 135*d5c09012SAndroid Build Coastguard Worker // associated organization resource, you will also need the 136*d5c09012SAndroid Build Coastguard Worker // `resourcemanager.projects.setIamPolicy` permission in the project. 137*d5c09012SAndroid Build Coastguard Worker // 138*d5c09012SAndroid Build Coastguard Worker // 139*d5c09012SAndroid Build Coastguard Worker rpc MoveProject(MoveProjectRequest) returns (google.longrunning.Operation) { 140*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 141*d5c09012SAndroid Build Coastguard Worker post: "/v3/{name=projects/*}:move" 142*d5c09012SAndroid Build Coastguard Worker body: "*" 143*d5c09012SAndroid Build Coastguard Worker }; 144*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name, destination_parent"; 145*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 146*d5c09012SAndroid Build Coastguard Worker response_type: "Project" 147*d5c09012SAndroid Build Coastguard Worker metadata_type: "MoveProjectMetadata" 148*d5c09012SAndroid Build Coastguard Worker }; 149*d5c09012SAndroid Build Coastguard Worker } 150*d5c09012SAndroid Build Coastguard Worker 151*d5c09012SAndroid Build Coastguard Worker // Marks the project identified by the specified 152*d5c09012SAndroid Build Coastguard Worker // `name` (for example, `projects/415104041262`) for deletion. 153*d5c09012SAndroid Build Coastguard Worker // 154*d5c09012SAndroid Build Coastguard Worker // This method will only affect the project if it has a lifecycle state of 155*d5c09012SAndroid Build Coastguard Worker // [ACTIVE][google.cloud.resourcemanager.v3.Project.State.ACTIVE]. 156*d5c09012SAndroid Build Coastguard Worker // 157*d5c09012SAndroid Build Coastguard Worker // This method changes the Project's lifecycle state from 158*d5c09012SAndroid Build Coastguard Worker // [ACTIVE][google.cloud.resourcemanager.v3.Project.State.ACTIVE] 159*d5c09012SAndroid Build Coastguard Worker // to 160*d5c09012SAndroid Build Coastguard Worker // [DELETE_REQUESTED][google.cloud.resourcemanager.v3.Project.State.DELETE_REQUESTED]. 161*d5c09012SAndroid Build Coastguard Worker // The deletion starts at an unspecified time, 162*d5c09012SAndroid Build Coastguard Worker // at which point the Project is no longer accessible. 163*d5c09012SAndroid Build Coastguard Worker // 164*d5c09012SAndroid Build Coastguard Worker // Until the deletion completes, you can check the lifecycle state 165*d5c09012SAndroid Build Coastguard Worker // checked by retrieving the project with [GetProject] 166*d5c09012SAndroid Build Coastguard Worker // [google.cloud.resourcemanager.v3.Projects.GetProject], 167*d5c09012SAndroid Build Coastguard Worker // and the project remains visible to [ListProjects] 168*d5c09012SAndroid Build Coastguard Worker // [google.cloud.resourcemanager.v3.Projects.ListProjects]. 169*d5c09012SAndroid Build Coastguard Worker // However, you cannot update the project. 170*d5c09012SAndroid Build Coastguard Worker // 171*d5c09012SAndroid Build Coastguard Worker // After the deletion completes, the project is not retrievable by 172*d5c09012SAndroid Build Coastguard Worker // the [GetProject] 173*d5c09012SAndroid Build Coastguard Worker // [google.cloud.resourcemanager.v3.Projects.GetProject], 174*d5c09012SAndroid Build Coastguard Worker // [ListProjects] 175*d5c09012SAndroid Build Coastguard Worker // [google.cloud.resourcemanager.v3.Projects.ListProjects], and 176*d5c09012SAndroid Build Coastguard Worker // [SearchProjects][google.cloud.resourcemanager.v3.Projects.SearchProjects] 177*d5c09012SAndroid Build Coastguard Worker // methods. 178*d5c09012SAndroid Build Coastguard Worker // 179*d5c09012SAndroid Build Coastguard Worker // This method behaves idempotently, such that deleting a `DELETE_REQUESTED` 180*d5c09012SAndroid Build Coastguard Worker // project will not cause an error, but also won't do anything. 181*d5c09012SAndroid Build Coastguard Worker // 182*d5c09012SAndroid Build Coastguard Worker // The caller must have `resourcemanager.projects.delete` permissions for this 183*d5c09012SAndroid Build Coastguard Worker // project. 184*d5c09012SAndroid Build Coastguard Worker rpc DeleteProject(DeleteProjectRequest) 185*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 186*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 187*d5c09012SAndroid Build Coastguard Worker delete: "/v3/{name=projects/*}" 188*d5c09012SAndroid Build Coastguard Worker }; 189*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 190*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 191*d5c09012SAndroid Build Coastguard Worker response_type: "Project" 192*d5c09012SAndroid Build Coastguard Worker metadata_type: "DeleteProjectMetadata" 193*d5c09012SAndroid Build Coastguard Worker }; 194*d5c09012SAndroid Build Coastguard Worker } 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker // Restores the project identified by the specified 197*d5c09012SAndroid Build Coastguard Worker // `name` (for example, `projects/415104041262`). 198*d5c09012SAndroid Build Coastguard Worker // You can only use this method for a project that has a lifecycle state of 199*d5c09012SAndroid Build Coastguard Worker // [DELETE_REQUESTED] 200*d5c09012SAndroid Build Coastguard Worker // [Projects.State.DELETE_REQUESTED]. 201*d5c09012SAndroid Build Coastguard Worker // After deletion starts, the project cannot be restored. 202*d5c09012SAndroid Build Coastguard Worker // 203*d5c09012SAndroid Build Coastguard Worker // The caller must have `resourcemanager.projects.undelete` permission for 204*d5c09012SAndroid Build Coastguard Worker // this project. 205*d5c09012SAndroid Build Coastguard Worker rpc UndeleteProject(UndeleteProjectRequest) 206*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 207*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 208*d5c09012SAndroid Build Coastguard Worker post: "/v3/{name=projects/*}:undelete" 209*d5c09012SAndroid Build Coastguard Worker body: "*" 210*d5c09012SAndroid Build Coastguard Worker }; 211*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 212*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 213*d5c09012SAndroid Build Coastguard Worker response_type: "Project" 214*d5c09012SAndroid Build Coastguard Worker metadata_type: "UndeleteProjectMetadata" 215*d5c09012SAndroid Build Coastguard Worker }; 216*d5c09012SAndroid Build Coastguard Worker } 217*d5c09012SAndroid Build Coastguard Worker 218*d5c09012SAndroid Build Coastguard Worker // Returns the IAM access control policy for the specified project, in the 219*d5c09012SAndroid Build Coastguard Worker // format `projects/{ProjectIdOrNumber}` e.g. projects/123. 220*d5c09012SAndroid Build Coastguard Worker // Permission is denied if the policy or the resource do not exist. 221*d5c09012SAndroid Build Coastguard Worker rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) 222*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.Policy) { 223*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 224*d5c09012SAndroid Build Coastguard Worker post: "/v3/{resource=projects/*}:getIamPolicy" 225*d5c09012SAndroid Build Coastguard Worker body: "*" 226*d5c09012SAndroid Build Coastguard Worker }; 227*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "resource"; 228*d5c09012SAndroid Build Coastguard Worker } 229*d5c09012SAndroid Build Coastguard Worker 230*d5c09012SAndroid Build Coastguard Worker // Sets the IAM access control policy for the specified project, in the 231*d5c09012SAndroid Build Coastguard Worker // format `projects/{ProjectIdOrNumber}` e.g. projects/123. 232*d5c09012SAndroid Build Coastguard Worker // 233*d5c09012SAndroid Build Coastguard Worker // CAUTION: This method will replace the existing policy, and cannot be used 234*d5c09012SAndroid Build Coastguard Worker // to append additional IAM settings. 235*d5c09012SAndroid Build Coastguard Worker // 236*d5c09012SAndroid Build Coastguard Worker // Note: Removing service accounts from policies or changing their roles can 237*d5c09012SAndroid Build Coastguard Worker // render services completely inoperable. It is important to understand how 238*d5c09012SAndroid Build Coastguard Worker // the service account is being used before removing or updating its roles. 239*d5c09012SAndroid Build Coastguard Worker // 240*d5c09012SAndroid Build Coastguard Worker // The following constraints apply when using `setIamPolicy()`: 241*d5c09012SAndroid Build Coastguard Worker // 242*d5c09012SAndroid Build Coastguard Worker // + Project does not support `allUsers` and `allAuthenticatedUsers` as 243*d5c09012SAndroid Build Coastguard Worker // `members` in a `Binding` of a `Policy`. 244*d5c09012SAndroid Build Coastguard Worker // 245*d5c09012SAndroid Build Coastguard Worker // + The owner role can be granted to a `user`, `serviceAccount`, or a group 246*d5c09012SAndroid Build Coastguard Worker // that is part of an organization. For example, 247*d5c09012SAndroid Build Coastguard Worker // [email protected] could be added as an owner to a project in 248*d5c09012SAndroid Build Coastguard Worker // the myownpersonaldomain.com organization, but not the examplepetstore.com 249*d5c09012SAndroid Build Coastguard Worker // organization. 250*d5c09012SAndroid Build Coastguard Worker // 251*d5c09012SAndroid Build Coastguard Worker // + Service accounts can be made owners of a project directly 252*d5c09012SAndroid Build Coastguard Worker // without any restrictions. However, to be added as an owner, a user must be 253*d5c09012SAndroid Build Coastguard Worker // invited using the Cloud Platform console and must accept the invitation. 254*d5c09012SAndroid Build Coastguard Worker // 255*d5c09012SAndroid Build Coastguard Worker // + A user cannot be granted the owner role using `setIamPolicy()`. The user 256*d5c09012SAndroid Build Coastguard Worker // must be granted the owner role using the Cloud Platform Console and must 257*d5c09012SAndroid Build Coastguard Worker // explicitly accept the invitation. 258*d5c09012SAndroid Build Coastguard Worker // 259*d5c09012SAndroid Build Coastguard Worker // + Invitations to grant the owner role cannot be sent using 260*d5c09012SAndroid Build Coastguard Worker // `setIamPolicy()`; 261*d5c09012SAndroid Build Coastguard Worker // they must be sent only using the Cloud Platform Console. 262*d5c09012SAndroid Build Coastguard Worker // 263*d5c09012SAndroid Build Coastguard Worker // + If the project is not part of an organization, there must be at least 264*d5c09012SAndroid Build Coastguard Worker // one owner who has accepted the Terms of Service (ToS) agreement in the 265*d5c09012SAndroid Build Coastguard Worker // policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner 266*d5c09012SAndroid Build Coastguard Worker // from the policy will fail. This restriction also applies to legacy 267*d5c09012SAndroid Build Coastguard Worker // projects that no longer have owners who have accepted the ToS. Edits to 268*d5c09012SAndroid Build Coastguard Worker // IAM policies will be rejected until the lack of a ToS-accepting owner is 269*d5c09012SAndroid Build Coastguard Worker // rectified. If the project is part of an organization, you can remove all 270*d5c09012SAndroid Build Coastguard Worker // owners, potentially making the organization inaccessible. 271*d5c09012SAndroid Build Coastguard Worker rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) 272*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.Policy) { 273*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 274*d5c09012SAndroid Build Coastguard Worker post: "/v3/{resource=projects/*}:setIamPolicy" 275*d5c09012SAndroid Build Coastguard Worker body: "*" 276*d5c09012SAndroid Build Coastguard Worker }; 277*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "resource, policy"; 278*d5c09012SAndroid Build Coastguard Worker } 279*d5c09012SAndroid Build Coastguard Worker 280*d5c09012SAndroid Build Coastguard Worker // Returns permissions that a caller has on the specified project, in the 281*d5c09012SAndroid Build Coastguard Worker // format `projects/{ProjectIdOrNumber}` e.g. projects/123.. 282*d5c09012SAndroid Build Coastguard Worker rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) 283*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.TestIamPermissionsResponse) { 284*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 285*d5c09012SAndroid Build Coastguard Worker post: "/v3/{resource=projects/*}:testIamPermissions" 286*d5c09012SAndroid Build Coastguard Worker body: "*" 287*d5c09012SAndroid Build Coastguard Worker }; 288*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "resource, permissions"; 289*d5c09012SAndroid Build Coastguard Worker } 290*d5c09012SAndroid Build Coastguard Worker} 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker// A project is a high-level Google Cloud entity. It is a 293*d5c09012SAndroid Build Coastguard Worker// container for ACLs, APIs, App Engine Apps, VMs, and other 294*d5c09012SAndroid Build Coastguard Worker// Google Cloud Platform resources. 295*d5c09012SAndroid Build Coastguard Workermessage Project { 296*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 297*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 298*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}" 299*d5c09012SAndroid Build Coastguard Worker style: DECLARATIVE_FRIENDLY 300*d5c09012SAndroid Build Coastguard Worker }; 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // Project lifecycle states. 303*d5c09012SAndroid Build Coastguard Worker enum State { 304*d5c09012SAndroid Build Coastguard Worker // Unspecified state. This is only used/useful for distinguishing 305*d5c09012SAndroid Build Coastguard Worker // unset values. 306*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 307*d5c09012SAndroid Build Coastguard Worker 308*d5c09012SAndroid Build Coastguard Worker // The normal and active state. 309*d5c09012SAndroid Build Coastguard Worker ACTIVE = 1; 310*d5c09012SAndroid Build Coastguard Worker 311*d5c09012SAndroid Build Coastguard Worker // The project has been marked for deletion by the user 312*d5c09012SAndroid Build Coastguard Worker // (by invoking 313*d5c09012SAndroid Build Coastguard Worker // [DeleteProject][google.cloud.resourcemanager.v3.Projects.DeleteProject]) 314*d5c09012SAndroid Build Coastguard Worker // or by the system (Google Cloud Platform). 315*d5c09012SAndroid Build Coastguard Worker // This can generally be reversed by invoking [UndeleteProject] 316*d5c09012SAndroid Build Coastguard Worker // [google.cloud.resourcemanager.v3.Projects.UndeleteProject]. 317*d5c09012SAndroid Build Coastguard Worker DELETE_REQUESTED = 2; 318*d5c09012SAndroid Build Coastguard Worker } 319*d5c09012SAndroid Build Coastguard Worker 320*d5c09012SAndroid Build Coastguard Worker // Output only. The unique resource name of the project. It is an int64 321*d5c09012SAndroid Build Coastguard Worker // generated number prefixed by "projects/". 322*d5c09012SAndroid Build Coastguard Worker // 323*d5c09012SAndroid Build Coastguard Worker // Example: `projects/415104041262` 324*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 325*d5c09012SAndroid Build Coastguard Worker 326*d5c09012SAndroid Build Coastguard Worker // Optional. A reference to a parent Resource. eg., `organizations/123` or 327*d5c09012SAndroid Build Coastguard Worker // `folders/876`. 328*d5c09012SAndroid Build Coastguard Worker string parent = 2 [(google.api.field_behavior) = OPTIONAL]; 329*d5c09012SAndroid Build Coastguard Worker 330*d5c09012SAndroid Build Coastguard Worker // Immutable. The unique, user-assigned id of the project. 331*d5c09012SAndroid Build Coastguard Worker // It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. 332*d5c09012SAndroid Build Coastguard Worker // It must start with a letter. 333*d5c09012SAndroid Build Coastguard Worker // Trailing hyphens are prohibited. 334*d5c09012SAndroid Build Coastguard Worker // 335*d5c09012SAndroid Build Coastguard Worker // Example: `tokyo-rain-123` 336*d5c09012SAndroid Build Coastguard Worker string project_id = 3 [(google.api.field_behavior) = IMMUTABLE]; 337*d5c09012SAndroid Build Coastguard Worker 338*d5c09012SAndroid Build Coastguard Worker // Output only. The project lifecycle state. 339*d5c09012SAndroid Build Coastguard Worker State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 340*d5c09012SAndroid Build Coastguard Worker 341*d5c09012SAndroid Build Coastguard Worker // Optional. A user-assigned display name of the project. 342*d5c09012SAndroid Build Coastguard Worker // When present it must be between 4 to 30 characters. 343*d5c09012SAndroid Build Coastguard Worker // Allowed characters are: lowercase and uppercase letters, numbers, 344*d5c09012SAndroid Build Coastguard Worker // hyphen, single-quote, double-quote, space, and exclamation point. 345*d5c09012SAndroid Build Coastguard Worker // 346*d5c09012SAndroid Build Coastguard Worker // Example: `My Project` 347*d5c09012SAndroid Build Coastguard Worker string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; 348*d5c09012SAndroid Build Coastguard Worker 349*d5c09012SAndroid Build Coastguard Worker // Output only. Creation time. 350*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 6 351*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 352*d5c09012SAndroid Build Coastguard Worker 353*d5c09012SAndroid Build Coastguard Worker // Output only. The most recent time this resource was modified. 354*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 7 355*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 356*d5c09012SAndroid Build Coastguard Worker 357*d5c09012SAndroid Build Coastguard Worker // Output only. The time at which this resource was requested for deletion. 358*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp delete_time = 8 359*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 360*d5c09012SAndroid Build Coastguard Worker 361*d5c09012SAndroid Build Coastguard Worker // Output only. A checksum computed by the server based on the current value 362*d5c09012SAndroid Build Coastguard Worker // of the Project resource. This may be sent on update and delete requests to 363*d5c09012SAndroid Build Coastguard Worker // ensure the client has an up-to-date value before proceeding. 364*d5c09012SAndroid Build Coastguard Worker string etag = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 365*d5c09012SAndroid Build Coastguard Worker 366*d5c09012SAndroid Build Coastguard Worker // Optional. The labels associated with this project. 367*d5c09012SAndroid Build Coastguard Worker // 368*d5c09012SAndroid Build Coastguard Worker // Label keys must be between 1 and 63 characters long and must conform 369*d5c09012SAndroid Build Coastguard Worker // to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?. 370*d5c09012SAndroid Build Coastguard Worker // 371*d5c09012SAndroid Build Coastguard Worker // Label values must be between 0 and 63 characters long and must conform 372*d5c09012SAndroid Build Coastguard Worker // to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?. 373*d5c09012SAndroid Build Coastguard Worker // 374*d5c09012SAndroid Build Coastguard Worker // No more than 64 labels can be associated with a given resource. 375*d5c09012SAndroid Build Coastguard Worker // 376*d5c09012SAndroid Build Coastguard Worker // Clients should store labels in a representation such as JSON that does not 377*d5c09012SAndroid Build Coastguard Worker // depend on specific characters being disallowed. 378*d5c09012SAndroid Build Coastguard Worker // 379*d5c09012SAndroid Build Coastguard Worker // Example: `"myBusinessDimension" : "businessValue"` 380*d5c09012SAndroid Build Coastguard Worker map<string, string> labels = 10 [(google.api.field_behavior) = OPTIONAL]; 381*d5c09012SAndroid Build Coastguard Worker} 382*d5c09012SAndroid Build Coastguard Worker 383*d5c09012SAndroid Build Coastguard Worker// The request sent to the 384*d5c09012SAndroid Build Coastguard Worker// [GetProject][google.cloud.resourcemanager.v3.Projects.GetProject] 385*d5c09012SAndroid Build Coastguard Worker// method. 386*d5c09012SAndroid Build Coastguard Workermessage GetProjectRequest { 387*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project (for example, `projects/415104041262`). 388*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 389*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 390*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 391*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 392*d5c09012SAndroid Build Coastguard Worker } 393*d5c09012SAndroid Build Coastguard Worker ]; 394*d5c09012SAndroid Build Coastguard Worker} 395*d5c09012SAndroid Build Coastguard Worker 396*d5c09012SAndroid Build Coastguard Worker// The request sent to the 397*d5c09012SAndroid Build Coastguard Worker// [ListProjects][google.cloud.resourcemanager.v3.Projects.ListProjects] 398*d5c09012SAndroid Build Coastguard Worker// method. 399*d5c09012SAndroid Build Coastguard Workermessage ListProjectsRequest { 400*d5c09012SAndroid Build Coastguard Worker // Required. The name of the parent resource whose projects are being listed. 401*d5c09012SAndroid Build Coastguard Worker // Only children of this parent resource are listed; descendants are not 402*d5c09012SAndroid Build Coastguard Worker // listed. 403*d5c09012SAndroid Build Coastguard Worker // 404*d5c09012SAndroid Build Coastguard Worker // If the parent is a folder, use the value `folders/{folder_id}`. If the 405*d5c09012SAndroid Build Coastguard Worker // parent is an organization, use the value `organizations/{org_id}`. 406*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 407*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 408*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { child_type: "*" } 409*d5c09012SAndroid Build Coastguard Worker ]; 410*d5c09012SAndroid Build Coastguard Worker 411*d5c09012SAndroid Build Coastguard Worker // Optional. A pagination token returned from a previous call to 412*d5c09012SAndroid Build Coastguard Worker // [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that 413*d5c09012SAndroid Build Coastguard Worker // indicates from where listing should continue. 414*d5c09012SAndroid Build Coastguard Worker string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; 415*d5c09012SAndroid Build Coastguard Worker 416*d5c09012SAndroid Build Coastguard Worker // Optional. The maximum number of projects to return in the response. 417*d5c09012SAndroid Build Coastguard Worker // The server can return fewer projects than requested. 418*d5c09012SAndroid Build Coastguard Worker // If unspecified, server picks an appropriate default. 419*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; 420*d5c09012SAndroid Build Coastguard Worker 421*d5c09012SAndroid Build Coastguard Worker // Optional. Indicate that projects in the `DELETE_REQUESTED` state should 422*d5c09012SAndroid Build Coastguard Worker // also be returned. Normally only `ACTIVE` projects are returned. 423*d5c09012SAndroid Build Coastguard Worker bool show_deleted = 4 [(google.api.field_behavior) = OPTIONAL]; 424*d5c09012SAndroid Build Coastguard Worker} 425*d5c09012SAndroid Build Coastguard Worker 426*d5c09012SAndroid Build Coastguard Worker// A page of the response received from the 427*d5c09012SAndroid Build Coastguard Worker// [ListProjects][google.cloud.resourcemanager.v3.Projects.ListProjects] 428*d5c09012SAndroid Build Coastguard Worker// method. 429*d5c09012SAndroid Build Coastguard Worker// 430*d5c09012SAndroid Build Coastguard Worker// A paginated response where more pages are available has 431*d5c09012SAndroid Build Coastguard Worker// `next_page_token` set. This token can be used in a subsequent request to 432*d5c09012SAndroid Build Coastguard Worker// retrieve the next request page. 433*d5c09012SAndroid Build Coastguard Worker// 434*d5c09012SAndroid Build Coastguard Worker// NOTE: A response may contain fewer elements than the request `page_size` and 435*d5c09012SAndroid Build Coastguard Worker// still have a `next_page_token`. 436*d5c09012SAndroid Build Coastguard Workermessage ListProjectsResponse { 437*d5c09012SAndroid Build Coastguard Worker // The list of Projects under the parent. This list can be paginated. 438*d5c09012SAndroid Build Coastguard Worker repeated Project projects = 1; 439*d5c09012SAndroid Build Coastguard Worker 440*d5c09012SAndroid Build Coastguard Worker // Pagination token. 441*d5c09012SAndroid Build Coastguard Worker // 442*d5c09012SAndroid Build Coastguard Worker // If the result set is too large to fit in a single response, this token 443*d5c09012SAndroid Build Coastguard Worker // is returned. It encodes the position of the current result cursor. 444*d5c09012SAndroid Build Coastguard Worker // Feeding this value into a new list request with the `page_token` parameter 445*d5c09012SAndroid Build Coastguard Worker // gives the next page of the results. 446*d5c09012SAndroid Build Coastguard Worker // 447*d5c09012SAndroid Build Coastguard Worker // When `next_page_token` is not filled in, there is no next page and 448*d5c09012SAndroid Build Coastguard Worker // the list returned is the last page in the result set. 449*d5c09012SAndroid Build Coastguard Worker // 450*d5c09012SAndroid Build Coastguard Worker // Pagination tokens have a limited lifetime. 451*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 452*d5c09012SAndroid Build Coastguard Worker} 453*d5c09012SAndroid Build Coastguard Worker 454*d5c09012SAndroid Build Coastguard Worker// The request sent to the 455*d5c09012SAndroid Build Coastguard Worker// [SearchProjects][google.cloud.resourcemanager.v3.Projects.SearchProjects] 456*d5c09012SAndroid Build Coastguard Worker// method. 457*d5c09012SAndroid Build Coastguard Workermessage SearchProjectsRequest { 458*d5c09012SAndroid Build Coastguard Worker // Optional. A query string for searching for projects that the caller has 459*d5c09012SAndroid Build Coastguard Worker // `resourcemanager.projects.get` permission to. If multiple fields are 460*d5c09012SAndroid Build Coastguard Worker // included in the query, then it will return results that match any of the 461*d5c09012SAndroid Build Coastguard Worker // fields. Some eligible fields are: 462*d5c09012SAndroid Build Coastguard Worker // 463*d5c09012SAndroid Build Coastguard Worker // - **`displayName`, `name`**: Filters by displayName. 464*d5c09012SAndroid Build Coastguard Worker // - **`parent`**: Project's parent (for example: `folders/123`, 465*d5c09012SAndroid Build Coastguard Worker // `organizations/*`). Prefer `parent` field over `parent.type` and 466*d5c09012SAndroid Build Coastguard Worker // `parent.id`. 467*d5c09012SAndroid Build Coastguard Worker // - **`parent.type`**: Parent's type: `folder` or `organization`. 468*d5c09012SAndroid Build Coastguard Worker // - **`parent.id`**: Parent's id number (for example: `123`). 469*d5c09012SAndroid Build Coastguard Worker // - **`id`, `projectId`**: Filters by projectId. 470*d5c09012SAndroid Build Coastguard Worker // - **`state`, `lifecycleState`**: Filters by state. 471*d5c09012SAndroid Build Coastguard Worker // - **`labels`**: Filters by label name or value. 472*d5c09012SAndroid Build Coastguard Worker // - **`labels.<key>` (where `<key>` is the name of a label)**: Filters by label 473*d5c09012SAndroid Build Coastguard Worker // name. 474*d5c09012SAndroid Build Coastguard Worker // 475*d5c09012SAndroid Build Coastguard Worker // Search expressions are case insensitive. 476*d5c09012SAndroid Build Coastguard Worker // 477*d5c09012SAndroid Build Coastguard Worker // Some examples queries: 478*d5c09012SAndroid Build Coastguard Worker // 479*d5c09012SAndroid Build Coastguard Worker // 480*d5c09012SAndroid Build Coastguard Worker // - **`name:how*`**: The project's name starts with "how". 481*d5c09012SAndroid Build Coastguard Worker // - **`name:Howl`**: The project's name is `Howl` or `howl`. 482*d5c09012SAndroid Build Coastguard Worker // - **`name:HOWL`**: Equivalent to above. 483*d5c09012SAndroid Build Coastguard Worker // - **`NAME:howl`**: Equivalent to above. 484*d5c09012SAndroid Build Coastguard Worker // - **`labels.color:*`**: The project has the label `color`. 485*d5c09012SAndroid Build Coastguard Worker // - **`labels.color:red`**: The project's label `color` has the value `red`. 486*d5c09012SAndroid Build Coastguard Worker // - **`labels.color:red labels.size:big`**: The project's label `color` has 487*d5c09012SAndroid Build Coastguard Worker // the value `red` or its label `size` has the value `big`. 488*d5c09012SAndroid Build Coastguard Worker // 489*d5c09012SAndroid Build Coastguard Worker // If no query is specified, the call will return projects for which the user 490*d5c09012SAndroid Build Coastguard Worker // has the `resourcemanager.projects.get` permission. 491*d5c09012SAndroid Build Coastguard Worker string query = 1 [(google.api.field_behavior) = OPTIONAL]; 492*d5c09012SAndroid Build Coastguard Worker 493*d5c09012SAndroid Build Coastguard Worker // Optional. A pagination token returned from a previous call to 494*d5c09012SAndroid Build Coastguard Worker // [ListProjects] [google.cloud.resourcemanager.v3.Projects.ListProjects] that 495*d5c09012SAndroid Build Coastguard Worker // indicates from where listing should continue. 496*d5c09012SAndroid Build Coastguard Worker string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; 497*d5c09012SAndroid Build Coastguard Worker 498*d5c09012SAndroid Build Coastguard Worker // Optional. The maximum number of projects to return in the response. 499*d5c09012SAndroid Build Coastguard Worker // The server can return fewer projects than requested. 500*d5c09012SAndroid Build Coastguard Worker // If unspecified, server picks an appropriate default. 501*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; 502*d5c09012SAndroid Build Coastguard Worker} 503*d5c09012SAndroid Build Coastguard Worker 504*d5c09012SAndroid Build Coastguard Worker// A page of the response received from the 505*d5c09012SAndroid Build Coastguard Worker// [SearchProjects][google.cloud.resourcemanager.v3.Projects.SearchProjects] 506*d5c09012SAndroid Build Coastguard Worker// method. 507*d5c09012SAndroid Build Coastguard Worker// 508*d5c09012SAndroid Build Coastguard Worker// A paginated response where more pages are available has 509*d5c09012SAndroid Build Coastguard Worker// `next_page_token` set. This token can be used in a subsequent request to 510*d5c09012SAndroid Build Coastguard Worker// retrieve the next request page. 511*d5c09012SAndroid Build Coastguard Workermessage SearchProjectsResponse { 512*d5c09012SAndroid Build Coastguard Worker // The list of Projects that matched the list filter query. This list can 513*d5c09012SAndroid Build Coastguard Worker // be paginated. 514*d5c09012SAndroid Build Coastguard Worker repeated Project projects = 1; 515*d5c09012SAndroid Build Coastguard Worker 516*d5c09012SAndroid Build Coastguard Worker // Pagination token. 517*d5c09012SAndroid Build Coastguard Worker // 518*d5c09012SAndroid Build Coastguard Worker // If the result set is too large to fit in a single response, this token 519*d5c09012SAndroid Build Coastguard Worker // is returned. It encodes the position of the current result cursor. 520*d5c09012SAndroid Build Coastguard Worker // Feeding this value into a new list request with the `page_token` parameter 521*d5c09012SAndroid Build Coastguard Worker // gives the next page of the results. 522*d5c09012SAndroid Build Coastguard Worker // 523*d5c09012SAndroid Build Coastguard Worker // When `next_page_token` is not filled in, there is no next page and 524*d5c09012SAndroid Build Coastguard Worker // the list returned is the last page in the result set. 525*d5c09012SAndroid Build Coastguard Worker // 526*d5c09012SAndroid Build Coastguard Worker // Pagination tokens have a limited lifetime. 527*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 528*d5c09012SAndroid Build Coastguard Worker} 529*d5c09012SAndroid Build Coastguard Worker 530*d5c09012SAndroid Build Coastguard Worker// The request sent to the 531*d5c09012SAndroid Build Coastguard Worker// [CreateProject][google.cloud.resourcemanager.v3.Projects.CreateProject] 532*d5c09012SAndroid Build Coastguard Worker// method. 533*d5c09012SAndroid Build Coastguard Workermessage CreateProjectRequest { 534*d5c09012SAndroid Build Coastguard Worker // Required. The Project to create. 535*d5c09012SAndroid Build Coastguard Worker // 536*d5c09012SAndroid Build Coastguard Worker // Project ID is required. If the requested ID is unavailable, the request 537*d5c09012SAndroid Build Coastguard Worker // fails. 538*d5c09012SAndroid Build Coastguard Worker // 539*d5c09012SAndroid Build Coastguard Worker // If the `parent` field is set, the `resourcemanager.projects.create` 540*d5c09012SAndroid Build Coastguard Worker // permission is checked on the parent resource. If no parent is set and 541*d5c09012SAndroid Build Coastguard Worker // the authorization credentials belong to an Organization, the parent 542*d5c09012SAndroid Build Coastguard Worker // will be set to that Organization. 543*d5c09012SAndroid Build Coastguard Worker Project project = 1 [(google.api.field_behavior) = REQUIRED]; 544*d5c09012SAndroid Build Coastguard Worker} 545*d5c09012SAndroid Build Coastguard Worker 546*d5c09012SAndroid Build Coastguard Worker// A status object which is used as the `metadata` field for the Operation 547*d5c09012SAndroid Build Coastguard Worker// returned by CreateProject. It provides insight for when significant phases of 548*d5c09012SAndroid Build Coastguard Worker// Project creation have completed. 549*d5c09012SAndroid Build Coastguard Workermessage CreateProjectMetadata { 550*d5c09012SAndroid Build Coastguard Worker // Creation time of the project creation workflow. 551*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 1; 552*d5c09012SAndroid Build Coastguard Worker 553*d5c09012SAndroid Build Coastguard Worker // True if the project can be retrieved using `GetProject`. No other 554*d5c09012SAndroid Build Coastguard Worker // operations on the project are guaranteed to work until the project creation 555*d5c09012SAndroid Build Coastguard Worker // is complete. 556*d5c09012SAndroid Build Coastguard Worker bool gettable = 2; 557*d5c09012SAndroid Build Coastguard Worker 558*d5c09012SAndroid Build Coastguard Worker // True if the project creation process is complete. 559*d5c09012SAndroid Build Coastguard Worker bool ready = 3; 560*d5c09012SAndroid Build Coastguard Worker} 561*d5c09012SAndroid Build Coastguard Worker 562*d5c09012SAndroid Build Coastguard Worker// The request sent to the 563*d5c09012SAndroid Build Coastguard Worker// [UpdateProject][google.cloud.resourcemanager.v3.Projects.UpdateProject] 564*d5c09012SAndroid Build Coastguard Worker// method. 565*d5c09012SAndroid Build Coastguard Worker// 566*d5c09012SAndroid Build Coastguard Worker// Only the `display_name` and `labels` fields can be change. Use the 567*d5c09012SAndroid Build Coastguard Worker// [MoveProject][google.cloud.resourcemanager.v3.Projects.MoveProject] method to 568*d5c09012SAndroid Build Coastguard Worker// change the `parent` field. 569*d5c09012SAndroid Build Coastguard Workermessage UpdateProjectRequest { 570*d5c09012SAndroid Build Coastguard Worker // Required. The new definition of the project. 571*d5c09012SAndroid Build Coastguard Worker Project project = 1 [(google.api.field_behavior) = REQUIRED]; 572*d5c09012SAndroid Build Coastguard Worker 573*d5c09012SAndroid Build Coastguard Worker // Optional. An update mask to selectively update fields. 574*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 2 575*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OPTIONAL]; 576*d5c09012SAndroid Build Coastguard Worker} 577*d5c09012SAndroid Build Coastguard Worker 578*d5c09012SAndroid Build Coastguard Worker// A status object which is used as the `metadata` field for the Operation 579*d5c09012SAndroid Build Coastguard Worker// returned by UpdateProject. 580*d5c09012SAndroid Build Coastguard Workermessage UpdateProjectMetadata {} 581*d5c09012SAndroid Build Coastguard Worker 582*d5c09012SAndroid Build Coastguard Worker// The request sent to 583*d5c09012SAndroid Build Coastguard Worker// [MoveProject][google.cloud.resourcemanager.v3.Projects.MoveProject] 584*d5c09012SAndroid Build Coastguard Worker// method. 585*d5c09012SAndroid Build Coastguard Workermessage MoveProjectRequest { 586*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project to move. 587*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 588*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 589*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 590*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 591*d5c09012SAndroid Build Coastguard Worker } 592*d5c09012SAndroid Build Coastguard Worker ]; 593*d5c09012SAndroid Build Coastguard Worker 594*d5c09012SAndroid Build Coastguard Worker // Required. The new parent to move the Project under. 595*d5c09012SAndroid Build Coastguard Worker string destination_parent = 2 [ 596*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 597*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { child_type: "*" } 598*d5c09012SAndroid Build Coastguard Worker ]; 599*d5c09012SAndroid Build Coastguard Worker} 600*d5c09012SAndroid Build Coastguard Worker 601*d5c09012SAndroid Build Coastguard Worker// A status object which is used as the `metadata` field for the Operation 602*d5c09012SAndroid Build Coastguard Worker// returned by MoveProject. 603*d5c09012SAndroid Build Coastguard Workermessage MoveProjectMetadata {} 604*d5c09012SAndroid Build Coastguard Worker 605*d5c09012SAndroid Build Coastguard Worker// [DeleteProject][google.cloud.resourcemanager.v3.Projects.DeleteProject] 606*d5c09012SAndroid Build Coastguard Worker// method. 607*d5c09012SAndroid Build Coastguard Workermessage DeleteProjectRequest { 608*d5c09012SAndroid Build Coastguard Worker // Required. The name of the Project (for example, `projects/415104041262`). 609*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 610*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 611*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 612*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 613*d5c09012SAndroid Build Coastguard Worker } 614*d5c09012SAndroid Build Coastguard Worker ]; 615*d5c09012SAndroid Build Coastguard Worker} 616*d5c09012SAndroid Build Coastguard Worker 617*d5c09012SAndroid Build Coastguard Worker// A status object which is used as the `metadata` field for the Operation 618*d5c09012SAndroid Build Coastguard Worker// returned by `DeleteProject`. 619*d5c09012SAndroid Build Coastguard Workermessage DeleteProjectMetadata {} 620*d5c09012SAndroid Build Coastguard Worker 621*d5c09012SAndroid Build Coastguard Worker// The request sent to the [UndeleteProject] 622*d5c09012SAndroid Build Coastguard Worker// [google.cloud.resourcemanager.v3.Projects.UndeleteProject] 623*d5c09012SAndroid Build Coastguard Worker// method. 624*d5c09012SAndroid Build Coastguard Workermessage UndeleteProjectRequest { 625*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project (for example, `projects/415104041262`). 626*d5c09012SAndroid Build Coastguard Worker // 627*d5c09012SAndroid Build Coastguard Worker // Required. 628*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 629*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 630*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 631*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 632*d5c09012SAndroid Build Coastguard Worker } 633*d5c09012SAndroid Build Coastguard Worker ]; 634*d5c09012SAndroid Build Coastguard Worker} 635*d5c09012SAndroid Build Coastguard Worker 636*d5c09012SAndroid Build Coastguard Worker// A status object which is used as the `metadata` field for the Operation 637*d5c09012SAndroid Build Coastguard Worker// returned by `UndeleteProject`. 638*d5c09012SAndroid Build Coastguard Workermessage UndeleteProjectMetadata {} 639