xref: /aosp_15_r20/external/googleapis/google/cloud/essentialcontacts/v1/service.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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.essentialcontacts.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/cloud/essentialcontacts/v1/enums.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.EssentialContacts.V1";
29*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/essentialcontacts/apiv1/essentialcontactspb;essentialcontactspb";
30*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.essentialcontacts.v1";
32*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\EssentialContacts\\V1";
33*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::EssentialContacts::V1";
34*d5c09012SAndroid Build Coastguard Worker
35*d5c09012SAndroid Build Coastguard Worker// Manages contacts for important Google Cloud notifications.
36*d5c09012SAndroid Build Coastguard Workerservice EssentialContactsService {
37*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "essentialcontacts.googleapis.com";
38*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
39*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker  // Adds a new contact for a resource.
42*d5c09012SAndroid Build Coastguard Worker  rpc CreateContact(CreateContactRequest) returns (Contact) {
43*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
44*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*}/contacts"
45*d5c09012SAndroid Build Coastguard Worker      body: "contact"
46*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
47*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{parent=folders/*}/contacts"
48*d5c09012SAndroid Build Coastguard Worker        body: "contact"
49*d5c09012SAndroid Build Coastguard Worker      }
50*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
51*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{parent=organizations/*}/contacts"
52*d5c09012SAndroid Build Coastguard Worker        body: "contact"
53*d5c09012SAndroid Build Coastguard Worker      }
54*d5c09012SAndroid Build Coastguard Worker    };
55*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,contact";
56*d5c09012SAndroid Build Coastguard Worker  }
57*d5c09012SAndroid Build Coastguard Worker
58*d5c09012SAndroid Build Coastguard Worker  // Updates a contact.
59*d5c09012SAndroid Build Coastguard Worker  // Note: A contact's email address cannot be changed.
60*d5c09012SAndroid Build Coastguard Worker  rpc UpdateContact(UpdateContactRequest) returns (Contact) {
61*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
62*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{contact.name=projects/*/contacts/*}"
63*d5c09012SAndroid Build Coastguard Worker      body: "contact"
64*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
65*d5c09012SAndroid Build Coastguard Worker        patch: "/v1/{contact.name=folders/*/contacts/*}"
66*d5c09012SAndroid Build Coastguard Worker        body: "contact"
67*d5c09012SAndroid Build Coastguard Worker      }
68*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
69*d5c09012SAndroid Build Coastguard Worker        patch: "/v1/{contact.name=organizations/*/contacts/*}"
70*d5c09012SAndroid Build Coastguard Worker        body: "contact"
71*d5c09012SAndroid Build Coastguard Worker      }
72*d5c09012SAndroid Build Coastguard Worker    };
73*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "contact,update_mask";
74*d5c09012SAndroid Build Coastguard Worker  }
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker  // Lists the contacts that have been set on a resource.
77*d5c09012SAndroid Build Coastguard Worker  rpc ListContacts(ListContactsRequest) returns (ListContactsResponse) {
78*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
79*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*}/contacts"
80*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{parent=folders/*}/contacts" }
81*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{parent=organizations/*}/contacts" }
82*d5c09012SAndroid Build Coastguard Worker    };
83*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
84*d5c09012SAndroid Build Coastguard Worker  }
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // Gets a single contact.
87*d5c09012SAndroid Build Coastguard Worker  rpc GetContact(GetContactRequest) returns (Contact) {
88*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
89*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/contacts/*}"
90*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{name=folders/*/contacts/*}" }
91*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{name=organizations/*/contacts/*}" }
92*d5c09012SAndroid Build Coastguard Worker    };
93*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
94*d5c09012SAndroid Build Coastguard Worker  }
95*d5c09012SAndroid Build Coastguard Worker
96*d5c09012SAndroid Build Coastguard Worker  // Deletes a contact.
97*d5c09012SAndroid Build Coastguard Worker  rpc DeleteContact(DeleteContactRequest) returns (google.protobuf.Empty) {
98*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
99*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/contacts/*}"
100*d5c09012SAndroid Build Coastguard Worker      additional_bindings { delete: "/v1/{name=folders/*/contacts/*}" }
101*d5c09012SAndroid Build Coastguard Worker      additional_bindings { delete: "/v1/{name=organizations/*/contacts/*}" }
102*d5c09012SAndroid Build Coastguard Worker    };
103*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
104*d5c09012SAndroid Build Coastguard Worker  }
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // Lists all contacts for the resource that are subscribed to the
107*d5c09012SAndroid Build Coastguard Worker  // specified notification categories, including contacts inherited from
108*d5c09012SAndroid Build Coastguard Worker  // any parent resources.
109*d5c09012SAndroid Build Coastguard Worker  rpc ComputeContacts(ComputeContactsRequest)
110*d5c09012SAndroid Build Coastguard Worker      returns (ComputeContactsResponse) {
111*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
112*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*}/contacts:compute"
113*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{parent=folders/*}/contacts:compute" }
114*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
115*d5c09012SAndroid Build Coastguard Worker        get: "/v1/{parent=organizations/*}/contacts:compute"
116*d5c09012SAndroid Build Coastguard Worker      }
117*d5c09012SAndroid Build Coastguard Worker    };
118*d5c09012SAndroid Build Coastguard Worker  }
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Allows a contact admin to send a test message to contact to verify that it
121*d5c09012SAndroid Build Coastguard Worker  // has been configured correctly.
122*d5c09012SAndroid Build Coastguard Worker  rpc SendTestMessage(SendTestMessageRequest) returns (google.protobuf.Empty) {
123*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
124*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{resource=projects/*}/contacts:sendTestMessage"
125*d5c09012SAndroid Build Coastguard Worker      body: "*"
126*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
127*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{resource=folders/*}/contacts:sendTestMessage"
128*d5c09012SAndroid Build Coastguard Worker        body: "*"
129*d5c09012SAndroid Build Coastguard Worker      }
130*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
131*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{resource=organizations/*}/contacts:sendTestMessage"
132*d5c09012SAndroid Build Coastguard Worker        body: "*"
133*d5c09012SAndroid Build Coastguard Worker      }
134*d5c09012SAndroid Build Coastguard Worker    };
135*d5c09012SAndroid Build Coastguard Worker  }
136*d5c09012SAndroid Build Coastguard Worker}
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker// A contact that will receive notifications from Google Cloud.
139*d5c09012SAndroid Build Coastguard Workermessage Contact {
140*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
141*d5c09012SAndroid Build Coastguard Worker    type: "essentialcontacts.googleapis.com/Contact"
142*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/contacts/{contact}"
143*d5c09012SAndroid Build Coastguard Worker    pattern: "folders/{folder}/contacts/{contact}"
144*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/contacts/{contact}"
145*d5c09012SAndroid Build Coastguard Worker  };
146*d5c09012SAndroid Build Coastguard Worker
147*d5c09012SAndroid Build Coastguard Worker  // Output only. The identifier for the contact.
148*d5c09012SAndroid Build Coastguard Worker  // Format: {resource_type}/{resource_id}/contacts/{contact_id}
149*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Required. The email address to send notifications to. The email address
152*d5c09012SAndroid Build Coastguard Worker  // does not need to be a Google Account.
153*d5c09012SAndroid Build Coastguard Worker  string email = 2 [(google.api.field_behavior) = REQUIRED];
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker  // Required. The categories of notifications that the contact will receive
156*d5c09012SAndroid Build Coastguard Worker  // communications for.
157*d5c09012SAndroid Build Coastguard Worker  repeated NotificationCategory notification_category_subscriptions = 3
158*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // Required. The preferred language for notifications, as a ISO 639-1 language
161*d5c09012SAndroid Build Coastguard Worker  // code. See [Supported
162*d5c09012SAndroid Build Coastguard Worker  // languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages)
163*d5c09012SAndroid Build Coastguard Worker  // for a list of supported languages.
164*d5c09012SAndroid Build Coastguard Worker  string language_tag = 4 [(google.api.field_behavior) = REQUIRED];
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker  // The validity of the contact. A contact is considered valid if it is the
167*d5c09012SAndroid Build Coastguard Worker  // correct recipient for notifications for a particular resource.
168*d5c09012SAndroid Build Coastguard Worker  ValidationState validation_state = 8;
169*d5c09012SAndroid Build Coastguard Worker
170*d5c09012SAndroid Build Coastguard Worker  // The last time the validation_state was updated, either manually or
171*d5c09012SAndroid Build Coastguard Worker  // automatically. A contact is considered stale if its validation state was
172*d5c09012SAndroid Build Coastguard Worker  // updated more than 1 year ago.
173*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp validate_time = 9;
174*d5c09012SAndroid Build Coastguard Worker}
175*d5c09012SAndroid Build Coastguard Worker
176*d5c09012SAndroid Build Coastguard Worker// Request message for the ListContacts method.
177*d5c09012SAndroid Build Coastguard Workermessage ListContactsRequest {
178*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource name.
179*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id}, folders/{folder_id} or
180*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}
181*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
182*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
183*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
184*d5c09012SAndroid Build Coastguard Worker      child_type: "essentialcontacts.googleapis.com/Contact"
185*d5c09012SAndroid Build Coastguard Worker    }
186*d5c09012SAndroid Build Coastguard Worker  ];
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of results to return from this request.
189*d5c09012SAndroid Build Coastguard Worker  // Non-positive values are ignored. The presence of `next_page_token` in the
190*d5c09012SAndroid Build Coastguard Worker  // response indicates that more results might be available.
191*d5c09012SAndroid Build Coastguard Worker  // If not specified, the default page_size is 100.
192*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker  // Optional. If present, retrieves the next batch of results from the
195*d5c09012SAndroid Build Coastguard Worker  // preceding call to this method. `page_token` must be the value of
196*d5c09012SAndroid Build Coastguard Worker  // `next_page_token` from the previous response. The values of other method
197*d5c09012SAndroid Build Coastguard Worker  // parameters should be identical to those in the previous call.
198*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
199*d5c09012SAndroid Build Coastguard Worker}
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker// Response message for the ListContacts method.
202*d5c09012SAndroid Build Coastguard Workermessage ListContactsResponse {
203*d5c09012SAndroid Build Coastguard Worker  // The contacts for the specified resource.
204*d5c09012SAndroid Build Coastguard Worker  repeated Contact contacts = 1;
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // If there are more results than those appearing in this response, then
207*d5c09012SAndroid Build Coastguard Worker  // `next_page_token` is included. To get the next set of results, call this
208*d5c09012SAndroid Build Coastguard Worker  // method again using the value of `next_page_token` as `page_token` and the
209*d5c09012SAndroid Build Coastguard Worker  // rest of the parameters the same as the original request.
210*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
211*d5c09012SAndroid Build Coastguard Worker}
212*d5c09012SAndroid Build Coastguard Worker
213*d5c09012SAndroid Build Coastguard Worker// Request message for the GetContact method.
214*d5c09012SAndroid Build Coastguard Workermessage GetContactRequest {
215*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the contact to retrieve.
216*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id}/contacts/{contact_id},
217*d5c09012SAndroid Build Coastguard Worker  // folders/{folder_id}/contacts/{contact_id} or
218*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}/contacts/{contact_id}
219*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
220*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
221*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
222*d5c09012SAndroid Build Coastguard Worker      type: "essentialcontacts.googleapis.com/Contact"
223*d5c09012SAndroid Build Coastguard Worker    }
224*d5c09012SAndroid Build Coastguard Worker  ];
225*d5c09012SAndroid Build Coastguard Worker}
226*d5c09012SAndroid Build Coastguard Worker
227*d5c09012SAndroid Build Coastguard Worker// Request message for the DeleteContact method.
228*d5c09012SAndroid Build Coastguard Workermessage DeleteContactRequest {
229*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the contact to delete.
230*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id}/contacts/{contact_id},
231*d5c09012SAndroid Build Coastguard Worker  // folders/{folder_id}/contacts/{contact_id} or
232*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}/contacts/{contact_id}
233*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
234*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
235*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
236*d5c09012SAndroid Build Coastguard Worker      type: "essentialcontacts.googleapis.com/Contact"
237*d5c09012SAndroid Build Coastguard Worker    }
238*d5c09012SAndroid Build Coastguard Worker  ];
239*d5c09012SAndroid Build Coastguard Worker}
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker// Request message for the CreateContact method.
242*d5c09012SAndroid Build Coastguard Workermessage CreateContactRequest {
243*d5c09012SAndroid Build Coastguard Worker  // Required. The resource to save this contact for.
244*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id}, folders/{folder_id} or
245*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}
246*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
247*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
248*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
249*d5c09012SAndroid Build Coastguard Worker      child_type: "essentialcontacts.googleapis.com/Contact"
250*d5c09012SAndroid Build Coastguard Worker    }
251*d5c09012SAndroid Build Coastguard Worker  ];
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker  // Required. The contact to create. Must specify an email address and language
254*d5c09012SAndroid Build Coastguard Worker  // tag.
255*d5c09012SAndroid Build Coastguard Worker  Contact contact = 2 [(google.api.field_behavior) = REQUIRED];
256*d5c09012SAndroid Build Coastguard Worker}
257*d5c09012SAndroid Build Coastguard Worker
258*d5c09012SAndroid Build Coastguard Worker// Request message for the UpdateContact method.
259*d5c09012SAndroid Build Coastguard Workermessage UpdateContactRequest {
260*d5c09012SAndroid Build Coastguard Worker  // Required. The contact resource to replace the existing saved contact. Note:
261*d5c09012SAndroid Build Coastguard Worker  // the email address of the contact cannot be modified.
262*d5c09012SAndroid Build Coastguard Worker  Contact contact = 2 [(google.api.field_behavior) = REQUIRED];
263*d5c09012SAndroid Build Coastguard Worker
264*d5c09012SAndroid Build Coastguard Worker  // Optional. The update mask applied to the resource. For the `FieldMask`
265*d5c09012SAndroid Build Coastguard Worker  // definition, see
266*d5c09012SAndroid Build Coastguard Worker  // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
267*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3
268*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
269*d5c09012SAndroid Build Coastguard Worker}
270*d5c09012SAndroid Build Coastguard Worker
271*d5c09012SAndroid Build Coastguard Worker// Request message for the ComputeContacts method.
272*d5c09012SAndroid Build Coastguard Workermessage ComputeContactsRequest {
273*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the resource to compute contacts for.
274*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id},
275*d5c09012SAndroid Build Coastguard Worker  // folders/{folder_id} or projects/{project_id}
276*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
277*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
278*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
279*d5c09012SAndroid Build Coastguard Worker      child_type: "essentialcontacts.googleapis.com/Contact"
280*d5c09012SAndroid Build Coastguard Worker    }
281*d5c09012SAndroid Build Coastguard Worker  ];
282*d5c09012SAndroid Build Coastguard Worker
283*d5c09012SAndroid Build Coastguard Worker  // The categories of notifications to compute contacts for. If ALL is included
284*d5c09012SAndroid Build Coastguard Worker  // in this list, contacts subscribed to any notification category will be
285*d5c09012SAndroid Build Coastguard Worker  // returned.
286*d5c09012SAndroid Build Coastguard Worker  repeated NotificationCategory notification_categories = 6;
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of results to return from this request.
289*d5c09012SAndroid Build Coastguard Worker  // Non-positive values are ignored. The presence of `next_page_token` in the
290*d5c09012SAndroid Build Coastguard Worker  // response indicates that more results might be available.
291*d5c09012SAndroid Build Coastguard Worker  // If not specified, the default page_size is 100.
292*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
293*d5c09012SAndroid Build Coastguard Worker
294*d5c09012SAndroid Build Coastguard Worker  // Optional. If present, retrieves the next batch of results from the
295*d5c09012SAndroid Build Coastguard Worker  // preceding call to this method. `page_token` must be the value of
296*d5c09012SAndroid Build Coastguard Worker  // `next_page_token` from the previous response. The values of other method
297*d5c09012SAndroid Build Coastguard Worker  // parameters should be identical to those in the previous call.
298*d5c09012SAndroid Build Coastguard Worker  string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
299*d5c09012SAndroid Build Coastguard Worker}
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker// Response message for the ComputeContacts method.
302*d5c09012SAndroid Build Coastguard Workermessage ComputeContactsResponse {
303*d5c09012SAndroid Build Coastguard Worker  // All contacts for the resource that are subscribed to the specified
304*d5c09012SAndroid Build Coastguard Worker  // notification categories, including contacts inherited from any parent
305*d5c09012SAndroid Build Coastguard Worker  // resources.
306*d5c09012SAndroid Build Coastguard Worker  repeated Contact contacts = 1;
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker  // If there are more results than those appearing in this response, then
309*d5c09012SAndroid Build Coastguard Worker  // `next_page_token` is included. To get the next set of results, call this
310*d5c09012SAndroid Build Coastguard Worker  // method again using the value of `next_page_token` as `page_token` and the
311*d5c09012SAndroid Build Coastguard Worker  // rest of the parameters the same as the original request.
312*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
313*d5c09012SAndroid Build Coastguard Worker}
314*d5c09012SAndroid Build Coastguard Worker
315*d5c09012SAndroid Build Coastguard Worker// Request message for the SendTestMessage method.
316*d5c09012SAndroid Build Coastguard Workermessage SendTestMessageRequest {
317*d5c09012SAndroid Build Coastguard Worker  // Required. The list of names of the contacts to send a test message to.
318*d5c09012SAndroid Build Coastguard Worker  // Format: organizations/{organization_id}/contacts/{contact_id},
319*d5c09012SAndroid Build Coastguard Worker  // folders/{folder_id}/contacts/{contact_id} or
320*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}/contacts/{contact_id}
321*d5c09012SAndroid Build Coastguard Worker  repeated string contacts = 1 [
322*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
323*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
324*d5c09012SAndroid Build Coastguard Worker      type: "essentialcontacts.googleapis.com/Contact"
325*d5c09012SAndroid Build Coastguard Worker    }
326*d5c09012SAndroid Build Coastguard Worker  ];
327*d5c09012SAndroid Build Coastguard Worker
328*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the resource to send the test message for. All
329*d5c09012SAndroid Build Coastguard Worker  // contacts must either be set directly on this resource or inherited from
330*d5c09012SAndroid Build Coastguard Worker  // another resource that is an ancestor of this one. Format:
331*d5c09012SAndroid Build Coastguard Worker  // organizations/{organization_id}, folders/{folder_id} or
332*d5c09012SAndroid Build Coastguard Worker  // projects/{project_id}
333*d5c09012SAndroid Build Coastguard Worker  string resource = 2 [
334*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
335*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
336*d5c09012SAndroid Build Coastguard Worker      child_type: "essentialcontacts.googleapis.com/Contact"
337*d5c09012SAndroid Build Coastguard Worker    }
338*d5c09012SAndroid Build Coastguard Worker  ];
339*d5c09012SAndroid Build Coastguard Worker
340*d5c09012SAndroid Build Coastguard Worker  // Required. The notification category to send the test message for. All
341*d5c09012SAndroid Build Coastguard Worker  // contacts must be subscribed to this category.
342*d5c09012SAndroid Build Coastguard Worker  NotificationCategory notification_category = 3
343*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
344*d5c09012SAndroid Build Coastguard Worker}
345