xref: /aosp_15_r20/external/googleapis/google/analytics/admin/v1beta/analytics_admin.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.analytics.admin.v1beta;
18
19import "google/analytics/admin/v1beta/access_report.proto";
20import "google/analytics/admin/v1beta/resources.proto";
21import "google/api/annotations.proto";
22import "google/api/client.proto";
23import "google/api/field_behavior.proto";
24import "google/api/resource.proto";
25import "google/protobuf/empty.proto";
26import "google/protobuf/field_mask.proto";
27import "google/protobuf/timestamp.proto";
28
29option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin";
30option java_multiple_files = true;
31option java_outer_classname = "AnalyticsAdminProto";
32option java_package = "com.google.analytics.admin.v1beta";
33
34// Service Interface for the Analytics Admin API (GA4).
35service AnalyticsAdminService {
36  option (google.api.default_host) = "analyticsadmin.googleapis.com";
37  option (google.api.oauth_scopes) =
38      "https://www.googleapis.com/auth/analytics.edit,"
39      "https://www.googleapis.com/auth/analytics.readonly";
40
41  // Lookup for a single Account.
42  rpc GetAccount(GetAccountRequest) returns (Account) {
43    option (google.api.http) = {
44      get: "/v1beta/{name=accounts/*}"
45    };
46    option (google.api.method_signature) = "name";
47  }
48
49  // Returns all accounts accessible by the caller.
50  //
51  // Note that these accounts might not currently have GA4 properties.
52  // Soft-deleted (ie: "trashed") accounts are excluded by default.
53  // Returns an empty list if no relevant accounts are found.
54  rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) {
55    option (google.api.http) = {
56      get: "/v1beta/accounts"
57    };
58  }
59
60  // Marks target Account as soft-deleted (ie: "trashed") and returns it.
61  //
62  // This API does not have a method to restore soft-deleted accounts.
63  // However, they can be restored using the Trash Can UI.
64  //
65  // If the accounts are not restored before the expiration time, the account
66  // and all child resources (eg: Properties, GoogleAdsLinks, Streams,
67  // UserLinks) will be permanently purged.
68  // https://support.google.com/analytics/answer/6154772
69  //
70  // Returns an error if the target is not found.
71  rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) {
72    option (google.api.http) = {
73      delete: "/v1beta/{name=accounts/*}"
74    };
75    option (google.api.method_signature) = "name";
76  }
77
78  // Updates an account.
79  rpc UpdateAccount(UpdateAccountRequest) returns (Account) {
80    option (google.api.http) = {
81      patch: "/v1beta/{account.name=accounts/*}"
82      body: "account"
83    };
84    option (google.api.method_signature) = "account,update_mask";
85  }
86
87  // Requests a ticket for creating an account.
88  rpc ProvisionAccountTicket(ProvisionAccountTicketRequest)
89      returns (ProvisionAccountTicketResponse) {
90    option (google.api.http) = {
91      post: "/v1beta/accounts:provisionAccountTicket"
92      body: "*"
93    };
94  }
95
96  // Returns summaries of all accounts accessible by the caller.
97  rpc ListAccountSummaries(ListAccountSummariesRequest)
98      returns (ListAccountSummariesResponse) {
99    option (google.api.http) = {
100      get: "/v1beta/accountSummaries"
101    };
102  }
103
104  // Lookup for a single "GA4" Property.
105  rpc GetProperty(GetPropertyRequest) returns (Property) {
106    option (google.api.http) = {
107      get: "/v1beta/{name=properties/*}"
108    };
109    option (google.api.method_signature) = "name";
110  }
111
112  // Returns child Properties under the specified parent Account.
113  //
114  // Only "GA4" properties will be returned.
115  // Properties will be excluded if the caller does not have access.
116  // Soft-deleted (ie: "trashed") properties are excluded by default.
117  // Returns an empty list if no relevant properties are found.
118  rpc ListProperties(ListPropertiesRequest) returns (ListPropertiesResponse) {
119    option (google.api.http) = {
120      get: "/v1beta/properties"
121    };
122  }
123
124  // Creates an "GA4" property with the specified location and attributes.
125  rpc CreateProperty(CreatePropertyRequest) returns (Property) {
126    option (google.api.http) = {
127      post: "/v1beta/properties"
128      body: "property"
129    };
130    option (google.api.method_signature) = "property";
131  }
132
133  // Marks target Property as soft-deleted (ie: "trashed") and returns it.
134  //
135  // This API does not have a method to restore soft-deleted properties.
136  // However, they can be restored using the Trash Can UI.
137  //
138  // If the properties are not restored before the expiration time, the Property
139  // and all child resources (eg: GoogleAdsLinks, Streams, UserLinks)
140  // will be permanently purged.
141  // https://support.google.com/analytics/answer/6154772
142  //
143  // Returns an error if the target is not found, or is not a GA4 Property.
144  rpc DeleteProperty(DeletePropertyRequest) returns (Property) {
145    option (google.api.http) = {
146      delete: "/v1beta/{name=properties/*}"
147    };
148    option (google.api.method_signature) = "name";
149  }
150
151  // Updates a property.
152  rpc UpdateProperty(UpdatePropertyRequest) returns (Property) {
153    option (google.api.http) = {
154      patch: "/v1beta/{property.name=properties/*}"
155      body: "property"
156    };
157    option (google.api.method_signature) = "property,update_mask";
158  }
159
160  // Creates a FirebaseLink.
161  //
162  // Properties can have at most one FirebaseLink.
163  rpc CreateFirebaseLink(CreateFirebaseLinkRequest) returns (FirebaseLink) {
164    option (google.api.http) = {
165      post: "/v1beta/{parent=properties/*}/firebaseLinks"
166      body: "firebase_link"
167    };
168    option (google.api.method_signature) = "parent,firebase_link";
169  }
170
171  // Deletes a FirebaseLink on a property
172  rpc DeleteFirebaseLink(DeleteFirebaseLinkRequest)
173      returns (google.protobuf.Empty) {
174    option (google.api.http) = {
175      delete: "/v1beta/{name=properties/*/firebaseLinks/*}"
176    };
177    option (google.api.method_signature) = "name";
178  }
179
180  // Lists FirebaseLinks on a property.
181  // Properties can have at most one FirebaseLink.
182  rpc ListFirebaseLinks(ListFirebaseLinksRequest)
183      returns (ListFirebaseLinksResponse) {
184    option (google.api.http) = {
185      get: "/v1beta/{parent=properties/*}/firebaseLinks"
186    };
187    option (google.api.method_signature) = "parent";
188  }
189
190  // Creates a GoogleAdsLink.
191  rpc CreateGoogleAdsLink(CreateGoogleAdsLinkRequest) returns (GoogleAdsLink) {
192    option (google.api.http) = {
193      post: "/v1beta/{parent=properties/*}/googleAdsLinks"
194      body: "google_ads_link"
195    };
196    option (google.api.method_signature) = "parent,google_ads_link";
197  }
198
199  // Updates a GoogleAdsLink on a property
200  rpc UpdateGoogleAdsLink(UpdateGoogleAdsLinkRequest) returns (GoogleAdsLink) {
201    option (google.api.http) = {
202      patch: "/v1beta/{google_ads_link.name=properties/*/googleAdsLinks/*}"
203      body: "google_ads_link"
204    };
205    option (google.api.method_signature) = "google_ads_link,update_mask";
206  }
207
208  // Deletes a GoogleAdsLink on a property
209  rpc DeleteGoogleAdsLink(DeleteGoogleAdsLinkRequest)
210      returns (google.protobuf.Empty) {
211    option (google.api.http) = {
212      delete: "/v1beta/{name=properties/*/googleAdsLinks/*}"
213    };
214    option (google.api.method_signature) = "name";
215  }
216
217  // Lists GoogleAdsLinks on a property.
218  rpc ListGoogleAdsLinks(ListGoogleAdsLinksRequest)
219      returns (ListGoogleAdsLinksResponse) {
220    option (google.api.http) = {
221      get: "/v1beta/{parent=properties/*}/googleAdsLinks"
222    };
223    option (google.api.method_signature) = "parent";
224  }
225
226  // Get data sharing settings on an account.
227  // Data sharing settings are singletons.
228  rpc GetDataSharingSettings(GetDataSharingSettingsRequest)
229      returns (DataSharingSettings) {
230    option (google.api.http) = {
231      get: "/v1beta/{name=accounts/*/dataSharingSettings}"
232    };
233    option (google.api.method_signature) = "name";
234  }
235
236  // Lookup for a single "GA4" MeasurementProtocolSecret.
237  rpc GetMeasurementProtocolSecret(GetMeasurementProtocolSecretRequest)
238      returns (MeasurementProtocolSecret) {
239    option (google.api.http) = {
240      get: "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}"
241    };
242    option (google.api.method_signature) = "name";
243  }
244
245  // Returns child MeasurementProtocolSecrets under the specified parent
246  // Property.
247  rpc ListMeasurementProtocolSecrets(ListMeasurementProtocolSecretsRequest)
248      returns (ListMeasurementProtocolSecretsResponse) {
249    option (google.api.http) = {
250      get: "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets"
251    };
252    option (google.api.method_signature) = "parent";
253  }
254
255  // Creates a measurement protocol secret.
256  rpc CreateMeasurementProtocolSecret(CreateMeasurementProtocolSecretRequest)
257      returns (MeasurementProtocolSecret) {
258    option (google.api.http) = {
259      post: "/v1beta/{parent=properties/*/dataStreams/*}/measurementProtocolSecrets"
260      body: "measurement_protocol_secret"
261    };
262    option (google.api.method_signature) = "parent,measurement_protocol_secret";
263  }
264
265  // Deletes target MeasurementProtocolSecret.
266  rpc DeleteMeasurementProtocolSecret(DeleteMeasurementProtocolSecretRequest)
267      returns (google.protobuf.Empty) {
268    option (google.api.http) = {
269      delete: "/v1beta/{name=properties/*/dataStreams/*/measurementProtocolSecrets/*}"
270    };
271    option (google.api.method_signature) = "name";
272  }
273
274  // Updates a measurement protocol secret.
275  rpc UpdateMeasurementProtocolSecret(UpdateMeasurementProtocolSecretRequest)
276      returns (MeasurementProtocolSecret) {
277    option (google.api.http) = {
278      patch: "/v1beta/{measurement_protocol_secret.name=properties/*/dataStreams/*/measurementProtocolSecrets/*}"
279      body: "measurement_protocol_secret"
280    };
281    option (google.api.method_signature) =
282        "measurement_protocol_secret,update_mask";
283  }
284
285  // Acknowledges the terms of user data collection for the specified property.
286  //
287  // This acknowledgement must be completed (either in the Google Analytics UI
288  // or through this API) before MeasurementProtocolSecret resources may be
289  // created.
290  rpc AcknowledgeUserDataCollection(AcknowledgeUserDataCollectionRequest)
291      returns (AcknowledgeUserDataCollectionResponse) {
292    option (google.api.http) = {
293      post: "/v1beta/{property=properties/*}:acknowledgeUserDataCollection"
294      body: "*"
295    };
296  }
297
298  // Searches through all changes to an account or its children given the
299  // specified set of filters.
300  rpc SearchChangeHistoryEvents(SearchChangeHistoryEventsRequest)
301      returns (SearchChangeHistoryEventsResponse) {
302    option (google.api.http) = {
303      post: "/v1beta/{account=accounts/*}:searchChangeHistoryEvents"
304      body: "*"
305    };
306  }
307
308  // Creates a conversion event with the specified attributes.
309  rpc CreateConversionEvent(CreateConversionEventRequest)
310      returns (ConversionEvent) {
311    option (google.api.http) = {
312      post: "/v1beta/{parent=properties/*}/conversionEvents"
313      body: "conversion_event"
314    };
315    option (google.api.method_signature) = "parent,conversion_event";
316  }
317
318  // Updates a conversion event with the specified attributes.
319  rpc UpdateConversionEvent(UpdateConversionEventRequest)
320      returns (ConversionEvent) {
321    option (google.api.http) = {
322      patch: "/v1beta/{conversion_event.name=properties/*/conversionEvents/*}"
323      body: "conversion_event"
324    };
325    option (google.api.method_signature) = "conversion_event,update_mask";
326  }
327
328  // Retrieve a single conversion event.
329  rpc GetConversionEvent(GetConversionEventRequest) returns (ConversionEvent) {
330    option (google.api.http) = {
331      get: "/v1beta/{name=properties/*/conversionEvents/*}"
332    };
333    option (google.api.method_signature) = "name";
334  }
335
336  // Deletes a conversion event in a property.
337  rpc DeleteConversionEvent(DeleteConversionEventRequest)
338      returns (google.protobuf.Empty) {
339    option (google.api.http) = {
340      delete: "/v1beta/{name=properties/*/conversionEvents/*}"
341    };
342    option (google.api.method_signature) = "name";
343  }
344
345  // Returns a list of conversion events in the specified parent property.
346  //
347  // Returns an empty list if no conversion events are found.
348  rpc ListConversionEvents(ListConversionEventsRequest)
349      returns (ListConversionEventsResponse) {
350    option (google.api.http) = {
351      get: "/v1beta/{parent=properties/*}/conversionEvents"
352    };
353    option (google.api.method_signature) = "parent";
354  }
355
356  // Creates a CustomDimension.
357  rpc CreateCustomDimension(CreateCustomDimensionRequest)
358      returns (CustomDimension) {
359    option (google.api.http) = {
360      post: "/v1beta/{parent=properties/*}/customDimensions"
361      body: "custom_dimension"
362    };
363    option (google.api.method_signature) = "parent,custom_dimension";
364  }
365
366  // Updates a CustomDimension on a property.
367  rpc UpdateCustomDimension(UpdateCustomDimensionRequest)
368      returns (CustomDimension) {
369    option (google.api.http) = {
370      patch: "/v1beta/{custom_dimension.name=properties/*/customDimensions/*}"
371      body: "custom_dimension"
372    };
373    option (google.api.method_signature) = "custom_dimension,update_mask";
374  }
375
376  // Lists CustomDimensions on a property.
377  rpc ListCustomDimensions(ListCustomDimensionsRequest)
378      returns (ListCustomDimensionsResponse) {
379    option (google.api.http) = {
380      get: "/v1beta/{parent=properties/*}/customDimensions"
381    };
382    option (google.api.method_signature) = "parent";
383  }
384
385  // Archives a CustomDimension on a property.
386  rpc ArchiveCustomDimension(ArchiveCustomDimensionRequest)
387      returns (google.protobuf.Empty) {
388    option (google.api.http) = {
389      post: "/v1beta/{name=properties/*/customDimensions/*}:archive"
390      body: "*"
391    };
392    option (google.api.method_signature) = "name";
393  }
394
395  // Lookup for a single CustomDimension.
396  rpc GetCustomDimension(GetCustomDimensionRequest) returns (CustomDimension) {
397    option (google.api.http) = {
398      get: "/v1beta/{name=properties/*/customDimensions/*}"
399    };
400    option (google.api.method_signature) = "name";
401  }
402
403  // Creates a CustomMetric.
404  rpc CreateCustomMetric(CreateCustomMetricRequest) returns (CustomMetric) {
405    option (google.api.http) = {
406      post: "/v1beta/{parent=properties/*}/customMetrics"
407      body: "custom_metric"
408    };
409    option (google.api.method_signature) = "parent,custom_metric";
410  }
411
412  // Updates a CustomMetric on a property.
413  rpc UpdateCustomMetric(UpdateCustomMetricRequest) returns (CustomMetric) {
414    option (google.api.http) = {
415      patch: "/v1beta/{custom_metric.name=properties/*/customMetrics/*}"
416      body: "custom_metric"
417    };
418    option (google.api.method_signature) = "custom_metric,update_mask";
419  }
420
421  // Lists CustomMetrics on a property.
422  rpc ListCustomMetrics(ListCustomMetricsRequest)
423      returns (ListCustomMetricsResponse) {
424    option (google.api.http) = {
425      get: "/v1beta/{parent=properties/*}/customMetrics"
426    };
427    option (google.api.method_signature) = "parent";
428  }
429
430  // Archives a CustomMetric on a property.
431  rpc ArchiveCustomMetric(ArchiveCustomMetricRequest)
432      returns (google.protobuf.Empty) {
433    option (google.api.http) = {
434      post: "/v1beta/{name=properties/*/customMetrics/*}:archive"
435      body: "*"
436    };
437    option (google.api.method_signature) = "name";
438  }
439
440  // Lookup for a single CustomMetric.
441  rpc GetCustomMetric(GetCustomMetricRequest) returns (CustomMetric) {
442    option (google.api.http) = {
443      get: "/v1beta/{name=properties/*/customMetrics/*}"
444    };
445    option (google.api.method_signature) = "name";
446  }
447
448  // Returns the singleton data retention settings for this property.
449  rpc GetDataRetentionSettings(GetDataRetentionSettingsRequest)
450      returns (DataRetentionSettings) {
451    option (google.api.http) = {
452      get: "/v1beta/{name=properties/*/dataRetentionSettings}"
453    };
454    option (google.api.method_signature) = "name";
455  }
456
457  // Updates the singleton data retention settings for this property.
458  rpc UpdateDataRetentionSettings(UpdateDataRetentionSettingsRequest)
459      returns (DataRetentionSettings) {
460    option (google.api.http) = {
461      patch: "/v1beta/{data_retention_settings.name=properties/*/dataRetentionSettings}"
462      body: "data_retention_settings"
463    };
464    option (google.api.method_signature) =
465        "data_retention_settings,update_mask";
466  }
467
468  // Creates a DataStream.
469  rpc CreateDataStream(CreateDataStreamRequest) returns (DataStream) {
470    option (google.api.http) = {
471      post: "/v1beta/{parent=properties/*}/dataStreams"
472      body: "data_stream"
473    };
474    option (google.api.method_signature) = "parent,data_stream";
475  }
476
477  // Deletes a DataStream on a property.
478  rpc DeleteDataStream(DeleteDataStreamRequest)
479      returns (google.protobuf.Empty) {
480    option (google.api.http) = {
481      delete: "/v1beta/{name=properties/*/dataStreams/*}"
482    };
483    option (google.api.method_signature) = "name";
484  }
485
486  // Updates a DataStream on a property.
487  rpc UpdateDataStream(UpdateDataStreamRequest) returns (DataStream) {
488    option (google.api.http) = {
489      patch: "/v1beta/{data_stream.name=properties/*/dataStreams/*}"
490      body: "data_stream"
491    };
492    option (google.api.method_signature) = "data_stream,update_mask";
493  }
494
495  // Lists DataStreams on a property.
496  rpc ListDataStreams(ListDataStreamsRequest)
497      returns (ListDataStreamsResponse) {
498    option (google.api.http) = {
499      get: "/v1beta/{parent=properties/*}/dataStreams"
500    };
501    option (google.api.method_signature) = "parent";
502  }
503
504  // Lookup for a single DataStream.
505  rpc GetDataStream(GetDataStreamRequest) returns (DataStream) {
506    option (google.api.http) = {
507      get: "/v1beta/{name=properties/*/dataStreams/*}"
508    };
509    option (google.api.method_signature) = "name";
510  }
511
512  // Returns a customized report of data access records. The report provides
513  // records of each time a user reads Google Analytics reporting data. Access
514  // records are retained for up to 2 years.
515  //
516  // Data Access Reports can be requested for a property. The property must be
517  // in Google Analytics 360. This method is only available to Administrators.
518  //
519  // These data access records include GA4 UI Reporting, GA4 UI Explorations,
520  // GA4 Data API, and other products like Firebase & Admob that can retrieve
521  // data from Google Analytics through a linkage. These records don't include
522  // property configuration changes like adding a stream or changing a
523  // property's time zone. For configuration change history, see
524  // [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).
525  rpc RunAccessReport(RunAccessReportRequest)
526      returns (RunAccessReportResponse) {
527    option (google.api.http) = {
528      post: "/v1beta/{entity=properties/*}:runAccessReport"
529      body: "*"
530      additional_bindings {
531        post: "/v1beta/{entity=accounts/*}:runAccessReport"
532        body: "*"
533      }
534    };
535  }
536}
537
538// The request for a Data Access Record Report.
539message RunAccessReportRequest {
540  // The Data Access Report supports requesting at the property level or account
541  // level. If requested at the account level, Data Access Reports include all
542  // access for all properties under that account.
543  //
544  // To request at the property level, entity should be for example
545  // 'properties/123' if "123" is your GA4 property ID. To request at the
546  // account level, entity should be for example 'accounts/1234' if "1234" is
547  // your GA4 Account ID.
548  string entity = 1;
549
550  // The dimensions requested and displayed in the response. Requests are
551  // allowed up to 9 dimensions.
552  repeated AccessDimension dimensions = 2;
553
554  // The metrics requested and displayed in the response. Requests are allowed
555  // up to 10 metrics.
556  repeated AccessMetric metrics = 3;
557
558  // Date ranges of access records to read. If multiple date ranges are
559  // requested, each response row will contain a zero based date range index. If
560  // two date ranges overlap, the access records for the overlapping days is
561  // included in the response rows for both date ranges. Requests are allowed up
562  // to 2 date ranges.
563  repeated AccessDateRange date_ranges = 4;
564
565  // Dimension filters let you restrict report response to specific
566  // dimension values which match the filter. For example, filtering on access
567  // records of a single user. To learn more, see [Fundamentals of Dimension
568  // Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters)
569  // for examples. Metrics cannot be used in this filter.
570  AccessFilterExpression dimension_filter = 5;
571
572  // Metric filters allow you to restrict report response to specific metric
573  // values which match the filter. Metric filters are applied after aggregating
574  // the report's rows, similar to SQL having-clause. Dimensions cannot be used
575  // in this filter.
576  AccessFilterExpression metric_filter = 6;
577
578  // The row count of the start row. The first row is counted as row 0. If
579  // offset is unspecified, it is treated as 0. If offset is zero, then this
580  // method will return the first page of results with `limit` entries.
581  //
582  // To learn more about this pagination parameter, see
583  // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
584  int64 offset = 7;
585
586  // The number of rows to return. If unspecified, 10,000 rows are returned. The
587  // API returns a maximum of 100,000 rows per request, no matter how many you
588  // ask for. `limit` must be positive.
589  //
590  // The API may return fewer rows than the requested `limit`, if there aren't
591  // as many remaining rows as the `limit`. For instance, there are fewer than
592  // 300 possible values for the dimension `country`, so when reporting on only
593  // `country`, you can't get more than 300 rows, even if you set `limit` to a
594  // higher value.
595  //
596  // To learn more about this pagination parameter, see
597  // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
598  int64 limit = 8;
599
600  // This request's time zone if specified. If unspecified, the property's time
601  // zone is used. The request's time zone is used to interpret the start & end
602  // dates of the report.
603  //
604  // Formatted as strings from the IANA Time Zone database
605  // (https://www.iana.org/time-zones); for example "America/New_York" or
606  // "Asia/Tokyo".
607  string time_zone = 9;
608
609  // Specifies how rows are ordered in the response.
610  repeated AccessOrderBy order_bys = 10;
611
612  // Toggles whether to return the current state of this Analytics Property's
613  // quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level
614  // requests, this field must be false.
615  bool return_entity_quota = 11;
616}
617
618// The customized Data Access Record Report response.
619message RunAccessReportResponse {
620  // The header for a column in the report that corresponds to a specific
621  // dimension. The number of DimensionHeaders and ordering of DimensionHeaders
622  // matches the dimensions present in rows.
623  repeated AccessDimensionHeader dimension_headers = 1;
624
625  // The header for a column in the report that corresponds to a specific
626  // metric. The number of MetricHeaders and ordering of MetricHeaders matches
627  // the metrics present in rows.
628  repeated AccessMetricHeader metric_headers = 2;
629
630  // Rows of dimension value combinations and metric values in the report.
631  repeated AccessRow rows = 3;
632
633  // The total number of rows in the query result. `rowCount` is independent of
634  // the number of rows returned in the response, the `limit` request
635  // parameter, and the `offset` request parameter. For example if a query
636  // returns 175 rows and includes `limit` of 50 in the API request, the
637  // response will contain `rowCount` of 175 but only 50 rows.
638  //
639  // To learn more about this pagination parameter, see
640  // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
641  int32 row_count = 4;
642
643  // The quota state for this Analytics property including this request. This
644  // field doesn't work with account-level requests.
645  AccessQuota quota = 5;
646}
647
648// Request message for GetAccount RPC.
649message GetAccountRequest {
650  // Required. The name of the account to lookup.
651  // Format: accounts/{account}
652  // Example: "accounts/100"
653  string name = 1 [
654    (google.api.field_behavior) = REQUIRED,
655    (google.api.resource_reference) = {
656      type: "analyticsadmin.googleapis.com/Account"
657    }
658  ];
659}
660
661// Request message for ListAccounts RPC.
662message ListAccountsRequest {
663  // The maximum number of resources to return. The service may return
664  // fewer than this value, even if there are additional pages.
665  // If unspecified, at most 50 resources will be returned.
666  // The maximum value is 200; (higher values will be coerced to the maximum)
667  int32 page_size = 1;
668
669  // A page token, received from a previous `ListAccounts` call.
670  // Provide this to retrieve the subsequent page.
671  // When paginating, all other parameters provided to `ListAccounts` must
672  // match the call that provided the page token.
673  string page_token = 2;
674
675  // Whether to include soft-deleted (ie: "trashed") Accounts in the
676  // results. Accounts can be inspected to determine whether they are deleted or
677  // not.
678  bool show_deleted = 3;
679}
680
681// Request message for ListAccounts RPC.
682message ListAccountsResponse {
683  // Results that were accessible to the caller.
684  repeated Account accounts = 1;
685
686  // A token, which can be sent as `page_token` to retrieve the next page.
687  // If this field is omitted, there are no subsequent pages.
688  string next_page_token = 2;
689}
690
691// Request message for DeleteAccount RPC.
692message DeleteAccountRequest {
693  // Required. The name of the Account to soft-delete.
694  // Format: accounts/{account}
695  // Example: "accounts/100"
696  string name = 1 [
697    (google.api.field_behavior) = REQUIRED,
698    (google.api.resource_reference) = {
699      type: "analyticsadmin.googleapis.com/Account"
700    }
701  ];
702}
703
704// Request message for UpdateAccount RPC.
705message UpdateAccountRequest {
706  // Required. The account to update.
707  // The account's `name` field is used to identify the account.
708  Account account = 1 [(google.api.field_behavior) = REQUIRED];
709
710  // Required. The list of fields to be updated. Field names must be in snake
711  // case (for example, "field_to_update"). Omitted fields will not be updated.
712  // To replace the entire entity, use one path with the string "*" to match all
713  // fields.
714  google.protobuf.FieldMask update_mask = 2
715      [(google.api.field_behavior) = REQUIRED];
716}
717
718// Request message for ProvisionAccountTicket RPC.
719message ProvisionAccountTicketRequest {
720  // The account to create.
721  Account account = 1;
722
723  // Redirect URI where the user will be sent after accepting Terms of Service.
724  // Must be configured in Cloud Console as a Redirect URI.
725  string redirect_uri = 2;
726}
727
728// Response message for ProvisionAccountTicket RPC.
729message ProvisionAccountTicketResponse {
730  // The param to be passed in the ToS link.
731  string account_ticket_id = 1;
732}
733
734// Request message for GetProperty RPC.
735message GetPropertyRequest {
736  // Required. The name of the property to lookup.
737  // Format: properties/{property_id}
738  // Example: "properties/1000"
739  string name = 1 [
740    (google.api.field_behavior) = REQUIRED,
741    (google.api.resource_reference) = {
742      type: "analyticsadmin.googleapis.com/Property"
743    }
744  ];
745}
746
747// Request message for ListProperties RPC.
748message ListPropertiesRequest {
749  // Required. An expression for filtering the results of the request.
750  // Fields eligible for filtering are:
751  // `parent:`(The resource name of the parent account/property) or
752  // `ancestor:`(The resource name of the parent account) or
753  // `firebase_project:`(The id or number of the linked firebase project).
754  // Some examples of filters:
755  //
756  // ```
757  // | Filter                      | Description                               |
758  // |-----------------------------|-------------------------------------------|
759  // | parent:accounts/123         | The account with account id: 123.       |
760  // | parent:properties/123       | The property with property id: 123.       |
761  // | ancestor:accounts/123       | The account with account id: 123.         |
762  // | firebase_project:project-id | The firebase project with id: project-id. |
763  // | firebase_project:123        | The firebase project with number: 123.    |
764  // ```
765  string filter = 1 [(google.api.field_behavior) = REQUIRED];
766
767  // The maximum number of resources to return. The service may return
768  // fewer than this value, even if there are additional pages.
769  // If unspecified, at most 50 resources will be returned.
770  // The maximum value is 200; (higher values will be coerced to the maximum)
771  int32 page_size = 2;
772
773  // A page token, received from a previous `ListProperties` call.
774  // Provide this to retrieve the subsequent page.
775  // When paginating, all other parameters provided to `ListProperties` must
776  // match the call that provided the page token.
777  string page_token = 3;
778
779  // Whether to include soft-deleted (ie: "trashed") Properties in the
780  // results. Properties can be inspected to determine whether they are deleted
781  // or not.
782  bool show_deleted = 4;
783}
784
785// Response message for ListProperties RPC.
786message ListPropertiesResponse {
787  // Results that matched the filter criteria and were accessible to the caller.
788  repeated Property properties = 1;
789
790  // A token, which can be sent as `page_token` to retrieve the next page.
791  // If this field is omitted, there are no subsequent pages.
792  string next_page_token = 2;
793}
794
795// Request message for UpdateProperty RPC.
796message UpdatePropertyRequest {
797  // Required. The property to update.
798  // The property's `name` field is used to identify the property to be
799  // updated.
800  Property property = 1 [(google.api.field_behavior) = REQUIRED];
801
802  // Required. The list of fields to be updated. Field names must be in snake
803  // case (e.g., "field_to_update"). Omitted fields will not be updated. To
804  // replace the entire entity, use one path with the string "*" to match all
805  // fields.
806  google.protobuf.FieldMask update_mask = 2
807      [(google.api.field_behavior) = REQUIRED];
808}
809
810// Request message for CreateProperty RPC.
811message CreatePropertyRequest {
812  // Required. The property to create.
813  // Note: the supplied property must specify its parent.
814  Property property = 1 [(google.api.field_behavior) = REQUIRED];
815}
816
817// Request message for DeleteProperty RPC.
818message DeletePropertyRequest {
819  // Required. The name of the Property to soft-delete.
820  // Format: properties/{property_id}
821  // Example: "properties/1000"
822  string name = 1 [
823    (google.api.field_behavior) = REQUIRED,
824    (google.api.resource_reference) = {
825      type: "analyticsadmin.googleapis.com/Property"
826    }
827  ];
828}
829
830// Request message for CreateFirebaseLink RPC
831message CreateFirebaseLinkRequest {
832  // Required. Format: properties/{property_id}
833  // Example: properties/1234
834  string parent = 1 [
835    (google.api.field_behavior) = REQUIRED,
836    (google.api.resource_reference) = {
837      child_type: "analyticsadmin.googleapis.com/FirebaseLink"
838    }
839  ];
840
841  // Required. The Firebase link to create.
842  FirebaseLink firebase_link = 2 [(google.api.field_behavior) = REQUIRED];
843}
844
845// Request message for DeleteFirebaseLink RPC
846message DeleteFirebaseLinkRequest {
847  // Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id}
848  // Example: properties/1234/firebaseLinks/5678
849  string name = 1 [
850    (google.api.field_behavior) = REQUIRED,
851    (google.api.resource_reference) = {
852      type: "analyticsadmin.googleapis.com/FirebaseLink"
853    }
854  ];
855}
856
857// Request message for ListFirebaseLinks RPC
858message ListFirebaseLinksRequest {
859  // Required. Format: properties/{property_id}
860  // Example: properties/1234
861  string parent = 1 [
862    (google.api.field_behavior) = REQUIRED,
863    (google.api.resource_reference) = {
864      child_type: "analyticsadmin.googleapis.com/FirebaseLink"
865    }
866  ];
867
868  // The maximum number of resources to return. The service may return
869  // fewer than this value, even if there are additional pages.
870  // If unspecified, at most 50 resources will be returned.
871  // The maximum value is 200; (higher values will be coerced to the maximum)
872  int32 page_size = 2;
873
874  // A page token, received from a previous `ListFirebaseLinks` call.
875  // Provide this to retrieve the subsequent page.
876  // When paginating, all other parameters provided to `ListFirebaseLinks` must
877  // match the call that provided the page token.
878  string page_token = 3;
879}
880
881// Response message for ListFirebaseLinks RPC
882message ListFirebaseLinksResponse {
883  // List of FirebaseLinks. This will have at most one value.
884  repeated FirebaseLink firebase_links = 1;
885
886  // A token, which can be sent as `page_token` to retrieve the next page.
887  // If this field is omitted, there are no subsequent pages.
888  // Currently, Google Analytics supports only one FirebaseLink per property,
889  // so this will never be populated.
890  string next_page_token = 2;
891}
892
893// Request message for CreateGoogleAdsLink RPC
894message CreateGoogleAdsLinkRequest {
895  // Required. Example format: properties/1234
896  string parent = 1 [
897    (google.api.field_behavior) = REQUIRED,
898    (google.api.resource_reference) = {
899      child_type: "analyticsadmin.googleapis.com/GoogleAdsLink"
900    }
901  ];
902
903  // Required. The GoogleAdsLink to create.
904  GoogleAdsLink google_ads_link = 2 [(google.api.field_behavior) = REQUIRED];
905}
906
907// Request message for UpdateGoogleAdsLink RPC
908message UpdateGoogleAdsLinkRequest {
909  // The GoogleAdsLink to update
910  GoogleAdsLink google_ads_link = 1;
911
912  // Required. The list of fields to be updated. Field names must be in snake
913  // case (e.g., "field_to_update"). Omitted fields will not be updated. To
914  // replace the entire entity, use one path with the string "*" to match all
915  // fields.
916  google.protobuf.FieldMask update_mask = 2
917      [(google.api.field_behavior) = REQUIRED];
918}
919
920// Request message for DeleteGoogleAdsLink RPC.
921message DeleteGoogleAdsLinkRequest {
922  // Required. Example format: properties/1234/googleAdsLinks/5678
923  string name = 1 [
924    (google.api.field_behavior) = REQUIRED,
925    (google.api.resource_reference) = {
926      type: "analyticsadmin.googleapis.com/GoogleAdsLink"
927    }
928  ];
929}
930
931// Request message for ListGoogleAdsLinks RPC.
932message ListGoogleAdsLinksRequest {
933  // Required. Example format: properties/1234
934  string parent = 1 [
935    (google.api.field_behavior) = REQUIRED,
936    (google.api.resource_reference) = {
937      child_type: "analyticsadmin.googleapis.com/GoogleAdsLink"
938    }
939  ];
940
941  // The maximum number of resources to return.
942  // If unspecified, at most 50 resources will be returned.
943  // The maximum value is 200 (higher values will be coerced to the maximum).
944  int32 page_size = 2;
945
946  // A page token, received from a previous `ListGoogleAdsLinks` call.
947  // Provide this to retrieve the subsequent page.
948  //
949  // When paginating, all other parameters provided to `ListGoogleAdsLinks` must
950  // match the call that provided the page token.
951  string page_token = 3;
952}
953
954// Response message for ListGoogleAdsLinks RPC.
955message ListGoogleAdsLinksResponse {
956  // List of GoogleAdsLinks.
957  repeated GoogleAdsLink google_ads_links = 1;
958
959  // A token, which can be sent as `page_token` to retrieve the next page.
960  // If this field is omitted, there are no subsequent pages.
961  string next_page_token = 2;
962}
963
964// Request message for GetDataSharingSettings RPC.
965message GetDataSharingSettingsRequest {
966  // Required. The name of the settings to lookup.
967  // Format: accounts/{account}/dataSharingSettings
968  // Example: "accounts/1000/dataSharingSettings"
969  string name = 1 [
970    (google.api.field_behavior) = REQUIRED,
971    (google.api.resource_reference) = {
972      type: "analyticsadmin.googleapis.com/DataSharingSettings"
973    }
974  ];
975}
976
977// Request message for ListAccountSummaries RPC.
978message ListAccountSummariesRequest {
979  // The maximum number of AccountSummary resources to return. The service may
980  // return fewer than this value, even if there are additional pages.
981  // If unspecified, at most 50 resources will be returned.
982  // The maximum value is 200; (higher values will be coerced to the maximum)
983  int32 page_size = 1;
984
985  // A page token, received from a previous `ListAccountSummaries` call.
986  // Provide this to retrieve the subsequent page.
987  // When paginating, all other parameters provided to `ListAccountSummaries`
988  // must match the call that provided the page token.
989  string page_token = 2;
990}
991
992// Response message for ListAccountSummaries RPC.
993message ListAccountSummariesResponse {
994  // Account summaries of all accounts the caller has access to.
995  repeated AccountSummary account_summaries = 1;
996
997  // A token, which can be sent as `page_token` to retrieve the next page.
998  // If this field is omitted, there are no subsequent pages.
999  string next_page_token = 2;
1000}
1001
1002// Request message for AcknowledgeUserDataCollection RPC.
1003message AcknowledgeUserDataCollectionRequest {
1004  // Required. The property for which to acknowledge user data collection.
1005  string property = 1 [
1006    (google.api.field_behavior) = REQUIRED,
1007    (google.api.resource_reference) = {
1008      type: "analyticsadmin.googleapis.com/Property"
1009    }
1010  ];
1011
1012  // Required. An acknowledgement that the caller of this method understands the
1013  // terms of user data collection.
1014  //
1015  // This field must contain the exact value:
1016  // "I acknowledge that I have the necessary privacy disclosures and rights
1017  // from my end users for the collection and processing of their data,
1018  // including the association of such data with the visitation information
1019  // Google Analytics collects from my site and/or app property."
1020  string acknowledgement = 2 [(google.api.field_behavior) = REQUIRED];
1021}
1022
1023// Response message for AcknowledgeUserDataCollection RPC.
1024message AcknowledgeUserDataCollectionResponse {}
1025
1026// Request message for SearchChangeHistoryEvents RPC.
1027message SearchChangeHistoryEventsRequest {
1028  // Required. The account resource for which to return change history
1029  // resources.
1030  string account = 1 [
1031    (google.api.field_behavior) = REQUIRED,
1032    (google.api.resource_reference) = {
1033      type: "analyticsadmin.googleapis.com/Account"
1034    }
1035  ];
1036
1037  // Optional. Resource name for a child property. If set, only return changes
1038  // made to this property or its child resources.
1039  string property = 2 [
1040    (google.api.field_behavior) = OPTIONAL,
1041    (google.api.resource_reference) = {
1042      type: "analyticsadmin.googleapis.com/Property"
1043    }
1044  ];
1045
1046  // Optional. If set, only return changes if they are for a resource that
1047  // matches at least one of these types.
1048  repeated ChangeHistoryResourceType resource_type = 3
1049      [(google.api.field_behavior) = OPTIONAL];
1050
1051  // Optional. If set, only return changes that match one or more of these types
1052  // of actions.
1053  repeated ActionType action = 4 [(google.api.field_behavior) = OPTIONAL];
1054
1055  // Optional. If set, only return changes if they are made by a user in this
1056  // list.
1057  repeated string actor_email = 5 [(google.api.field_behavior) = OPTIONAL];
1058
1059  // Optional. If set, only return changes made after this time (inclusive).
1060  google.protobuf.Timestamp earliest_change_time = 6
1061      [(google.api.field_behavior) = OPTIONAL];
1062
1063  // Optional. If set, only return changes made before this time (inclusive).
1064  google.protobuf.Timestamp latest_change_time = 7
1065      [(google.api.field_behavior) = OPTIONAL];
1066
1067  // Optional. The maximum number of ChangeHistoryEvent items to return.
1068  // The service may return fewer than this value, even if there are additional
1069  // pages. If unspecified, at most 50 items will be returned.
1070  // The maximum value is 200 (higher values will be coerced to the maximum).
1071  int32 page_size = 8 [(google.api.field_behavior) = OPTIONAL];
1072
1073  // Optional. A page token, received from a previous
1074  // `SearchChangeHistoryEvents` call. Provide this to retrieve the subsequent
1075  // page. When paginating, all other parameters provided to
1076  // `SearchChangeHistoryEvents` must match the call that provided the page
1077  // token.
1078  string page_token = 9 [(google.api.field_behavior) = OPTIONAL];
1079}
1080
1081// Response message for SearchAccounts RPC.
1082message SearchChangeHistoryEventsResponse {
1083  // Results that were accessible to the caller.
1084  repeated ChangeHistoryEvent change_history_events = 1;
1085
1086  // A token, which can be sent as `page_token` to retrieve the next page.
1087  // If this field is omitted, there are no subsequent pages.
1088  string next_page_token = 2;
1089}
1090
1091// Request message for GetMeasurementProtocolSecret RPC.
1092message GetMeasurementProtocolSecretRequest {
1093  // Required. The name of the measurement protocol secret to lookup.
1094  // Format:
1095  // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}
1096  string name = 1 [
1097    (google.api.field_behavior) = REQUIRED,
1098    (google.api.resource_reference) = {
1099      type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret"
1100    }
1101  ];
1102}
1103
1104// Request message for CreateMeasurementProtocolSecret RPC
1105message CreateMeasurementProtocolSecretRequest {
1106  // Required. The parent resource where this secret will be created.
1107  // Format: properties/{property}/dataStreams/{dataStream}
1108  string parent = 1 [
1109    (google.api.field_behavior) = REQUIRED,
1110    (google.api.resource_reference) = {
1111      child_type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret"
1112    }
1113  ];
1114
1115  // Required. The measurement protocol secret to create.
1116  MeasurementProtocolSecret measurement_protocol_secret = 2
1117      [(google.api.field_behavior) = REQUIRED];
1118}
1119
1120// Request message for DeleteMeasurementProtocolSecret RPC
1121message DeleteMeasurementProtocolSecretRequest {
1122  // Required. The name of the MeasurementProtocolSecret to delete.
1123  // Format:
1124  // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}
1125  string name = 1 [
1126    (google.api.field_behavior) = REQUIRED,
1127    (google.api.resource_reference) = {
1128      type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret"
1129    }
1130  ];
1131}
1132
1133// Request message for UpdateMeasurementProtocolSecret RPC
1134message UpdateMeasurementProtocolSecretRequest {
1135  // Required. The measurement protocol secret to update.
1136  MeasurementProtocolSecret measurement_protocol_secret = 1
1137      [(google.api.field_behavior) = REQUIRED];
1138
1139  // Required. The list of fields to be updated. Omitted fields will not be
1140  // updated.
1141  google.protobuf.FieldMask update_mask = 2
1142      [(google.api.field_behavior) = REQUIRED];
1143}
1144
1145// Request message for ListMeasurementProtocolSecret RPC
1146message ListMeasurementProtocolSecretsRequest {
1147  // Required. The resource name of the parent stream.
1148  // Format:
1149  // properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets
1150  string parent = 1 [
1151    (google.api.field_behavior) = REQUIRED,
1152    (google.api.resource_reference) = {
1153      child_type: "analyticsadmin.googleapis.com/MeasurementProtocolSecret"
1154    }
1155  ];
1156
1157  // The maximum number of resources to return.
1158  // If unspecified, at most 10 resources will be returned.
1159  // The maximum value is 10. Higher values will be coerced to the maximum.
1160  int32 page_size = 2;
1161
1162  // A page token, received from a previous `ListMeasurementProtocolSecrets`
1163  // call. Provide this to retrieve the subsequent page. When paginating, all
1164  // other parameters provided to `ListMeasurementProtocolSecrets` must match
1165  // the call that provided the page token.
1166  string page_token = 3;
1167}
1168
1169// Response message for ListMeasurementProtocolSecret RPC
1170message ListMeasurementProtocolSecretsResponse {
1171  // A list of secrets for the parent stream specified in the request.
1172  repeated MeasurementProtocolSecret measurement_protocol_secrets = 1;
1173
1174  // A token, which can be sent as `page_token` to retrieve the next page.
1175  // If this field is omitted, there are no subsequent pages.
1176  string next_page_token = 2;
1177}
1178
1179// Request message for CreateConversionEvent RPC
1180message CreateConversionEventRequest {
1181  // Required. The conversion event to create.
1182  ConversionEvent conversion_event = 1 [(google.api.field_behavior) = REQUIRED];
1183
1184  // Required. The resource name of the parent property where this conversion
1185  // event will be created. Format: properties/123
1186  string parent = 2 [
1187    (google.api.field_behavior) = REQUIRED,
1188    (google.api.resource_reference) = {
1189      child_type: "analyticsadmin.googleapis.com/ConversionEvent"
1190    }
1191  ];
1192}
1193
1194// Request message for UpdateConversionEvent RPC
1195message UpdateConversionEventRequest {
1196  // Required. The conversion event to update.
1197  // The `name` field is used to identify the settings to be updated.
1198  ConversionEvent conversion_event = 1 [(google.api.field_behavior) = REQUIRED];
1199
1200  // Required. The list of fields to be updated. Field names must be in snake
1201  // case (e.g., "field_to_update"). Omitted fields will not be updated. To
1202  // replace the entire entity, use one path with the string "*" to match all
1203  // fields.
1204  google.protobuf.FieldMask update_mask = 2
1205      [(google.api.field_behavior) = REQUIRED];
1206}
1207
1208// Request message for GetConversionEvent RPC
1209message GetConversionEventRequest {
1210  // Required. The resource name of the conversion event to retrieve.
1211  // Format: properties/{property}/conversionEvents/{conversion_event}
1212  // Example: "properties/123/conversionEvents/456"
1213  string name = 1 [
1214    (google.api.field_behavior) = REQUIRED,
1215    (google.api.resource_reference) = {
1216      type: "analyticsadmin.googleapis.com/ConversionEvent"
1217    }
1218  ];
1219}
1220
1221// Request message for DeleteConversionEvent RPC
1222message DeleteConversionEventRequest {
1223  // Required. The resource name of the conversion event to delete.
1224  // Format: properties/{property}/conversionEvents/{conversion_event}
1225  // Example: "properties/123/conversionEvents/456"
1226  string name = 1 [
1227    (google.api.field_behavior) = REQUIRED,
1228    (google.api.resource_reference) = {
1229      type: "analyticsadmin.googleapis.com/ConversionEvent"
1230    }
1231  ];
1232}
1233
1234// Request message for ListConversionEvents RPC
1235message ListConversionEventsRequest {
1236  // Required. The resource name of the parent property.
1237  // Example: 'properties/123'
1238  string parent = 1 [
1239    (google.api.field_behavior) = REQUIRED,
1240    (google.api.resource_reference) = {
1241      child_type: "analyticsadmin.googleapis.com/ConversionEvent"
1242    }
1243  ];
1244
1245  // The maximum number of resources to return.
1246  // If unspecified, at most 50 resources will be returned.
1247  // The maximum value is 200; (higher values will be coerced to the maximum)
1248  int32 page_size = 2;
1249
1250  // A page token, received from a previous `ListConversionEvents` call.
1251  // Provide this to retrieve the subsequent page.
1252  // When paginating, all other parameters provided to `ListConversionEvents`
1253  // must match the call that provided the page token.
1254  string page_token = 3;
1255}
1256
1257// Response message for ListConversionEvents RPC.
1258message ListConversionEventsResponse {
1259  // The requested conversion events
1260  repeated ConversionEvent conversion_events = 1;
1261
1262  // A token, which can be sent as `page_token` to retrieve the next page.
1263  // If this field is omitted, there are no subsequent pages.
1264  string next_page_token = 2;
1265}
1266
1267// Request message for CreateCustomDimension RPC.
1268message CreateCustomDimensionRequest {
1269  // Required. Example format: properties/1234
1270  string parent = 1 [
1271    (google.api.field_behavior) = REQUIRED,
1272    (google.api.resource_reference) = {
1273      child_type: "analyticsadmin.googleapis.com/CustomDimension"
1274    }
1275  ];
1276
1277  // Required. The CustomDimension to create.
1278  CustomDimension custom_dimension = 2 [(google.api.field_behavior) = REQUIRED];
1279}
1280
1281// Request message for UpdateCustomDimension RPC.
1282message UpdateCustomDimensionRequest {
1283  // The CustomDimension to update
1284  CustomDimension custom_dimension = 1;
1285
1286  // Required. The list of fields to be updated. Omitted fields will not be
1287  // updated. To replace the entire entity, use one path with the string "*" to
1288  // match all fields.
1289  google.protobuf.FieldMask update_mask = 2
1290      [(google.api.field_behavior) = REQUIRED];
1291}
1292
1293// Request message for ListCustomDimensions RPC.
1294message ListCustomDimensionsRequest {
1295  // Required. Example format: properties/1234
1296  string parent = 1 [
1297    (google.api.field_behavior) = REQUIRED,
1298    (google.api.resource_reference) = {
1299      child_type: "analyticsadmin.googleapis.com/CustomDimension"
1300    }
1301  ];
1302
1303  // The maximum number of resources to return.
1304  // If unspecified, at most 50 resources will be returned.
1305  // The maximum value is 200 (higher values will be coerced to the maximum).
1306  int32 page_size = 2;
1307
1308  // A page token, received from a previous `ListCustomDimensions` call.
1309  // Provide this to retrieve the subsequent page.
1310  //
1311  // When paginating, all other parameters provided to `ListCustomDimensions`
1312  // must match the call that provided the page token.
1313  string page_token = 3;
1314}
1315
1316// Response message for ListCustomDimensions RPC.
1317message ListCustomDimensionsResponse {
1318  // List of CustomDimensions.
1319  repeated CustomDimension custom_dimensions = 1;
1320
1321  // A token, which can be sent as `page_token` to retrieve the next page.
1322  // If this field is omitted, there are no subsequent pages.
1323  string next_page_token = 2;
1324}
1325
1326// Request message for ArchiveCustomDimension RPC.
1327message ArchiveCustomDimensionRequest {
1328  // Required. The name of the CustomDimension to archive.
1329  // Example format: properties/1234/customDimensions/5678
1330  string name = 1 [
1331    (google.api.field_behavior) = REQUIRED,
1332    (google.api.resource_reference) = {
1333      type: "analyticsadmin.googleapis.com/CustomDimension"
1334    }
1335  ];
1336}
1337
1338// Request message for GetCustomDimension RPC.
1339message GetCustomDimensionRequest {
1340  // Required. The name of the CustomDimension to get.
1341  // Example format: properties/1234/customDimensions/5678
1342  string name = 1 [
1343    (google.api.field_behavior) = REQUIRED,
1344    (google.api.resource_reference) = {
1345      type: "analyticsadmin.googleapis.com/CustomDimension"
1346    }
1347  ];
1348}
1349
1350// Request message for CreateCustomMetric RPC.
1351message CreateCustomMetricRequest {
1352  // Required. Example format: properties/1234
1353  string parent = 1 [
1354    (google.api.field_behavior) = REQUIRED,
1355    (google.api.resource_reference) = {
1356      child_type: "analyticsadmin.googleapis.com/CustomMetric"
1357    }
1358  ];
1359
1360  // Required. The CustomMetric to create.
1361  CustomMetric custom_metric = 2 [(google.api.field_behavior) = REQUIRED];
1362}
1363
1364// Request message for UpdateCustomMetric RPC.
1365message UpdateCustomMetricRequest {
1366  // The CustomMetric to update
1367  CustomMetric custom_metric = 1;
1368
1369  // Required. The list of fields to be updated. Omitted fields will not be
1370  // updated. To replace the entire entity, use one path with the string "*" to
1371  // match all fields.
1372  google.protobuf.FieldMask update_mask = 2
1373      [(google.api.field_behavior) = REQUIRED];
1374}
1375
1376// Request message for ListCustomMetrics RPC.
1377message ListCustomMetricsRequest {
1378  // Required. Example format: properties/1234
1379  string parent = 1 [
1380    (google.api.field_behavior) = REQUIRED,
1381    (google.api.resource_reference) = {
1382      child_type: "analyticsadmin.googleapis.com/CustomMetric"
1383    }
1384  ];
1385
1386  // The maximum number of resources to return.
1387  // If unspecified, at most 50 resources will be returned.
1388  // The maximum value is 200 (higher values will be coerced to the maximum).
1389  int32 page_size = 2;
1390
1391  // A page token, received from a previous `ListCustomMetrics` call.
1392  // Provide this to retrieve the subsequent page.
1393  //
1394  // When paginating, all other parameters provided to `ListCustomMetrics` must
1395  // match the call that provided the page token.
1396  string page_token = 3;
1397}
1398
1399// Response message for ListCustomMetrics RPC.
1400message ListCustomMetricsResponse {
1401  // List of CustomMetrics.
1402  repeated CustomMetric custom_metrics = 1;
1403
1404  // A token, which can be sent as `page_token` to retrieve the next page.
1405  // If this field is omitted, there are no subsequent pages.
1406  string next_page_token = 2;
1407}
1408
1409// Request message for ArchiveCustomMetric RPC.
1410message ArchiveCustomMetricRequest {
1411  // Required. The name of the CustomMetric to archive.
1412  // Example format: properties/1234/customMetrics/5678
1413  string name = 1 [
1414    (google.api.field_behavior) = REQUIRED,
1415    (google.api.resource_reference) = {
1416      type: "analyticsadmin.googleapis.com/CustomMetric"
1417    }
1418  ];
1419}
1420
1421// Request message for GetCustomMetric RPC.
1422message GetCustomMetricRequest {
1423  // Required. The name of the CustomMetric to get.
1424  // Example format: properties/1234/customMetrics/5678
1425  string name = 1 [
1426    (google.api.field_behavior) = REQUIRED,
1427    (google.api.resource_reference) = {
1428      type: "analyticsadmin.googleapis.com/CustomMetric"
1429    }
1430  ];
1431}
1432
1433// Request message for GetDataRetentionSettings RPC.
1434message GetDataRetentionSettingsRequest {
1435  // Required. The name of the settings to lookup.
1436  // Format:
1437  // properties/{property}/dataRetentionSettings
1438  // Example: "properties/1000/dataRetentionSettings"
1439  string name = 1 [
1440    (google.api.field_behavior) = REQUIRED,
1441    (google.api.resource_reference) = {
1442      type: "analyticsadmin.googleapis.com/DataRetentionSettings"
1443    }
1444  ];
1445}
1446
1447// Request message for UpdateDataRetentionSettings RPC.
1448message UpdateDataRetentionSettingsRequest {
1449  // Required. The settings to update.
1450  // The `name` field is used to identify the settings to be updated.
1451  DataRetentionSettings data_retention_settings = 1
1452      [(google.api.field_behavior) = REQUIRED];
1453
1454  // Required. The list of fields to be updated. Field names must be in snake
1455  // case (e.g., "field_to_update"). Omitted fields will not be updated. To
1456  // replace the entire entity, use one path with the string "*" to match all
1457  // fields.
1458  google.protobuf.FieldMask update_mask = 2
1459      [(google.api.field_behavior) = REQUIRED];
1460}
1461
1462// Request message for CreateDataStream RPC.
1463message CreateDataStreamRequest {
1464  // Required. Example format: properties/1234
1465  string parent = 1 [
1466    (google.api.field_behavior) = REQUIRED,
1467    (google.api.resource_reference) = {
1468      child_type: "analyticsadmin.googleapis.com/DataStream"
1469    }
1470  ];
1471
1472  // Required. The DataStream to create.
1473  DataStream data_stream = 2 [(google.api.field_behavior) = REQUIRED];
1474}
1475
1476// Request message for DeleteDataStream RPC.
1477message DeleteDataStreamRequest {
1478  // Required. The name of the DataStream to delete.
1479  // Example format: properties/1234/dataStreams/5678
1480  string name = 1 [
1481    (google.api.field_behavior) = REQUIRED,
1482    (google.api.resource_reference) = {
1483      type: "analyticsadmin.googleapis.com/DataStream"
1484    }
1485  ];
1486}
1487
1488// Request message for UpdateDataStream RPC.
1489message UpdateDataStreamRequest {
1490  // The DataStream to update
1491  DataStream data_stream = 1;
1492
1493  // Required. The list of fields to be updated. Omitted fields will not be
1494  // updated. To replace the entire entity, use one path with the string "*" to
1495  // match all fields.
1496  google.protobuf.FieldMask update_mask = 2
1497      [(google.api.field_behavior) = REQUIRED];
1498}
1499
1500// Request message for ListDataStreams RPC.
1501message ListDataStreamsRequest {
1502  // Required. Example format: properties/1234
1503  string parent = 1 [
1504    (google.api.field_behavior) = REQUIRED,
1505    (google.api.resource_reference) = {
1506      child_type: "analyticsadmin.googleapis.com/DataStream"
1507    }
1508  ];
1509
1510  // The maximum number of resources to return.
1511  // If unspecified, at most 50 resources will be returned.
1512  // The maximum value is 200 (higher values will be coerced to the maximum).
1513  int32 page_size = 2;
1514
1515  // A page token, received from a previous `ListDataStreams` call.
1516  // Provide this to retrieve the subsequent page.
1517  //
1518  // When paginating, all other parameters provided to `ListDataStreams` must
1519  // match the call that provided the page token.
1520  string page_token = 3;
1521}
1522
1523// Response message for ListDataStreams RPC.
1524message ListDataStreamsResponse {
1525  // List of DataStreams.
1526  repeated DataStream data_streams = 1;
1527
1528  // A token, which can be sent as `page_token` to retrieve the next page.
1529  // If this field is omitted, there are no subsequent pages.
1530  string next_page_token = 2;
1531}
1532
1533// Request message for GetDataStream RPC.
1534message GetDataStreamRequest {
1535  // Required. The name of the DataStream to get.
1536  // Example format: properties/1234/dataStreams/5678
1537  string name = 1 [
1538    (google.api.field_behavior) = REQUIRED,
1539    (google.api.resource_reference) = {
1540      type: "analyticsadmin.googleapis.com/DataStream"
1541    }
1542  ];
1543}
1544