1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 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.accessapproval.v1; 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/protobuf/empty.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 26*d5c09012SAndroid Build Coastguard Worker 27*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.AccessApproval.V1"; 28*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/accessapproval/apiv1/accessapprovalpb;accessapprovalpb"; 29*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 30*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AccessApprovalProto"; 31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.accessapproval.v1"; 32*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\AccessApproval\\V1"; 33*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::AccessApproval::V1"; 34*d5c09012SAndroid Build Coastguard Worker 35*d5c09012SAndroid Build Coastguard Worker// This API allows a customer to manage accesses to cloud resources by 36*d5c09012SAndroid Build Coastguard Worker// Google personnel. It defines the following resource model: 37*d5c09012SAndroid Build Coastguard Worker// 38*d5c09012SAndroid Build Coastguard Worker// - The API has a collection of 39*d5c09012SAndroid Build Coastguard Worker// [ApprovalRequest][google.cloud.accessapproval.v1.ApprovalRequest] 40*d5c09012SAndroid Build Coastguard Worker// resources, named `approvalRequests/{approval_request}` 41*d5c09012SAndroid Build Coastguard Worker// - The API has top-level settings per Project/Folder/Organization, named 42*d5c09012SAndroid Build Coastguard Worker// `accessApprovalSettings` 43*d5c09012SAndroid Build Coastguard Worker// 44*d5c09012SAndroid Build Coastguard Worker// The service also periodically emails a list of recipients, defined at the 45*d5c09012SAndroid Build Coastguard Worker// Project/Folder/Organization level in the accessApprovalSettings, when there 46*d5c09012SAndroid Build Coastguard Worker// is a pending ApprovalRequest for them to act on. The ApprovalRequests can 47*d5c09012SAndroid Build Coastguard Worker// also optionally be published to a Pub/Sub topic owned by the customer 48*d5c09012SAndroid Build Coastguard Worker// (contact support if you would like to enable Pub/Sub notifications). 49*d5c09012SAndroid Build Coastguard Worker// 50*d5c09012SAndroid Build Coastguard Worker// ApprovalRequests can be approved or dismissed. Google personnel can only 51*d5c09012SAndroid Build Coastguard Worker// access the indicated resource or resources if the request is approved 52*d5c09012SAndroid Build Coastguard Worker// (subject to some exclusions: 53*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/access-approval/docs/overview#exclusions). 54*d5c09012SAndroid Build Coastguard Worker// 55*d5c09012SAndroid Build Coastguard Worker// Note: Using Access Approval functionality will mean that Google may not be 56*d5c09012SAndroid Build Coastguard Worker// able to meet the SLAs for your chosen products, as any support response times 57*d5c09012SAndroid Build Coastguard Worker// may be dramatically increased. As such the SLAs do not apply to any service 58*d5c09012SAndroid Build Coastguard Worker// disruption to the extent impacted by Customer's use of Access Approval. Do 59*d5c09012SAndroid Build Coastguard Worker// not enable Access Approval for projects where you may require high service 60*d5c09012SAndroid Build Coastguard Worker// availability and rapid response by Google Cloud Support. 61*d5c09012SAndroid Build Coastguard Worker// 62*d5c09012SAndroid Build Coastguard Worker// After a request is approved or dismissed, no further action may be taken on 63*d5c09012SAndroid Build Coastguard Worker// it. Requests with the requested_expiration in the past or with no activity 64*d5c09012SAndroid Build Coastguard Worker// for 14 days are considered dismissed. When an approval expires, the request 65*d5c09012SAndroid Build Coastguard Worker// is considered dismissed. 66*d5c09012SAndroid Build Coastguard Worker// 67*d5c09012SAndroid Build Coastguard Worker// If a request is not approved or dismissed, we call it pending. 68*d5c09012SAndroid Build Coastguard Workerservice AccessApproval { 69*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "accessapproval.googleapis.com"; 70*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; 71*d5c09012SAndroid Build Coastguard Worker 72*d5c09012SAndroid Build Coastguard Worker // Lists approval requests associated with a project, folder, or organization. 73*d5c09012SAndroid Build Coastguard Worker // Approval requests can be filtered by state (pending, active, dismissed). 74*d5c09012SAndroid Build Coastguard Worker // The order is reverse chronological. 75*d5c09012SAndroid Build Coastguard Worker rpc ListApprovalRequests(ListApprovalRequestsMessage) returns (ListApprovalRequestsResponse) { 76*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 77*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=projects/*}/approvalRequests" 78*d5c09012SAndroid Build Coastguard Worker additional_bindings { 79*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=folders/*}/approvalRequests" 80*d5c09012SAndroid Build Coastguard Worker } 81*d5c09012SAndroid Build Coastguard Worker additional_bindings { 82*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=organizations/*}/approvalRequests" 83*d5c09012SAndroid Build Coastguard Worker } 84*d5c09012SAndroid Build Coastguard Worker }; 85*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 86*d5c09012SAndroid Build Coastguard Worker } 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Gets an approval request. Returns NOT_FOUND if the request does not exist. 89*d5c09012SAndroid Build Coastguard Worker rpc GetApprovalRequest(GetApprovalRequestMessage) returns (ApprovalRequest) { 90*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 91*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/approvalRequests/*}" 92*d5c09012SAndroid Build Coastguard Worker additional_bindings { 93*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=folders/*/approvalRequests/*}" 94*d5c09012SAndroid Build Coastguard Worker } 95*d5c09012SAndroid Build Coastguard Worker additional_bindings { 96*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=organizations/*/approvalRequests/*}" 97*d5c09012SAndroid Build Coastguard Worker } 98*d5c09012SAndroid Build Coastguard Worker }; 99*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 100*d5c09012SAndroid Build Coastguard Worker } 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Approves a request and returns the updated ApprovalRequest. 103*d5c09012SAndroid Build Coastguard Worker // 104*d5c09012SAndroid Build Coastguard Worker // Returns NOT_FOUND if the request does not exist. Returns 105*d5c09012SAndroid Build Coastguard Worker // FAILED_PRECONDITION if the request exists but is not in a pending state. 106*d5c09012SAndroid Build Coastguard Worker rpc ApproveApprovalRequest(ApproveApprovalRequestMessage) returns (ApprovalRequest) { 107*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 108*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=projects/*/approvalRequests/*}:approve" 109*d5c09012SAndroid Build Coastguard Worker body: "*" 110*d5c09012SAndroid Build Coastguard Worker additional_bindings { 111*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=folders/*/approvalRequests/*}:approve" 112*d5c09012SAndroid Build Coastguard Worker body: "*" 113*d5c09012SAndroid Build Coastguard Worker } 114*d5c09012SAndroid Build Coastguard Worker additional_bindings { 115*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=organizations/*/approvalRequests/*}:approve" 116*d5c09012SAndroid Build Coastguard Worker body: "*" 117*d5c09012SAndroid Build Coastguard Worker } 118*d5c09012SAndroid Build Coastguard Worker }; 119*d5c09012SAndroid Build Coastguard Worker } 120*d5c09012SAndroid Build Coastguard Worker 121*d5c09012SAndroid Build Coastguard Worker // Dismisses a request. Returns the updated ApprovalRequest. 122*d5c09012SAndroid Build Coastguard Worker // 123*d5c09012SAndroid Build Coastguard Worker // NOTE: This does not deny access to the resource if another request has been 124*d5c09012SAndroid Build Coastguard Worker // made and approved. It is equivalent in effect to ignoring the request 125*d5c09012SAndroid Build Coastguard Worker // altogether. 126*d5c09012SAndroid Build Coastguard Worker // 127*d5c09012SAndroid Build Coastguard Worker // Returns NOT_FOUND if the request does not exist. 128*d5c09012SAndroid Build Coastguard Worker // 129*d5c09012SAndroid Build Coastguard Worker // Returns FAILED_PRECONDITION if the request exists but is not in a pending 130*d5c09012SAndroid Build Coastguard Worker // state. 131*d5c09012SAndroid Build Coastguard Worker rpc DismissApprovalRequest(DismissApprovalRequestMessage) returns (ApprovalRequest) { 132*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 133*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=projects/*/approvalRequests/*}:dismiss" 134*d5c09012SAndroid Build Coastguard Worker body: "*" 135*d5c09012SAndroid Build Coastguard Worker additional_bindings { 136*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=folders/*/approvalRequests/*}:dismiss" 137*d5c09012SAndroid Build Coastguard Worker body: "*" 138*d5c09012SAndroid Build Coastguard Worker } 139*d5c09012SAndroid Build Coastguard Worker additional_bindings { 140*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=organizations/*/approvalRequests/*}:dismiss" 141*d5c09012SAndroid Build Coastguard Worker body: "*" 142*d5c09012SAndroid Build Coastguard Worker } 143*d5c09012SAndroid Build Coastguard Worker }; 144*d5c09012SAndroid Build Coastguard Worker } 145*d5c09012SAndroid Build Coastguard Worker 146*d5c09012SAndroid Build Coastguard Worker // Invalidates an existing ApprovalRequest. Returns the updated 147*d5c09012SAndroid Build Coastguard Worker // ApprovalRequest. 148*d5c09012SAndroid Build Coastguard Worker // 149*d5c09012SAndroid Build Coastguard Worker // NOTE: This does not deny access to the resource if another request has been 150*d5c09012SAndroid Build Coastguard Worker // made and approved. It only invalidates a single approval. 151*d5c09012SAndroid Build Coastguard Worker // 152*d5c09012SAndroid Build Coastguard Worker // Returns FAILED_PRECONDITION if the request exists but is not in an approved 153*d5c09012SAndroid Build Coastguard Worker // state. 154*d5c09012SAndroid Build Coastguard Worker rpc InvalidateApprovalRequest(InvalidateApprovalRequestMessage) returns (ApprovalRequest) { 155*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 156*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=projects/*/approvalRequests/*}:invalidate" 157*d5c09012SAndroid Build Coastguard Worker body: "*" 158*d5c09012SAndroid Build Coastguard Worker additional_bindings { 159*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=folders/*/approvalRequests/*}:invalidate" 160*d5c09012SAndroid Build Coastguard Worker body: "*" 161*d5c09012SAndroid Build Coastguard Worker } 162*d5c09012SAndroid Build Coastguard Worker additional_bindings { 163*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=organizations/*/approvalRequests/*}:invalidate" 164*d5c09012SAndroid Build Coastguard Worker body: "*" 165*d5c09012SAndroid Build Coastguard Worker } 166*d5c09012SAndroid Build Coastguard Worker }; 167*d5c09012SAndroid Build Coastguard Worker } 168*d5c09012SAndroid Build Coastguard Worker 169*d5c09012SAndroid Build Coastguard Worker // Gets the settings associated with a project, folder, or organization. 170*d5c09012SAndroid Build Coastguard Worker rpc GetAccessApprovalSettings(GetAccessApprovalSettingsMessage) returns (AccessApprovalSettings) { 171*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 172*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/accessApprovalSettings}" 173*d5c09012SAndroid Build Coastguard Worker additional_bindings { 174*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=folders/*/accessApprovalSettings}" 175*d5c09012SAndroid Build Coastguard Worker } 176*d5c09012SAndroid Build Coastguard Worker additional_bindings { 177*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=organizations/*/accessApprovalSettings}" 178*d5c09012SAndroid Build Coastguard Worker } 179*d5c09012SAndroid Build Coastguard Worker }; 180*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 181*d5c09012SAndroid Build Coastguard Worker } 182*d5c09012SAndroid Build Coastguard Worker 183*d5c09012SAndroid Build Coastguard Worker // Updates the settings associated with a project, folder, or organization. 184*d5c09012SAndroid Build Coastguard Worker // Settings to update are determined by the value of field_mask. 185*d5c09012SAndroid Build Coastguard Worker rpc UpdateAccessApprovalSettings(UpdateAccessApprovalSettingsMessage) returns (AccessApprovalSettings) { 186*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 187*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{settings.name=projects/*/accessApprovalSettings}" 188*d5c09012SAndroid Build Coastguard Worker body: "settings" 189*d5c09012SAndroid Build Coastguard Worker additional_bindings { 190*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{settings.name=folders/*/accessApprovalSettings}" 191*d5c09012SAndroid Build Coastguard Worker body: "settings" 192*d5c09012SAndroid Build Coastguard Worker } 193*d5c09012SAndroid Build Coastguard Worker additional_bindings { 194*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{settings.name=organizations/*/accessApprovalSettings}" 195*d5c09012SAndroid Build Coastguard Worker body: "settings" 196*d5c09012SAndroid Build Coastguard Worker } 197*d5c09012SAndroid Build Coastguard Worker }; 198*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "settings,update_mask"; 199*d5c09012SAndroid Build Coastguard Worker } 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker // Deletes the settings associated with a project, folder, or organization. 202*d5c09012SAndroid Build Coastguard Worker // This will have the effect of disabling Access Approval for the project, 203*d5c09012SAndroid Build Coastguard Worker // folder, or organization, but only if all ancestors also have Access 204*d5c09012SAndroid Build Coastguard Worker // Approval disabled. If Access Approval is enabled at a higher level of the 205*d5c09012SAndroid Build Coastguard Worker // hierarchy, then Access Approval will still be enabled at this level as 206*d5c09012SAndroid Build Coastguard Worker // the settings are inherited. 207*d5c09012SAndroid Build Coastguard Worker rpc DeleteAccessApprovalSettings(DeleteAccessApprovalSettingsMessage) returns (google.protobuf.Empty) { 208*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 209*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/accessApprovalSettings}" 210*d5c09012SAndroid Build Coastguard Worker additional_bindings { 211*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=folders/*/accessApprovalSettings}" 212*d5c09012SAndroid Build Coastguard Worker } 213*d5c09012SAndroid Build Coastguard Worker additional_bindings { 214*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=organizations/*/accessApprovalSettings}" 215*d5c09012SAndroid Build Coastguard Worker } 216*d5c09012SAndroid Build Coastguard Worker }; 217*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 218*d5c09012SAndroid Build Coastguard Worker } 219*d5c09012SAndroid Build Coastguard Worker 220*d5c09012SAndroid Build Coastguard Worker // Retrieves the service account that is used by Access Approval to access KMS 221*d5c09012SAndroid Build Coastguard Worker // keys for signing approved approval requests. 222*d5c09012SAndroid Build Coastguard Worker rpc GetAccessApprovalServiceAccount(GetAccessApprovalServiceAccountMessage) returns (AccessApprovalServiceAccount) { 223*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 224*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/serviceAccount}" 225*d5c09012SAndroid Build Coastguard Worker additional_bindings { 226*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=folders/*/serviceAccount}" 227*d5c09012SAndroid Build Coastguard Worker } 228*d5c09012SAndroid Build Coastguard Worker additional_bindings { 229*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=organizations/*/serviceAccount}" 230*d5c09012SAndroid Build Coastguard Worker } 231*d5c09012SAndroid Build Coastguard Worker }; 232*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 233*d5c09012SAndroid Build Coastguard Worker } 234*d5c09012SAndroid Build Coastguard Worker} 235*d5c09012SAndroid Build Coastguard Worker 236*d5c09012SAndroid Build Coastguard Worker// Home office and physical location of the principal. 237*d5c09012SAndroid Build Coastguard Workermessage AccessLocations { 238*d5c09012SAndroid Build Coastguard Worker // The "home office" location of the principal. A two-letter country code 239*d5c09012SAndroid Build Coastguard Worker // (ISO 3166-1 alpha-2), such as "US", "DE" or "GB" or a region code. In some 240*d5c09012SAndroid Build Coastguard Worker // limited situations Google systems may refer refer to a region code instead 241*d5c09012SAndroid Build Coastguard Worker // of a country code. 242*d5c09012SAndroid Build Coastguard Worker // Possible Region Codes: 243*d5c09012SAndroid Build Coastguard Worker // 244*d5c09012SAndroid Build Coastguard Worker // * ASI: Asia 245*d5c09012SAndroid Build Coastguard Worker // * EUR: Europe 246*d5c09012SAndroid Build Coastguard Worker // * OCE: Oceania 247*d5c09012SAndroid Build Coastguard Worker // * AFR: Africa 248*d5c09012SAndroid Build Coastguard Worker // * NAM: North America 249*d5c09012SAndroid Build Coastguard Worker // * SAM: South America 250*d5c09012SAndroid Build Coastguard Worker // * ANT: Antarctica 251*d5c09012SAndroid Build Coastguard Worker // * ANY: Any location 252*d5c09012SAndroid Build Coastguard Worker string principal_office_country = 1; 253*d5c09012SAndroid Build Coastguard Worker 254*d5c09012SAndroid Build Coastguard Worker // Physical location of the principal at the time of the access. A 255*d5c09012SAndroid Build Coastguard Worker // two-letter country code (ISO 3166-1 alpha-2), such as "US", "DE" or "GB" or 256*d5c09012SAndroid Build Coastguard Worker // a region code. In some limited situations Google systems may refer refer to 257*d5c09012SAndroid Build Coastguard Worker // a region code instead of a country code. 258*d5c09012SAndroid Build Coastguard Worker // Possible Region Codes: 259*d5c09012SAndroid Build Coastguard Worker // 260*d5c09012SAndroid Build Coastguard Worker // * ASI: Asia 261*d5c09012SAndroid Build Coastguard Worker // * EUR: Europe 262*d5c09012SAndroid Build Coastguard Worker // * OCE: Oceania 263*d5c09012SAndroid Build Coastguard Worker // * AFR: Africa 264*d5c09012SAndroid Build Coastguard Worker // * NAM: North America 265*d5c09012SAndroid Build Coastguard Worker // * SAM: South America 266*d5c09012SAndroid Build Coastguard Worker // * ANT: Antarctica 267*d5c09012SAndroid Build Coastguard Worker // * ANY: Any location 268*d5c09012SAndroid Build Coastguard Worker string principal_physical_location_country = 2; 269*d5c09012SAndroid Build Coastguard Worker} 270*d5c09012SAndroid Build Coastguard Worker 271*d5c09012SAndroid Build Coastguard Workermessage AccessReason { 272*d5c09012SAndroid Build Coastguard Worker // Type of access justification. 273*d5c09012SAndroid Build Coastguard Worker enum Type { 274*d5c09012SAndroid Build Coastguard Worker // Default value for proto, shouldn't be used. 275*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 276*d5c09012SAndroid Build Coastguard Worker 277*d5c09012SAndroid Build Coastguard Worker // Customer made a request or raised an issue that required the principal to 278*d5c09012SAndroid Build Coastguard Worker // access customer data. `detail` is of the form ("#####" is the issue ID): 279*d5c09012SAndroid Build Coastguard Worker // 280*d5c09012SAndroid Build Coastguard Worker // * "Feedback Report: #####" 281*d5c09012SAndroid Build Coastguard Worker // * "Case Number: #####" 282*d5c09012SAndroid Build Coastguard Worker // * "Case ID: #####" 283*d5c09012SAndroid Build Coastguard Worker // * "E-PIN Reference: #####" 284*d5c09012SAndroid Build Coastguard Worker // * "Google-#####" 285*d5c09012SAndroid Build Coastguard Worker // * "T-#####" 286*d5c09012SAndroid Build Coastguard Worker CUSTOMER_INITIATED_SUPPORT = 1; 287*d5c09012SAndroid Build Coastguard Worker 288*d5c09012SAndroid Build Coastguard Worker // The principal accessed customer data in order to diagnose or resolve a 289*d5c09012SAndroid Build Coastguard Worker // suspected issue in services. Often this access is used to confirm that 290*d5c09012SAndroid Build Coastguard Worker // customers are not affected by a suspected service issue or to remediate a 291*d5c09012SAndroid Build Coastguard Worker // reversible system issue. 292*d5c09012SAndroid Build Coastguard Worker GOOGLE_INITIATED_SERVICE = 2; 293*d5c09012SAndroid Build Coastguard Worker 294*d5c09012SAndroid Build Coastguard Worker // Google initiated service for security, fraud, abuse, or compliance 295*d5c09012SAndroid Build Coastguard Worker // purposes. 296*d5c09012SAndroid Build Coastguard Worker GOOGLE_INITIATED_REVIEW = 3; 297*d5c09012SAndroid Build Coastguard Worker 298*d5c09012SAndroid Build Coastguard Worker // The principal was compelled to access customer data in order to respond 299*d5c09012SAndroid Build Coastguard Worker // to a legal third party data request or process, including legal processes 300*d5c09012SAndroid Build Coastguard Worker // from customers themselves. 301*d5c09012SAndroid Build Coastguard Worker THIRD_PARTY_DATA_REQUEST = 4; 302*d5c09012SAndroid Build Coastguard Worker 303*d5c09012SAndroid Build Coastguard Worker // The principal accessed customer data in order to diagnose or resolve a 304*d5c09012SAndroid Build Coastguard Worker // suspected issue in services or a known outage. 305*d5c09012SAndroid Build Coastguard Worker GOOGLE_RESPONSE_TO_PRODUCTION_ALERT = 5; 306*d5c09012SAndroid Build Coastguard Worker } 307*d5c09012SAndroid Build Coastguard Worker 308*d5c09012SAndroid Build Coastguard Worker // Type of access justification. 309*d5c09012SAndroid Build Coastguard Worker Type type = 1; 310*d5c09012SAndroid Build Coastguard Worker 311*d5c09012SAndroid Build Coastguard Worker // More detail about certain reason types. See comments for each type above. 312*d5c09012SAndroid Build Coastguard Worker string detail = 2; 313*d5c09012SAndroid Build Coastguard Worker} 314*d5c09012SAndroid Build Coastguard Worker 315*d5c09012SAndroid Build Coastguard Worker// Information about the digital signature of the resource. 316*d5c09012SAndroid Build Coastguard Workermessage SignatureInfo { 317*d5c09012SAndroid Build Coastguard Worker // The digital signature. 318*d5c09012SAndroid Build Coastguard Worker bytes signature = 1; 319*d5c09012SAndroid Build Coastguard Worker 320*d5c09012SAndroid Build Coastguard Worker // How this signature may be verified. 321*d5c09012SAndroid Build Coastguard Worker oneof verification_info { 322*d5c09012SAndroid Build Coastguard Worker // The public key for the Google default signing, encoded in PEM format. The 323*d5c09012SAndroid Build Coastguard Worker // signature was created using a private key which may be verified using 324*d5c09012SAndroid Build Coastguard Worker // this public key. 325*d5c09012SAndroid Build Coastguard Worker string google_public_key_pem = 2; 326*d5c09012SAndroid Build Coastguard Worker 327*d5c09012SAndroid Build Coastguard Worker // The resource name of the customer CryptoKeyVersion used for signing. 328*d5c09012SAndroid Build Coastguard Worker string customer_kms_key_version = 3; 329*d5c09012SAndroid Build Coastguard Worker } 330*d5c09012SAndroid Build Coastguard Worker} 331*d5c09012SAndroid Build Coastguard Worker 332*d5c09012SAndroid Build Coastguard Worker// A decision that has been made to approve access to a resource. 333*d5c09012SAndroid Build Coastguard Workermessage ApproveDecision { 334*d5c09012SAndroid Build Coastguard Worker // The time at which approval was granted. 335*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp approve_time = 1; 336*d5c09012SAndroid Build Coastguard Worker 337*d5c09012SAndroid Build Coastguard Worker // The time at which the approval expires. 338*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp expire_time = 2; 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // If set, denotes the timestamp at which the approval is invalidated. 341*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp invalidate_time = 3; 342*d5c09012SAndroid Build Coastguard Worker 343*d5c09012SAndroid Build Coastguard Worker // The signature for the ApprovalRequest and details on how it was signed. 344*d5c09012SAndroid Build Coastguard Worker SignatureInfo signature_info = 4; 345*d5c09012SAndroid Build Coastguard Worker 346*d5c09012SAndroid Build Coastguard Worker // True when the request has been auto-approved. 347*d5c09012SAndroid Build Coastguard Worker bool auto_approved = 5; 348*d5c09012SAndroid Build Coastguard Worker} 349*d5c09012SAndroid Build Coastguard Worker 350*d5c09012SAndroid Build Coastguard Worker// A decision that has been made to dismiss an approval request. 351*d5c09012SAndroid Build Coastguard Workermessage DismissDecision { 352*d5c09012SAndroid Build Coastguard Worker // The time at which the approval request was dismissed. 353*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp dismiss_time = 1; 354*d5c09012SAndroid Build Coastguard Worker 355*d5c09012SAndroid Build Coastguard Worker // This field will be true if the ApprovalRequest was implicitly dismissed due 356*d5c09012SAndroid Build Coastguard Worker // to inaction by the access approval approvers (the request is not acted 357*d5c09012SAndroid Build Coastguard Worker // on by the approvers before the exiration time). 358*d5c09012SAndroid Build Coastguard Worker bool implicit = 2; 359*d5c09012SAndroid Build Coastguard Worker} 360*d5c09012SAndroid Build Coastguard Worker 361*d5c09012SAndroid Build Coastguard Worker// The properties associated with the resource of the request. 362*d5c09012SAndroid Build Coastguard Workermessage ResourceProperties { 363*d5c09012SAndroid Build Coastguard Worker // Whether an approval will exclude the descendants of the resource being 364*d5c09012SAndroid Build Coastguard Worker // requested. 365*d5c09012SAndroid Build Coastguard Worker bool excludes_descendants = 1; 366*d5c09012SAndroid Build Coastguard Worker} 367*d5c09012SAndroid Build Coastguard Worker 368*d5c09012SAndroid Build Coastguard Worker// A request for the customer to approve access to a resource. 369*d5c09012SAndroid Build Coastguard Workermessage ApprovalRequest { 370*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 371*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/ApprovalRequest" 372*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/approvalRequests/{approval_request}" 373*d5c09012SAndroid Build Coastguard Worker pattern: "folders/{folder}/approvalRequests/{approval_request}" 374*d5c09012SAndroid Build Coastguard Worker pattern: "organizations/{organization}/approvalRequests/{approval_request}" 375*d5c09012SAndroid Build Coastguard Worker }; 376*d5c09012SAndroid Build Coastguard Worker 377*d5c09012SAndroid Build Coastguard Worker // The resource name of the request. Format is 378*d5c09012SAndroid Build Coastguard Worker // "{projects|folders|organizations}/{id}/approvalRequests/{approval_request}". 379*d5c09012SAndroid Build Coastguard Worker string name = 1; 380*d5c09012SAndroid Build Coastguard Worker 381*d5c09012SAndroid Build Coastguard Worker // The resource for which approval is being requested. The format of the 382*d5c09012SAndroid Build Coastguard Worker // resource name is defined at 383*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/apis/design/resource_names. The resource name here 384*d5c09012SAndroid Build Coastguard Worker // may either be a "full" resource name (e.g. 385*d5c09012SAndroid Build Coastguard Worker // "//library.googleapis.com/shelves/shelf1/books/book2") or a "relative" 386*d5c09012SAndroid Build Coastguard Worker // resource name (e.g. "shelves/shelf1/books/book2") as described in the 387*d5c09012SAndroid Build Coastguard Worker // resource name specification. 388*d5c09012SAndroid Build Coastguard Worker string requested_resource_name = 2; 389*d5c09012SAndroid Build Coastguard Worker 390*d5c09012SAndroid Build Coastguard Worker // Properties related to the resource represented by requested_resource_name. 391*d5c09012SAndroid Build Coastguard Worker ResourceProperties requested_resource_properties = 9; 392*d5c09012SAndroid Build Coastguard Worker 393*d5c09012SAndroid Build Coastguard Worker // The justification for which approval is being requested. 394*d5c09012SAndroid Build Coastguard Worker AccessReason requested_reason = 3; 395*d5c09012SAndroid Build Coastguard Worker 396*d5c09012SAndroid Build Coastguard Worker // The locations for which approval is being requested. 397*d5c09012SAndroid Build Coastguard Worker AccessLocations requested_locations = 4; 398*d5c09012SAndroid Build Coastguard Worker 399*d5c09012SAndroid Build Coastguard Worker // The time at which approval was requested. 400*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp request_time = 5; 401*d5c09012SAndroid Build Coastguard Worker 402*d5c09012SAndroid Build Coastguard Worker // The requested expiration for the approval. If the request is approved, 403*d5c09012SAndroid Build Coastguard Worker // access will be granted from the time of approval until the expiration time. 404*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp requested_expiration = 6; 405*d5c09012SAndroid Build Coastguard Worker 406*d5c09012SAndroid Build Coastguard Worker // The current decision on the approval request. 407*d5c09012SAndroid Build Coastguard Worker oneof decision { 408*d5c09012SAndroid Build Coastguard Worker // Access was approved. 409*d5c09012SAndroid Build Coastguard Worker ApproveDecision approve = 7; 410*d5c09012SAndroid Build Coastguard Worker 411*d5c09012SAndroid Build Coastguard Worker // The request was dismissed. 412*d5c09012SAndroid Build Coastguard Worker DismissDecision dismiss = 8; 413*d5c09012SAndroid Build Coastguard Worker } 414*d5c09012SAndroid Build Coastguard Worker} 415*d5c09012SAndroid Build Coastguard Worker 416*d5c09012SAndroid Build Coastguard Worker// Represents the type of enrollment for a given service to Access Approval. 417*d5c09012SAndroid Build Coastguard Workerenum EnrollmentLevel { 418*d5c09012SAndroid Build Coastguard Worker // Default value for proto, shouldn't be used. 419*d5c09012SAndroid Build Coastguard Worker ENROLLMENT_LEVEL_UNSPECIFIED = 0; 420*d5c09012SAndroid Build Coastguard Worker 421*d5c09012SAndroid Build Coastguard Worker // Service is enrolled in Access Approval for all requests 422*d5c09012SAndroid Build Coastguard Worker BLOCK_ALL = 1; 423*d5c09012SAndroid Build Coastguard Worker} 424*d5c09012SAndroid Build Coastguard Worker 425*d5c09012SAndroid Build Coastguard Worker// Represents the enrollment of a cloud resource into a specific service. 426*d5c09012SAndroid Build Coastguard Workermessage EnrolledService { 427*d5c09012SAndroid Build Coastguard Worker // The product for which Access Approval will be enrolled. Allowed values are 428*d5c09012SAndroid Build Coastguard Worker // listed below (case-sensitive): 429*d5c09012SAndroid Build Coastguard Worker // 430*d5c09012SAndroid Build Coastguard Worker // * all 431*d5c09012SAndroid Build Coastguard Worker // * GA 432*d5c09012SAndroid Build Coastguard Worker // * App Engine 433*d5c09012SAndroid Build Coastguard Worker // * BigQuery 434*d5c09012SAndroid Build Coastguard Worker // * Cloud Bigtable 435*d5c09012SAndroid Build Coastguard Worker // * Cloud Key Management Service 436*d5c09012SAndroid Build Coastguard Worker // * Compute Engine 437*d5c09012SAndroid Build Coastguard Worker // * Cloud Dataflow 438*d5c09012SAndroid Build Coastguard Worker // * Cloud Dataproc 439*d5c09012SAndroid Build Coastguard Worker // * Cloud DLP 440*d5c09012SAndroid Build Coastguard Worker // * Cloud EKM 441*d5c09012SAndroid Build Coastguard Worker // * Cloud HSM 442*d5c09012SAndroid Build Coastguard Worker // * Cloud Identity and Access Management 443*d5c09012SAndroid Build Coastguard Worker // * Cloud Logging 444*d5c09012SAndroid Build Coastguard Worker // * Cloud Pub/Sub 445*d5c09012SAndroid Build Coastguard Worker // * Cloud Spanner 446*d5c09012SAndroid Build Coastguard Worker // * Cloud SQL 447*d5c09012SAndroid Build Coastguard Worker // * Cloud Storage 448*d5c09012SAndroid Build Coastguard Worker // * Google Kubernetes Engine 449*d5c09012SAndroid Build Coastguard Worker // * Organization Policy Serivice 450*d5c09012SAndroid Build Coastguard Worker // * Persistent Disk 451*d5c09012SAndroid Build Coastguard Worker // * Resource Manager 452*d5c09012SAndroid Build Coastguard Worker // * Secret Manager 453*d5c09012SAndroid Build Coastguard Worker // * Speaker ID 454*d5c09012SAndroid Build Coastguard Worker // 455*d5c09012SAndroid Build Coastguard Worker // Note: These values are supported as input for legacy purposes, but will not 456*d5c09012SAndroid Build Coastguard Worker // be returned from the API. 457*d5c09012SAndroid Build Coastguard Worker // 458*d5c09012SAndroid Build Coastguard Worker // * all 459*d5c09012SAndroid Build Coastguard Worker // * ga-only 460*d5c09012SAndroid Build Coastguard Worker // * appengine.googleapis.com 461*d5c09012SAndroid Build Coastguard Worker // * bigquery.googleapis.com 462*d5c09012SAndroid Build Coastguard Worker // * bigtable.googleapis.com 463*d5c09012SAndroid Build Coastguard Worker // * container.googleapis.com 464*d5c09012SAndroid Build Coastguard Worker // * cloudkms.googleapis.com 465*d5c09012SAndroid Build Coastguard Worker // * cloudresourcemanager.googleapis.com 466*d5c09012SAndroid Build Coastguard Worker // * cloudsql.googleapis.com 467*d5c09012SAndroid Build Coastguard Worker // * compute.googleapis.com 468*d5c09012SAndroid Build Coastguard Worker // * dataflow.googleapis.com 469*d5c09012SAndroid Build Coastguard Worker // * dataproc.googleapis.com 470*d5c09012SAndroid Build Coastguard Worker // * dlp.googleapis.com 471*d5c09012SAndroid Build Coastguard Worker // * iam.googleapis.com 472*d5c09012SAndroid Build Coastguard Worker // * logging.googleapis.com 473*d5c09012SAndroid Build Coastguard Worker // * orgpolicy.googleapis.com 474*d5c09012SAndroid Build Coastguard Worker // * pubsub.googleapis.com 475*d5c09012SAndroid Build Coastguard Worker // * spanner.googleapis.com 476*d5c09012SAndroid Build Coastguard Worker // * secretmanager.googleapis.com 477*d5c09012SAndroid Build Coastguard Worker // * speakerid.googleapis.com 478*d5c09012SAndroid Build Coastguard Worker // * storage.googleapis.com 479*d5c09012SAndroid Build Coastguard Worker // 480*d5c09012SAndroid Build Coastguard Worker // Calls to UpdateAccessApprovalSettings using 'all' or any of the 481*d5c09012SAndroid Build Coastguard Worker // XXX.googleapis.com will be translated to the associated product name 482*d5c09012SAndroid Build Coastguard Worker // ('all', 'App Engine', etc.). 483*d5c09012SAndroid Build Coastguard Worker // 484*d5c09012SAndroid Build Coastguard Worker // Note: 'all' will enroll the resource in all products supported at both 'GA' 485*d5c09012SAndroid Build Coastguard Worker // and 'Preview' levels. 486*d5c09012SAndroid Build Coastguard Worker // 487*d5c09012SAndroid Build Coastguard Worker // More information about levels of support is available at 488*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/access-approval/docs/supported-services 489*d5c09012SAndroid Build Coastguard Worker string cloud_product = 1; 490*d5c09012SAndroid Build Coastguard Worker 491*d5c09012SAndroid Build Coastguard Worker // The enrollment level of the service. 492*d5c09012SAndroid Build Coastguard Worker EnrollmentLevel enrollment_level = 2; 493*d5c09012SAndroid Build Coastguard Worker} 494*d5c09012SAndroid Build Coastguard Worker 495*d5c09012SAndroid Build Coastguard Worker// Settings on a Project/Folder/Organization related to Access Approval. 496*d5c09012SAndroid Build Coastguard Workermessage AccessApprovalSettings { 497*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 498*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalSettings" 499*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/accessApprovalSettings" 500*d5c09012SAndroid Build Coastguard Worker pattern: "folders/{folder}/accessApprovalSettings" 501*d5c09012SAndroid Build Coastguard Worker pattern: "organizations/{organization}/accessApprovalSettings" 502*d5c09012SAndroid Build Coastguard Worker }; 503*d5c09012SAndroid Build Coastguard Worker 504*d5c09012SAndroid Build Coastguard Worker // The resource name of the settings. Format is one of: 505*d5c09012SAndroid Build Coastguard Worker // 506*d5c09012SAndroid Build Coastguard Worker // * "projects/{project}/accessApprovalSettings" 507*d5c09012SAndroid Build Coastguard Worker // * "folders/{folder}/accessApprovalSettings" 508*d5c09012SAndroid Build Coastguard Worker // * "organizations/{organization}/accessApprovalSettings" 509*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 510*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalSettings" 511*d5c09012SAndroid Build Coastguard Worker }]; 512*d5c09012SAndroid Build Coastguard Worker 513*d5c09012SAndroid Build Coastguard Worker // A list of email addresses to which notifications relating to approval 514*d5c09012SAndroid Build Coastguard Worker // requests should be sent. Notifications relating to a resource will be sent 515*d5c09012SAndroid Build Coastguard Worker // to all emails in the settings of ancestor resources of that resource. A 516*d5c09012SAndroid Build Coastguard Worker // maximum of 50 email addresses are allowed. 517*d5c09012SAndroid Build Coastguard Worker repeated string notification_emails = 2; 518*d5c09012SAndroid Build Coastguard Worker 519*d5c09012SAndroid Build Coastguard Worker // A list of Google Cloud Services for which the given resource has Access 520*d5c09012SAndroid Build Coastguard Worker // Approval enrolled. Access requests for the resource given by name against 521*d5c09012SAndroid Build Coastguard Worker // any of these services contained here will be required to have explicit 522*d5c09012SAndroid Build Coastguard Worker // approval. If name refers to an organization, enrollment can be done for 523*d5c09012SAndroid Build Coastguard Worker // individual services. If name refers to a folder or project, enrollment can 524*d5c09012SAndroid Build Coastguard Worker // only be done on an all or nothing basis. 525*d5c09012SAndroid Build Coastguard Worker // 526*d5c09012SAndroid Build Coastguard Worker // If a cloud_product is repeated in this list, the first entry will be 527*d5c09012SAndroid Build Coastguard Worker // honored and all following entries will be discarded. A maximum of 10 528*d5c09012SAndroid Build Coastguard Worker // enrolled services will be enforced, to be expanded as the set of supported 529*d5c09012SAndroid Build Coastguard Worker // services is expanded. 530*d5c09012SAndroid Build Coastguard Worker repeated EnrolledService enrolled_services = 3; 531*d5c09012SAndroid Build Coastguard Worker 532*d5c09012SAndroid Build Coastguard Worker // Output only. This field is read only (not settable via 533*d5c09012SAndroid Build Coastguard Worker // UpdateAccessApprovalSettings method). If the field is true, that 534*d5c09012SAndroid Build Coastguard Worker // indicates that at least one service is enrolled for Access Approval in one 535*d5c09012SAndroid Build Coastguard Worker // or more ancestors of the Project or Folder (this field will always be 536*d5c09012SAndroid Build Coastguard Worker // unset for the organization since organizations do not have ancestors). 537*d5c09012SAndroid Build Coastguard Worker bool enrolled_ancestor = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 538*d5c09012SAndroid Build Coastguard Worker 539*d5c09012SAndroid Build Coastguard Worker // The asymmetric crypto key version to use for signing approval requests. 540*d5c09012SAndroid Build Coastguard Worker // Empty active_key_version indicates that a Google-managed key should be used 541*d5c09012SAndroid Build Coastguard Worker // for signing. This property will be ignored if set by an ancestor of this 542*d5c09012SAndroid Build Coastguard Worker // resource, and new non-empty values may not be set. 543*d5c09012SAndroid Build Coastguard Worker string active_key_version = 6; 544*d5c09012SAndroid Build Coastguard Worker 545*d5c09012SAndroid Build Coastguard Worker // Output only. This field is read only (not settable via UpdateAccessApprovalSettings 546*d5c09012SAndroid Build Coastguard Worker // method). If the field is true, that indicates that an ancestor of this 547*d5c09012SAndroid Build Coastguard Worker // Project or Folder has set active_key_version (this field will always be 548*d5c09012SAndroid Build Coastguard Worker // unset for the organization since organizations do not have ancestors). 549*d5c09012SAndroid Build Coastguard Worker bool ancestor_has_active_key_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 550*d5c09012SAndroid Build Coastguard Worker 551*d5c09012SAndroid Build Coastguard Worker // Output only. This field is read only (not settable via UpdateAccessApprovalSettings 552*d5c09012SAndroid Build Coastguard Worker // method). If the field is true, that indicates that there is some 553*d5c09012SAndroid Build Coastguard Worker // configuration issue with the active_key_version configured at this level in 554*d5c09012SAndroid Build Coastguard Worker // the resource hierarchy (e.g. it doesn't exist or the Access Approval 555*d5c09012SAndroid Build Coastguard Worker // service account doesn't have the correct permissions on it, etc.) This key 556*d5c09012SAndroid Build Coastguard Worker // version is not necessarily the effective key version at this level, as key 557*d5c09012SAndroid Build Coastguard Worker // versions are inherited top-down. 558*d5c09012SAndroid Build Coastguard Worker bool invalid_key_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 559*d5c09012SAndroid Build Coastguard Worker} 560*d5c09012SAndroid Build Coastguard Worker 561*d5c09012SAndroid Build Coastguard Worker// Access Approval service account related to a project/folder/organization. 562*d5c09012SAndroid Build Coastguard Workermessage AccessApprovalServiceAccount { 563*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 564*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalServiceAccount" 565*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/serviceAccount" 566*d5c09012SAndroid Build Coastguard Worker pattern: "folders/{folder}/serviceAccount" 567*d5c09012SAndroid Build Coastguard Worker pattern: "organizations/{organization}/serviceAccount" 568*d5c09012SAndroid Build Coastguard Worker }; 569*d5c09012SAndroid Build Coastguard Worker 570*d5c09012SAndroid Build Coastguard Worker // The resource name of the Access Approval service account. Format is one of: 571*d5c09012SAndroid Build Coastguard Worker // 572*d5c09012SAndroid Build Coastguard Worker // * "projects/{project}/serviceAccount" 573*d5c09012SAndroid Build Coastguard Worker // * "folders/{folder}/serviceAccount" 574*d5c09012SAndroid Build Coastguard Worker // * "organizations/{organization}/serviceAccount" 575*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 576*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalServiceAccount" 577*d5c09012SAndroid Build Coastguard Worker }]; 578*d5c09012SAndroid Build Coastguard Worker 579*d5c09012SAndroid Build Coastguard Worker // Email address of the service account. 580*d5c09012SAndroid Build Coastguard Worker string account_email = 2; 581*d5c09012SAndroid Build Coastguard Worker} 582*d5c09012SAndroid Build Coastguard Worker 583*d5c09012SAndroid Build Coastguard Worker// Request to list approval requests. 584*d5c09012SAndroid Build Coastguard Workermessage ListApprovalRequestsMessage { 585*d5c09012SAndroid Build Coastguard Worker // The parent resource. This may be "projects/{project}", 586*d5c09012SAndroid Build Coastguard Worker // "folders/{folder}", or "organizations/{organization}". 587*d5c09012SAndroid Build Coastguard Worker string parent = 1 [(google.api.resource_reference) = { 588*d5c09012SAndroid Build Coastguard Worker child_type: "accessapproval.googleapis.com/ApprovalRequest" 589*d5c09012SAndroid Build Coastguard Worker }]; 590*d5c09012SAndroid Build Coastguard Worker 591*d5c09012SAndroid Build Coastguard Worker // A filter on the type of approval requests to retrieve. Must be one of the 592*d5c09012SAndroid Build Coastguard Worker // following values: 593*d5c09012SAndroid Build Coastguard Worker // 594*d5c09012SAndroid Build Coastguard Worker // * [not set]: Requests that are pending or have active approvals. 595*d5c09012SAndroid Build Coastguard Worker // * ALL: All requests. 596*d5c09012SAndroid Build Coastguard Worker // * PENDING: Only pending requests. 597*d5c09012SAndroid Build Coastguard Worker // * ACTIVE: Only active (i.e. currently approved) requests. 598*d5c09012SAndroid Build Coastguard Worker // * DISMISSED: Only requests that have been dismissed, or requests that 599*d5c09012SAndroid Build Coastguard Worker // are not approved and past expiration. 600*d5c09012SAndroid Build Coastguard Worker // * EXPIRED: Only requests that have been approved, and the approval has 601*d5c09012SAndroid Build Coastguard Worker // expired. 602*d5c09012SAndroid Build Coastguard Worker // * HISTORY: Active, dismissed and expired requests. 603*d5c09012SAndroid Build Coastguard Worker string filter = 2; 604*d5c09012SAndroid Build Coastguard Worker 605*d5c09012SAndroid Build Coastguard Worker // Requested page size. 606*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 607*d5c09012SAndroid Build Coastguard Worker 608*d5c09012SAndroid Build Coastguard Worker // A token identifying the page of results to return. 609*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 610*d5c09012SAndroid Build Coastguard Worker} 611*d5c09012SAndroid Build Coastguard Worker 612*d5c09012SAndroid Build Coastguard Worker// Response to listing of ApprovalRequest objects. 613*d5c09012SAndroid Build Coastguard Workermessage ListApprovalRequestsResponse { 614*d5c09012SAndroid Build Coastguard Worker // Approval request details. 615*d5c09012SAndroid Build Coastguard Worker repeated ApprovalRequest approval_requests = 1; 616*d5c09012SAndroid Build Coastguard Worker 617*d5c09012SAndroid Build Coastguard Worker // Token to retrieve the next page of results, or empty if there are no more. 618*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 619*d5c09012SAndroid Build Coastguard Worker} 620*d5c09012SAndroid Build Coastguard Worker 621*d5c09012SAndroid Build Coastguard Worker// Request to get an approval request. 622*d5c09012SAndroid Build Coastguard Workermessage GetApprovalRequestMessage { 623*d5c09012SAndroid Build Coastguard Worker // The name of the approval request to retrieve. 624*d5c09012SAndroid Build Coastguard Worker // Format: 625*d5c09012SAndroid Build Coastguard Worker // "{projects|folders|organizations}/{id}/approvalRequests/{approval_request}" 626*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 627*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/ApprovalRequest" 628*d5c09012SAndroid Build Coastguard Worker }]; 629*d5c09012SAndroid Build Coastguard Worker} 630*d5c09012SAndroid Build Coastguard Worker 631*d5c09012SAndroid Build Coastguard Worker// Request to approve an ApprovalRequest. 632*d5c09012SAndroid Build Coastguard Workermessage ApproveApprovalRequestMessage { 633*d5c09012SAndroid Build Coastguard Worker // Name of the approval request to approve. 634*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 635*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/ApprovalRequest" 636*d5c09012SAndroid Build Coastguard Worker }]; 637*d5c09012SAndroid Build Coastguard Worker 638*d5c09012SAndroid Build Coastguard Worker // The expiration time of this approval. 639*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp expire_time = 2; 640*d5c09012SAndroid Build Coastguard Worker} 641*d5c09012SAndroid Build Coastguard Worker 642*d5c09012SAndroid Build Coastguard Worker// Request to dismiss an approval request. 643*d5c09012SAndroid Build Coastguard Workermessage DismissApprovalRequestMessage { 644*d5c09012SAndroid Build Coastguard Worker // Name of the ApprovalRequest to dismiss. 645*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 646*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/ApprovalRequest" 647*d5c09012SAndroid Build Coastguard Worker }]; 648*d5c09012SAndroid Build Coastguard Worker} 649*d5c09012SAndroid Build Coastguard Worker 650*d5c09012SAndroid Build Coastguard Worker// Request to invalidate an existing approval. 651*d5c09012SAndroid Build Coastguard Workermessage InvalidateApprovalRequestMessage { 652*d5c09012SAndroid Build Coastguard Worker // Name of the ApprovalRequest to invalidate. 653*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 654*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/ApprovalRequest" 655*d5c09012SAndroid Build Coastguard Worker }]; 656*d5c09012SAndroid Build Coastguard Worker} 657*d5c09012SAndroid Build Coastguard Worker 658*d5c09012SAndroid Build Coastguard Worker// Request to get access approval settings. 659*d5c09012SAndroid Build Coastguard Workermessage GetAccessApprovalSettingsMessage { 660*d5c09012SAndroid Build Coastguard Worker // The name of the AccessApprovalSettings to retrieve. 661*d5c09012SAndroid Build Coastguard Worker // Format: "{projects|folders|organizations}/{id}/accessApprovalSettings" 662*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 663*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalSettings" 664*d5c09012SAndroid Build Coastguard Worker }]; 665*d5c09012SAndroid Build Coastguard Worker} 666*d5c09012SAndroid Build Coastguard Worker 667*d5c09012SAndroid Build Coastguard Worker// Request to update access approval settings. 668*d5c09012SAndroid Build Coastguard Workermessage UpdateAccessApprovalSettingsMessage { 669*d5c09012SAndroid Build Coastguard Worker // The new AccessApprovalSettings. 670*d5c09012SAndroid Build Coastguard Worker AccessApprovalSettings settings = 1; 671*d5c09012SAndroid Build Coastguard Worker 672*d5c09012SAndroid Build Coastguard Worker // The update mask applies to the settings. Only the top level fields of 673*d5c09012SAndroid Build Coastguard Worker // AccessApprovalSettings (notification_emails & enrolled_services) are 674*d5c09012SAndroid Build Coastguard Worker // supported. For each field, if it is included, the currently stored value 675*d5c09012SAndroid Build Coastguard Worker // will be entirely overwritten with the value of the field passed in this 676*d5c09012SAndroid Build Coastguard Worker // request. 677*d5c09012SAndroid Build Coastguard Worker // 678*d5c09012SAndroid Build Coastguard Worker // For the `FieldMask` definition, see 679*d5c09012SAndroid Build Coastguard Worker // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask 680*d5c09012SAndroid Build Coastguard Worker // If this field is left unset, only the notification_emails field will be 681*d5c09012SAndroid Build Coastguard Worker // updated. 682*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 2; 683*d5c09012SAndroid Build Coastguard Worker} 684*d5c09012SAndroid Build Coastguard Worker 685*d5c09012SAndroid Build Coastguard Worker// Request to delete access approval settings. 686*d5c09012SAndroid Build Coastguard Workermessage DeleteAccessApprovalSettingsMessage { 687*d5c09012SAndroid Build Coastguard Worker // Name of the AccessApprovalSettings to delete. 688*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.resource_reference) = { 689*d5c09012SAndroid Build Coastguard Worker type: "accessapproval.googleapis.com/AccessApprovalSettings" 690*d5c09012SAndroid Build Coastguard Worker }]; 691*d5c09012SAndroid Build Coastguard Worker} 692*d5c09012SAndroid Build Coastguard Worker 693*d5c09012SAndroid Build Coastguard Worker// Request to get an Access Approval service account. 694*d5c09012SAndroid Build Coastguard Workermessage GetAccessApprovalServiceAccountMessage { 695*d5c09012SAndroid Build Coastguard Worker // Name of the AccessApprovalServiceAccount to retrieve. 696*d5c09012SAndroid Build Coastguard Worker string name = 1; 697*d5c09012SAndroid Build Coastguard Worker} 698