diff --git a/google/analytics/admin/v1alpha/BUILD.bazel b/google/analytics/admin/v1alpha/BUILD.bazel new file mode 100644 index 00000000..807dd489 --- /dev/null +++ b/google/analytics/admin/v1alpha/BUILD.bazel @@ -0,0 +1,384 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( + name = "admin_proto", + srcs = [ + "analytics_admin.proto", + "resources.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +proto_library_with_info( + name = "admin_proto_with_info", + deps = [ + ":admin_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "admin_java_proto", + deps = [":admin_proto"], +) + +java_grpc_library( + name = "admin_java_grpc", + srcs = [":admin_proto"], + deps = [":admin_java_proto"], +) + +java_gapic_library( + name = "admin_java_gapic", + src = ":admin_proto_with_info", + gapic_yaml = "analyticsadmin_gapic.yaml", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + test_deps = [ + ":admin_java_grpc", + ], + deps = [ + ":admin_java_proto", + ], +) + +java_gapic_test( + name = "admin_java_gapic_test_suite", + test_classes = [ + "com.google.analytics.admin.v1alpha.AnalyticsAdminServiceClientTest", + ], + runtime_deps = [":admin_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-analytics-admin-v1alpha-java", + deps = [ + ":admin_java_gapic", + ":admin_java_grpc", + ":admin_java_proto", + ":admin_proto", + ], +) + +############################################################################## +# Go +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", + "go_test", +) + +go_proto_library( + name = "admin_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "google.golang.org/genproto/googleapis/analytics/admin/v1alpha", + protos = [":admin_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "admin_go_gapic", + srcs = [":admin_proto_with_info"], + grpc_service_config = "admin_grpc_service_config.json", + importpath = "google.golang.org/google/analytics/admin/v1alpha;admin", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [ + ":admin_go_proto", + ], +) + +go_test( + name = "admin_go_gapic_test", + srcs = [":admin_go_gapic_srcjar_test"], + embed = [":admin_go_gapic"], + importpath = "google.golang.org/google/analytics/admin/v1alpha", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-analytics-admin-v1alpha-go", + deps = [ + ":admin_go_gapic", + ":admin_go_gapic_srcjar-test.srcjar", + ":admin_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_grpc_library", + "py_proto_library", +) + +moved_proto_library( + name = "admin_moved_proto", + srcs = [":admin_proto"], + # Customization (ikuleshov): Without this parameter, the proto resources + # are generated with "google.cloud" package prefix and the generated + # clients do not compile. + import_prefix="google/analytics/admin/v1alpha/proto", + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + "@com_google_protobuf//:wrappers_proto", + ], +) + +py_proto_library( + name = "admin_py_proto", + plugin = "@protoc_docs_plugin//:docs_plugin", + deps = [":admin_moved_proto"], +) + +py_grpc_library( + name = "admin_py_grpc", + srcs = [":admin_moved_proto"], + deps = [":admin_py_proto"], +) + +py_gapic_library( + name = "admin_py_gapic", + src = ":admin_proto_with_info", + gapic_yaml = "analyticsadmin_gapic.yaml", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [ + ":admin_py_grpc", + ":admin_py_proto", + ], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-analytics-admin-v1alpha-py", + deps = [ + ":admin_py_gapic", + ":admin_py_grpc", + ":admin_py_proto", + ], +) + +############################################################################## +# PHP +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_grpc_library", + "php_proto_library", +) + +php_proto_library( + name = "admin_php_proto", + deps = [":admin_proto"], +) + +php_grpc_library( + name = "admin_php_grpc", + srcs = [":admin_proto"], + deps = [":admin_php_proto"], +) + +php_gapic_library( + name = "admin_php_gapic", + src = ":admin_proto_with_info", + gapic_yaml = "analyticsadmin_gapic.yaml", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [ + ":admin_php_grpc", + ":admin_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-analytics-admin-v1alpha-php", + deps = [ + ":admin_php_gapic", + ":admin_php_grpc", + ":admin_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "admin_nodejs_gapic", + package_name = "@google-analytics/admin", + src = ":admin_proto_with_info", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "google-analytics-admin-v1alpha-nodejs", + deps = [ + ":admin_nodejs_gapic", + ":admin_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_gapic_assembly_pkg", + "ruby_gapic_library", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "admin_ruby_proto", + deps = [":admin_proto"], +) + +ruby_grpc_library( + name = "admin_ruby_grpc", + srcs = [":admin_proto"], + deps = [":admin_ruby_proto"], +) + +ruby_gapic_library( + name = "admin_ruby_gapic", + src = ":admin_proto_with_info", + gapic_yaml = "analyticsadmin_gapic.yaml", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [ + ":admin_ruby_grpc", + ":admin_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-analytics-admin-v1alpha-ruby", + deps = [ + ":admin_ruby_gapic", + ":admin_ruby_grpc", + ":admin_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "admin_csharp_proto", + deps = [":admin_proto"], +) + +csharp_grpc_library( + name = "admin_csharp_grpc", + srcs = [":admin_proto"], + deps = [":admin_csharp_proto"], +) + +csharp_gapic_library( + name = "admin_csharp_gapic", + src = ":admin_proto_with_info", + gapic_yaml = "analyticsadmin_gapic.yaml", + grpc_service_config = "admin_grpc_service_config.json", + package = "google.analytics.admin.v1alpha", + service_yaml = "analyticsadmin_v1alpha.yaml", + deps = [ + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-analytics-admin-v1alpha-csharp", + deps = [ + ":admin_csharp_gapic", + ":admin_csharp_grpc", + ":admin_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# Put your C++ rules here diff --git a/google/analytics/admin/v1alpha/admin_grpc_service_config.json b/google/analytics/admin/v1alpha/admin_grpc_service_config.json new file mode 100644 index 00000000..c504383e --- /dev/null +++ b/google/analytics/admin/v1alpha/admin_grpc_service_config.json @@ -0,0 +1,158 @@ +{ + "methodConfig": [ + { + "name": [{"service": "google.analytics.admin.v1alpha.AnalyticsAdminService"}], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE", "UNKNOWN"] + } + }, + { + "name": [ + { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetAccount" + }, + { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListAccounts" + }, + { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteAccount" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateAccount" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ProvisionAccountTicket" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetProperty" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListProperties" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteProperty" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateProperty" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateProperty" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetUserLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "BatchGetUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "AuditUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateUserLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "BatchCreateUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateUserLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "BatchUpdateUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteUserLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "BatchDeleteUserLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetWebDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateWebDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateWebDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListWebDataStreams" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetIosAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteIosAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateIosAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateIosAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListIosAppDataStreams" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateAndroidAppDataStream" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListAndroidAppDataStreams" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetEnhancedMeasurementSettings" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateEnhancedMeasurementSettings" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateFirebaseLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateFirebaseLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteFirebaseLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListFirebaseLinks" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "GetGlobalSiteTag" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "CreateGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "UpdateGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "DeleteGoogleAdsLink" + }, { + "service": "google.analytics.admin.v1alpha.AnalyticsAdminService", + "method": "ListGoogleAdsLinks" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/analytics/admin/v1alpha/analytics_admin.proto b/google/analytics/admin/v1alpha/analytics_admin.proto new file mode 100644 index 00000000..60d503a9 --- /dev/null +++ b/google/analytics/admin/v1alpha/analytics_admin.proto @@ -0,0 +1,1344 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.analytics.admin.v1alpha; + +import "google/analytics/admin/v1alpha/resources.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "AnalyticsAdminProto"; +option java_package = "com.google.analytics.admin.v1alpha"; + +// Service Interface for the Analytics Admin API (App+Web). +service AnalyticsAdminService { + option (google.api.default_host) = "analyticsadmin.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/analytics.edit," + "https://www.googleapis.com/auth/analytics.manage.users," + "https://www.googleapis.com/auth/analytics.manage.users.readonly," + "https://www.googleapis.com/auth/analytics.readonly"; + + // Lookup for a single Account. + // Throws "Target not found" if no such account found, or if caller does not + // have permissions to access it. + rpc GetAccount(GetAccountRequest) returns (Account) { + option (google.api.http) = { + get: "/v1alpha/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns all accounts accessible by the caller. + // + // Note that these accounts might not currently have App+Web properties. + // Soft-deleted (ie: "trashed") accounts are excluded by default. + // Returns an empty list if no relevant accounts are found. + rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) { + option (google.api.http) = { + get: "/v1alpha/accounts" + }; + } + + // Marks target Account as soft-deleted (ie: "trashed") and returns it. + // + // This API does not have a method to restore soft-deleted accounts. + // However, they can be restored using the Trash Can UI. + // + // If the accounts are not restored before the expiration time, the account + // and all child resources (eg: Properties, GoogleAdsLinks, Streams, + // UserLinks) will be permanently purged. + // https://support.google.com/analytics/answer/6154772 + // + // Returns an error if the target is not found. + rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=accounts/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an account. + rpc UpdateAccount(UpdateAccountRequest) returns (Account) { + option (google.api.http) = { + patch: "/v1alpha/{account.name=accounts/*}" + body: "account" + }; + option (google.api.method_signature) = "account,update_mask"; + } + + // Requests a ticket for creating an account. + rpc ProvisionAccountTicket(ProvisionAccountTicketRequest) returns (ProvisionAccountTicketResponse) { + option (google.api.http) = { + post: "/v1alpha/accounts:provisionAccountTicket" + body: "*" + }; + } + + // Lookup for a single "App+Web" Property. + // + // Throws "Target not found" if no such property found, if property is not + // of the type "App+Web", or if caller does not have permissions to access it. + rpc GetProperty(GetPropertyRequest) returns (Property) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns child Properties under the specified parent Account. + // + // Only "App+Web" properties will be returned. + // Properties will be excluded if the caller does not have access. + // Soft-deleted (ie: "trashed") properties are excluded by default. + // Returns an empty list if no relevant properties are found. + rpc ListProperties(ListPropertiesRequest) returns (ListPropertiesResponse) { + option (google.api.http) = { + get: "/v1alpha/properties" + }; + } + + // Creates an "App+Web" property with the specified location and attributes. + rpc CreateProperty(CreatePropertyRequest) returns (Property) { + option (google.api.http) = { + post: "/v1alpha/properties" + body: "property" + }; + option (google.api.method_signature) = "property"; + } + + // Marks target Property as soft-deleted (ie: "trashed") and returns it. + // + // This API does not have a method to restore soft-deleted properties. + // However, they can be restored using the Trash Can UI. + // + // If the properties are not restored before the expiration time, the Property + // and all child resources (eg: GoogleAdsLinks, Streams, UserLinks) + // will be permanently purged. + // https://support.google.com/analytics/answer/6154772 + // + // Returns an error if the target is not found, or is not an App+Web Property. + rpc DeleteProperty(DeletePropertyRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a property. + rpc UpdateProperty(UpdatePropertyRequest) returns (Property) { + option (google.api.http) = { + patch: "/v1alpha/{property.name=properties/*}" + body: "property" + }; + option (google.api.method_signature) = "property,update_mask"; + } + + // Gets information about a user's link to an account or property. + rpc GetUserLink(GetUserLinkRequest) returns (UserLink) { + option (google.api.http) = { + get: "/v1alpha/{name=accounts/*/userLinks/*}" + additional_bindings { + get: "/v1alpha/{name=properties/*/userLinks/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Gets information about multiple users' links to an account or property. + rpc BatchGetUserLinks(BatchGetUserLinksRequest) returns (BatchGetUserLinksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=accounts/*}/userLinks:batchGet" + additional_bindings { + get: "/v1alpha/{parent=properties/*}/userLinks:batchGet" + } + }; + } + + // Lists all user links on an account or property. + rpc ListUserLinks(ListUserLinksRequest) returns (ListUserLinksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=accounts/*}/userLinks" + additional_bindings { + get: "/v1alpha/{parent=properties/*}/userLinks" + } + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all user links on an account or property, including implicit ones + // that come from effective permissions granted by groups or organization + // admin roles. + // + // If a returned user link does not have direct permissions, they cannot + // be removed from the account or property directly with the DeleteUserLink + // command. They have to be removed from the group/etc that gives them + // permissions, which is currently only usable/discoverable in the GA or GMP + // UIs. + rpc AuditUserLinks(AuditUserLinksRequest) returns (AuditUserLinksResponse) { + option (google.api.http) = { + post: "/v1alpha/{parent=accounts/*}/userLinks:audit" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=properties/*}/userLinks:audit" + body: "*" + } + }; + } + + // Creates a user link on an account or property. + // + // If the user with the specified email already has permissions on the + // account or property, then the user's existing permissions will be unioned + // with the permissions specified in the new UserLink. + rpc CreateUserLink(CreateUserLinkRequest) returns (UserLink) { + option (google.api.http) = { + post: "/v1alpha/{parent=accounts/*}/userLinks" + body: "user_link" + additional_bindings { + post: "/v1alpha/{parent=properties/*}/userLinks" + body: "user_link" + } + }; + option (google.api.method_signature) = "parent,user_link"; + } + + // Creates information about multiple users' links to an account or property. + // + // This method is transactional. If any UserLink cannot be created, none of + // the UserLinks will be created. + rpc BatchCreateUserLinks(BatchCreateUserLinksRequest) returns (BatchCreateUserLinksResponse) { + option (google.api.http) = { + post: "/v1alpha/{parent=accounts/*}/userLinks:batchCreate" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=properties/*}/userLinks:batchCreate" + body: "*" + } + }; + } + + // Updates a user link on an account or property. + rpc UpdateUserLink(UpdateUserLinkRequest) returns (UserLink) { + option (google.api.http) = { + patch: "/v1alpha/{user_link.name=accounts/*/userLinks/*}" + body: "user_link" + additional_bindings { + patch: "/v1alpha/{user_link.name=properties/*/userLinks/*}" + body: "user_link" + } + }; + option (google.api.method_signature) = "user_link"; + } + + // Updates information about multiple users' links to an account or property. + rpc BatchUpdateUserLinks(BatchUpdateUserLinksRequest) returns (BatchUpdateUserLinksResponse) { + option (google.api.http) = { + post: "/v1alpha/{parent=accounts/*}/userLinks:batchUpdate" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=properties/*}/userLinks:batchUpdate" + body: "*" + } + }; + } + + // Deletes a user link on an account or property. + rpc DeleteUserLink(DeleteUserLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=accounts/*/userLinks/*}" + additional_bindings { + delete: "/v1alpha/{name=properties/*/userLinks/*}" + } + }; + option (google.api.method_signature) = "name"; + } + + // Deletes information about multiple users' links to an account or property. + rpc BatchDeleteUserLinks(BatchDeleteUserLinksRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha/{parent=accounts/*}/userLinks:batchDelete" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=properties/*}/userLinks:batchDelete" + body: "*" + } + }; + } + + // Lookup for a single WebDataStream + // + // Throws "Target not found" if no such web data stream found, or if the + // caller does not have permissions to access it. + rpc GetWebDataStream(GetWebDataStreamRequest) returns (WebDataStream) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/webDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a web stream on a property. + rpc DeleteWebDataStream(DeleteWebDataStreamRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/webDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a web stream on a property. + rpc UpdateWebDataStream(UpdateWebDataStreamRequest) returns (WebDataStream) { + option (google.api.http) = { + patch: "/v1alpha/{web_data_stream.name=properties/*/webDataStreams/*}" + body: "web_data_stream" + }; + option (google.api.method_signature) = "web_data_stream,update_mask"; + } + + // Creates a web stream with the specified location and attributes. + rpc CreateWebDataStream(CreateWebDataStreamRequest) returns (WebDataStream) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/webDataStreams" + body: "web_data_stream" + }; + option (google.api.method_signature) = "parent,web_data_stream"; + } + + // Returns child web data streams under the specified parent property. + // + // Web data streams will be excluded if the caller does not have access. + // Returns an empty list if no relevant web data streams are found. + rpc ListWebDataStreams(ListWebDataStreamsRequest) returns (ListWebDataStreamsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/webDataStreams" + }; + option (google.api.method_signature) = "parent"; + } + + // Lookup for a single IosAppDataStream + // + // Throws "Target not found" if no such iOS app data stream found, or if the + // caller does not have permissions to access it. + rpc GetIosAppDataStream(GetIosAppDataStreamRequest) returns (IosAppDataStream) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/iosAppDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes an iOS app stream on a property. + rpc DeleteIosAppDataStream(DeleteIosAppDataStreamRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/iosAppDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an iOS app stream on a property. + rpc UpdateIosAppDataStream(UpdateIosAppDataStreamRequest) returns (IosAppDataStream) { + option (google.api.http) = { + patch: "/v1alpha/{ios_app_data_stream.name=properties/*/iosAppDataStreams/*}" + body: "ios_app_data_stream" + }; + option (google.api.method_signature) = "ios_app_data_stream,update_mask"; + } + + // Creates an iOS app data stream with the specified location and attributes. + rpc CreateIosAppDataStream(CreateIosAppDataStreamRequest) returns (IosAppDataStream) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/iosAppDataStreams" + body: "ios_app_data_stream" + }; + option (google.api.method_signature) = "parent,ios_app_data_stream"; + } + + // Returns child iOS app data streams under the specified parent property. + // + // iOS app data streams will be excluded if the caller does not have access. + // Returns an empty list if no relevant iOS app data streams are found. + rpc ListIosAppDataStreams(ListIosAppDataStreamsRequest) returns (ListIosAppDataStreamsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/iosAppDataStreams" + }; + option (google.api.method_signature) = "parent"; + } + + // Lookup for a single AndroidAppDataStream + // + // Throws "Target not found" if no such android app data stream found, or if + // the caller does not have permissions to access it. + rpc GetAndroidAppDataStream(GetAndroidAppDataStreamRequest) returns (AndroidAppDataStream) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/androidAppDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes an android app stream on a property. + rpc DeleteAndroidAppDataStream(DeleteAndroidAppDataStreamRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/androidAppDataStreams/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates an android app stream on a property. + rpc UpdateAndroidAppDataStream(UpdateAndroidAppDataStreamRequest) returns (AndroidAppDataStream) { + option (google.api.http) = { + patch: "/v1alpha/{android_app_data_stream.name=properties/*/androidAppDataStreams/*}" + body: "android_app_data_stream" + }; + option (google.api.method_signature) = "android_app_data_stream,update_mask"; + } + + // Creates an android app stream with the specified location and attributes. + rpc CreateAndroidAppDataStream(CreateAndroidAppDataStreamRequest) returns (AndroidAppDataStream) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/androidAppDataStreams" + body: "android_app_data_stream" + }; + option (google.api.method_signature) = "parent,android_app_data_stream"; + } + + // Returns child android app streams under the specified parent property. + // + // Android app streams will be excluded if the caller does not have access. + // Returns an empty list if no relevant android app streams are found. + rpc ListAndroidAppDataStreams(ListAndroidAppDataStreamsRequest) returns (ListAndroidAppDataStreamsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/androidAppDataStreams" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the singleton enhanced measurement settings for this web stream. + // Note that the stream must enable enhanced measurement for these settings to + // take effect. + rpc GetEnhancedMeasurementSettings(GetEnhancedMeasurementSettingsRequest) returns (EnhancedMeasurementSettings) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/webDataStreams/*/enhancedMeasurementSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the singleton enhanced measurement settings for this web stream. + // Note that the stream must enable enhanced measurement for these settings to + // take effect. + rpc UpdateEnhancedMeasurementSettings(UpdateEnhancedMeasurementSettingsRequest) returns (EnhancedMeasurementSettings) { + option (google.api.http) = { + patch: "/v1alpha/{enhanced_measurement_settings.name=properties/*/webDataStreams/*/enhancedMeasurementSettings}" + body: "enhanced_measurement_settings" + }; + option (google.api.method_signature) = "enhanced_measurement_settings,update_mask"; + } + + // Creates a FirebaseLink. + // + // Properties can have at most one FirebaseLink. + rpc CreateFirebaseLink(CreateFirebaseLinkRequest) returns (FirebaseLink) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/firebaseLinks" + body: "firebase_link" + }; + option (google.api.method_signature) = "parent,firebase_link"; + } + + // Updates a FirebaseLink on a property + rpc UpdateFirebaseLink(UpdateFirebaseLinkRequest) returns (FirebaseLink) { + option (google.api.http) = { + patch: "/v1alpha/{firebase_link.name=properties/*/firebaseLinks/*}" + body: "firebase_link" + }; + option (google.api.method_signature) = "firebase_link,update_mask"; + } + + // Deletes a FirebaseLink on a property + rpc DeleteFirebaseLink(DeleteFirebaseLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/firebaseLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists FirebaseLinks on a property. + // Properties can have at most one FirebaseLink. + rpc ListFirebaseLinks(ListFirebaseLinksRequest) returns (ListFirebaseLinksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/firebaseLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Returns the Site Tag for the specified web stream. + // Site Tags are immutable singletons. + rpc GetGlobalSiteTag(GetGlobalSiteTagRequest) returns (GlobalSiteTag) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/webDataStreams/*/globalSiteTag}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a GoogleAdsLink. + rpc CreateGoogleAdsLink(CreateGoogleAdsLinkRequest) returns (GoogleAdsLink) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/googleAdsLinks" + body: "google_ads_link" + }; + option (google.api.method_signature) = "parent,google_ads_link"; + } + + // Updates a GoogleAdsLink on a property + rpc UpdateGoogleAdsLink(UpdateGoogleAdsLinkRequest) returns (GoogleAdsLink) { + option (google.api.http) = { + patch: "/v1alpha/{google_ads_link.name=properties/*/googleAdsLinks/*}" + body: "google_ads_link" + }; + option (google.api.method_signature) = "google_ads_link,update_mask"; + } + + // Deletes a GoogleAdsLink on a property + rpc DeleteGoogleAdsLink(DeleteGoogleAdsLinkRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/googleAdsLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists GoogleAdsLinks on a property. + rpc ListGoogleAdsLinks(ListGoogleAdsLinksRequest) returns (ListGoogleAdsLinksResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/googleAdsLinks" + }; + option (google.api.method_signature) = "parent"; + } + + // Get data sharing settings on an account. + // Data sharing settings are singletons. + rpc GetDataSharingSettings(GetDataSharingSettingsRequest) returns (DataSharingSettings) { + option (google.api.http) = { + get: "/v1alpha/{name=accounts/*/dataSharingSettings}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for GetAccount RPC. +message GetAccountRequest { + // Required. The name of the account to lookup. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; +} + +// Request message for ListAccounts RPC. +message ListAccountsRequest { + // The maximum number of resources to return. The service may return + // fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 1; + + // A page token, received from a previous `ListAccounts` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListAccounts` must + // match the call that provided the page token. + string page_token = 2; + + // Whether to include soft-deleted (ie: "trashed") Accounts in the + // results. Accounts can be inspected to determine whether they are deleted or + // not. + bool show_deleted = 3; +} + +// Request message for ListAccounts RPC. +message ListAccountsResponse { + // Results that were accessible to the caller. + repeated Account accounts = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for DeleteAccount RPC. +message DeleteAccountRequest { + // Required. The name of the Account to soft-delete. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Account" + } + ]; +} + +// Request message for UpdateAccount RPC. +message UpdateAccountRequest { + // Required. The account to update. + // The account's `name` field is used to identify the account. + Account account = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for ProvisionAccountTicket RPC. +message ProvisionAccountTicketRequest { + // The account to create. + Account account = 1; + + // Redirect URI where the user will be sent after accepting Terms of Service. + // Must be configured in Developers Console as a Redirect URI + string redirect_uri = 2; +} + +// Response message for ProvisionAccountTicket RPC. +message ProvisionAccountTicketResponse { + // The param to be passed in the ToS link. + string account_ticket_id = 1; +} + +// Request message for GetProperty RPC. +message GetPropertyRequest { + // Required. The name of the property to lookup. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; +} + +// Request message for ListProperties RPC. +message ListPropertiesRequest { + // Required. An expression for filtering the results of the request. + // Fields eligible for filtering are: + // `parent:`(The resource name of the parent account) or + // `firebase_project:`(The id or number of the linked firebase project). + // Some examples of filters: + // + // | Filter | Description | + // |-----------------------------|-------------------------------------------| + // | parent:accounts/123 | The account with account id: 123. | + // | firebase_project:project-id | The firebase project with id: project-id. | + // | firebase_project:123 | The firebase project with number: 123. | + string filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of resources to return. The service may return + // fewer than this value, even if there are additional pages. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListProperties` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListProperties` must + // match the call that provided the page token. + string page_token = 3; + + // Whether to include soft-deleted (ie: "trashed") Properties in the + // results. Properties can be inspected to determine whether they are deleted + // or not. + bool show_deleted = 4; +} + +// Response message for ListProperties RPC. +message ListPropertiesResponse { + // Results that matched the filter criteria and were accessible to the caller. + repeated Property properties = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for UpdateProperty RPC. +message UpdatePropertyRequest { + // Required. The property to update. + // The property's `name` field is used to identify the property to be + // updated. + Property property = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for CreateProperty RPC. +message CreatePropertyRequest { + // Required. The property to create. + // Note: the supplied property must specify its parent. + Property property = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for DeleteProperty RPC. +message DeletePropertyRequest { + // Required. The name of the Property to soft-delete. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/Property" + } + ]; +} + +// Request message for GetUserLink RPC. +message GetUserLinkRequest { + // Required. Example format: accounts/1234/userLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/UserLink" + } + ]; +} + +// Request message for BatchGetUserLinks RPC. +message BatchGetUserLinksRequest { + // Required. The account or property that all user links in the request are + // for. The parent of all provided values for the 'names' field must match + // this field. + // Example format: accounts/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/UserLink" + } + ]; + + // Required. The names of the user links to retrieve. + // A maximum of 1000 user links can be retrieved in a batch. + // Format: accounts/{accountId}/userLinks/{userLinkId} + repeated string names = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/UserLink" + } + ]; +} + +// Response message for BatchGetUserLinks RPC. +message BatchGetUserLinksResponse { + // The requested user links. + repeated UserLink user_links = 1; +} + +// Request message for ListUserLinks RPC. +message ListUserLinksRequest { + // Required. Example format: accounts/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/UserLink" + } + ]; + + // The maximum number of user links to return. + // The service may return fewer than this value. + // If unspecified, at most 200 user links will be returned. + // The maximum value is 500; values above 500 will be coerced to 500. + int32 page_size = 2; + + // A page token, received from a previous `ListUserLinks` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListUserLinks` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListUserLinks RPC. +message ListUserLinksResponse { + // List of UserLinks. These will be ordered stably, but in an arbitrary order. + repeated UserLink user_links = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for AuditUserLinks RPC. +message AuditUserLinksRequest { + // Required. Example format: accounts/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/UserLink" + } + ]; + + // The maximum number of user links to return. + // The service may return fewer than this value. + // If unspecified, at most 1000 user links will be returned. + // The maximum value is 5000; values above 5000 will be coerced to 5000. + int32 page_size = 2; + + // A page token, received from a previous `AuditUserLinks` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `AuditUserLinks` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for AuditUserLinks RPC. +message AuditUserLinksResponse { + // List of AuditUserLinks. These will be ordered stably, but in an arbitrary + // order. + repeated AuditUserLink user_links = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for CreateUserLink RPC. +// +// Users can have multiple email addresses associated with their Google +// account, and one of these email addresses is the "primary" email address. +// Any of the email addresses associated with a Google account may be used +// for a new UserLink, but the returned UserLink will always contain the +// "primary" email address. As a result, the input and output email address +// for this request may differ. +message CreateUserLinkRequest { + // Required. Example format: accounts/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/UserLink" + } + ]; + + // Optional. If notify_new_user is set, then email new user that they've been given + // permissions on the resource. + bool notify_new_user = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The user link to create. + UserLink user_link = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for BatchCreateUserLinks RPC. +message BatchCreateUserLinksRequest { + // Required. The account or property that all user links in the request are for. + // This field is required. The parent field in the CreateUserLinkRequest + // messages must either be empty or match this field. + // Example format: accounts/1234 + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If notify_new_users is set, then email new users that they've been given + // permissions on the resource. + bool notify_new_users = 2 [(google.api.field_behavior) = OPTIONAL]; + + // The requests specifying the user links to create. + // A maximum of 1000 user links can be created in a batch. + repeated CreateUserLinkRequest requests = 3; +} + +// Response message for BatchCreateUserLinks RPC. +message BatchCreateUserLinksResponse { + // The user links created. + repeated UserLink user_links = 1; +} + +// Request message for UpdateUserLink RPC. +message UpdateUserLinkRequest { + // Required. The user link to update. + UserLink user_link = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for BatchUpdateUserLinks RPC. +message BatchUpdateUserLinksRequest { + // Required. The account or property that all user links in the request are + // for. The parent field in the UpdateUserLinkRequest messages must either be + // empty or match this field. + // Example format: accounts/1234 + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The requests specifying the user links to update. + // A maximum of 1000 user links can be updated in a batch. + repeated UpdateUserLinkRequest requests = 2; +} + +// Response message for BatchUpdateUserLinks RPC. +message BatchUpdateUserLinksResponse { + // The user links updated. + repeated UserLink user_links = 1; +} + +// Request message for DeleteUserLink RPC. +message DeleteUserLinkRequest { + // Required. Example format: accounts/1234/userLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/UserLink" + } + ]; +} + +// Request message for BatchDeleteUserLinks RPC. +message BatchDeleteUserLinksRequest { + // Required. The account or property that all user links in the request are + // for. The parent of all values for user link names to delete must match this + // field. + // Example format: accounts/1234 + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // The requests specifying the user links to update. + // A maximum of 1000 user links can be updated in a batch. + repeated DeleteUserLinkRequest requests = 2; +} + +// Request message for GetWebDataStream RPC. +message GetWebDataStreamRequest { + // Required. The name of the web data stream to lookup. + // Format: properties/{property_id}/webDataStreams/{stream_id} + // Example: "properties/123/webDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/WebDataStream" + } + ]; +} + +// Request message for DeleteWebDataStream RPC. +message DeleteWebDataStreamRequest { + // Required. The name of the web data stream to delete. + // Format: properties/{property_id}/webDataStreams/{stream_id} + // Example: "properties/123/webDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/WebDataStream" + } + ]; +} + +// Request message for UpdateWebDataStream RPC. +message UpdateWebDataStreamRequest { + // Required. The web stream to update. + // The `name` field is used to identify the web stream to be updated. + WebDataStream web_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for CreateWebDataStream RPC. +message CreateWebDataStreamRequest { + // Required. The web stream to create. + WebDataStream web_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The parent resource where this web data stream will be created. + // Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/WebDataStream" + } + ]; +} + +// Request message for ListWebDataStreams RPC. +message ListWebDataStreamsRequest { + // Required. The name of the parent property. + // For example, to list results of web streams under the property with Id + // 123: "properties/123" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/WebDataStream" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListWebDataStreams` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListWebDataStreams` must + // match the call that provided the page token. + string page_token = 3; +} + +// Request message for ListWebDataStreams RPC. +message ListWebDataStreamsResponse { + // Results that matched the filter criteria and were accessible to the caller. + repeated WebDataStream web_data_streams = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for GetIosAppDataStream RPC. +message GetIosAppDataStreamRequest { + // Required. The name of the iOS app data stream to lookup. + // Format: properties/{property_id}/iosAppDataStreams/{stream_id} + // Example: "properties/123/iosAppDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/IosAppDataStream" + } + ]; +} + +// Request message for DeleteIosAppDataStream RPC. +message DeleteIosAppDataStreamRequest { + // Required. The name of the iOS app data stream to delete. + // Format: properties/{property_id}/iosAppDataStreams/{stream_id} + // Example: "properties/123/iosAppDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/IosAppDataStream" + } + ]; +} + +// Request message for UpdateIosAppDataStream RPC. +message UpdateIosAppDataStreamRequest { + // Required. The iOS app stream to update. + // The `name` field is used to identify the iOS app stream to be updated. + IosAppDataStream ios_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for CreateIosAppDataStream RPC. +message CreateIosAppDataStreamRequest { + // Required. The iOS app data stream to create. + IosAppDataStream ios_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The parent resource where this ios app data stream will be created. + // Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/IosAppDataStream" + } + ]; +} + +// Request message for ListIosAppDataStreams RPC. +message ListIosAppDataStreamsRequest { + // Required. The name of the parent property. + // For example, to list results of app streams under the property with Id + // 123: "properties/123" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/IosAppDataStream" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous `ListIosAppDataStreams` + // call. Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListIosAppDataStreams` + // must match the call that provided the page token. + string page_token = 3; +} + +// Request message for ListIosAppDataStreams RPC. +message ListIosAppDataStreamsResponse { + // Results that matched the filter criteria and were accessible to the caller. + repeated IosAppDataStream ios_app_data_streams = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for GetAndroidAppDataStream RPC. +message GetAndroidAppDataStreamRequest { + // Required. The name of the android app data stream to lookup. + // Format: properties/{property_id}/androidAppDataStreams/{stream_id} + // Example: "properties/123/androidAppDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/AndroidAppDataStream" + } + ]; +} + +// Request message for DeleteAndroidAppDataStream RPC. +message DeleteAndroidAppDataStreamRequest { + // Required. The name of the android app data stream to delete. + // Format: properties/{property_id}/androidAppDataStreams/{stream_id} + // Example: "properties/123/androidAppDataStreams/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/AndroidAppDataStream" + } + ]; +} + +// Request message for UpdateAndroidAppDataStream RPC. +message UpdateAndroidAppDataStreamRequest { + // Required. The android app stream to update. + // The `name` field is used to identify the android app stream to be updated. + AndroidAppDataStream android_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for CreateAndroidAppDataStream RPC. +message CreateAndroidAppDataStreamRequest { + // Required. The android app stream to create. + AndroidAppDataStream android_app_data_stream = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The parent resource where this android app data stream will be created. + // Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/AndroidAppDataStream" + } + ]; +} + +// Request message for ListAndroidAppDataStreams RPC. +message ListAndroidAppDataStreamsRequest { + // Required. The name of the parent property. + // For example, to limit results to app streams under the property with Id + // 123: "properties/123" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/AndroidAppDataStream" + } + ]; + + // The maximum number of resources to return. + // + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200; (higher values will be coerced to the maximum) + int32 page_size = 2; + + // A page token, received from a previous call. Provide this to + // retrieve the subsequent page. + // When paginating, all other parameters provided to + // `ListAndroidAppDataStreams` must match the call that provided the page + // token. + string page_token = 3; +} + +// Request message for ListAndroidDataStreams RPC. +message ListAndroidAppDataStreamsResponse { + // Results that matched the filter criteria and were accessible to the caller. + repeated AndroidAppDataStream android_app_data_streams = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for GetEnhancedMeasurementSettings RPC. +message GetEnhancedMeasurementSettingsRequest { + // Required. The name of the settings to lookup. + // Format: + // properties/{property_id}/webDataStreams/{stream_id}/enhancedMeasurementSettings + // Example: "properties/1000/webDataStreams/2000/enhancedMeasurementSettings" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/EnhancedMeasurementSettings" + } + ]; +} + +// Request message for UpdateEnhancedMeasurementSettings RPC. +message UpdateEnhancedMeasurementSettingsRequest { + // Required. The settings to update. + // The `name` field is used to identify the settings to be updated. + EnhancedMeasurementSettings enhanced_measurement_settings = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for CreateFirebaseLink RPC +message CreateFirebaseLinkRequest { + // Required. Format: properties/{property_id} + // Example: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; + + // Required. The Firebase link to create. + FirebaseLink firebase_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateFirebaseLink RPC +message UpdateFirebaseLinkRequest { + // Required. The Firebase link to update. + FirebaseLink firebase_link = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for DeleteFirebaseLink RPC +message DeleteFirebaseLinkRequest { + // Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} + // Example: properties/1234/firebaseLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; +} + +// Request message for ListFirebaseLinks RPC +message ListFirebaseLinksRequest { + // Required. Format: properties/{property_id} + // Example: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/FirebaseLink" + } + ]; +} + +// Response message for ListFirebaseLinks RPC +message ListFirebaseLinksResponse { + // List of FirebaseLinks. This will have at most one value. + repeated FirebaseLink firebase_links = 1; +} + +// Request message for GetGlobalSiteTag RPC. +message GetGlobalSiteTagRequest { + // Required. The name of the site tag to lookup. + // Note that site tags are singletons and do not have unique IDs. + // Format: properties/{property_id}/webDataStreams/{stream_id}/globalSiteTag + // Example: "properties/123/webDataStreams/456/globalSiteTag" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/GlobalSiteTag" + } + ]; +} + +// Request message for CreateGoogleAdsLink RPC +message CreateGoogleAdsLinkRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; + + // Required. The GoogleAdsLink to create. + GoogleAdsLink google_ads_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateGoogleAdsLink RPC +message UpdateGoogleAdsLinkRequest { + // The GoogleAdsLink to update + GoogleAdsLink google_ads_link = 1; + + // The list of fields to be updated. Omitted fields will not be updated. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for DeleteGoogleAdsLink RPC. +message DeleteGoogleAdsLinkRequest { + // Required. Example format: properties/1234/googleAdsLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; +} + +// Request message for ListGoogleAdsLinks RPC. +message ListGoogleAdsLinksRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/GoogleAdsLink" + } + ]; + + // The maximum number of resources to return. + // If unspecified, at most 50 resources will be returned. + // The maximum value is 200 (higher values will be coerced to the maximum). + int32 page_size = 2; + + // A page token, received from a previous `ListGoogleAdsLinks` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListGoogleAdsLinks` must + // match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListGoogleAdsLinks RPC. +message ListGoogleAdsLinksResponse { + // List of GoogleAdsLinks. + repeated GoogleAdsLink google_ads_links = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for GetDataSharingSettings RPC. +message GetDataSharingSettingsRequest { + // Required. The name of the settings to lookup. + // Format: accounts/{account}/dataSharingSettings + // Example: "accounts/1000/dataSharingSettings" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/DataSharingSettings" + } + ]; +} diff --git a/google/analytics/admin/v1alpha/analyticsadmin_gapic.yaml b/google/analytics/admin/v1alpha/analyticsadmin_gapic.yaml new file mode 100644 index 00000000..f7b563d9 --- /dev/null +++ b/google/analytics/admin/v1alpha/analyticsadmin_gapic.yaml @@ -0,0 +1,18 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +language_settings: + java: + package_name: com.google.analytics.admin.v1alpha + python: + package_name: google.analytics.admin.v1alpha.gapic + go: + package_name: google.golang.org/api/analyticsadmin/v1alpha + csharp: + package_name: Google.Analytics.Admin.V1alpha + ruby: + package_name: Google::Analytics::Admin::V1alpha + php: + package_name: Google\Analytics\Admin\V1alpha + nodejs: + package_name: google.analytics.admin.v1alpha + domain_layer_location: analyticsadmin.google.com diff --git a/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml new file mode 100644 index 00000000..ecd6c163 --- /dev/null +++ b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml @@ -0,0 +1,114 @@ +type: google.api.Service +config_version: 3 +name: analyticsadmin.googleapis.com +title: Analytics Admin API + +apis: +- name: google.analytics.admin.v1alpha.AnalyticsAdminService + +authentication: + rules: + - selector: 'google.analytics.admin.v1alpha.AnalyticsAdminService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.AuditUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchCreateUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchDeleteUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchGetUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.BatchUpdateUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.CreateUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAccount + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetAndroidAppDataStream + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetDataSharingSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetEnhancedMeasurementSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetGlobalSiteTag + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetIosAppDataStream + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetProperty + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetWebDataStream + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListAndroidAppDataStreams + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListFirebaseLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListGoogleAdsLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListIosAppDataStreams + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListProperties + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListUserLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListWebDataStreams + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateUserLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.manage.users diff --git a/google/analytics/admin/v1alpha/resources.proto b/google/analytics/admin/v1alpha/resources.proto new file mode 100644 index 00000000..79bc304c --- /dev/null +++ b/google/analytics/admin/v1alpha/resources.proto @@ -0,0 +1,571 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.analytics.admin.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1alpha;admin"; +option java_multiple_files = true; +option java_outer_classname = "ResourcesProto"; +option java_package = "com.google.analytics.admin.v1alpha"; + +// A resource message representing a Google Analytics account. +message Account { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/Account" + pattern: "accounts/{account}" + }; + + // Output only. Resource name of this account. + // Format: accounts/{account} + // Example: "accounts/100" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this account was originally created. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when account payload fields were last updated. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Human-readable display name for this account. + string display_name = 4 [(google.api.field_behavior) = REQUIRED]; + + // Country of business. Must be a non-deprecated code for a UN M.49 region. + // https://unicode.org/cldr/charts/latest/supplemental/territory_containment_un_m_49.html + string country_code = 5; + + // Output only. Indicates whether this Account is soft-deleted or not. Deleted + // accounts are excluded from List results unless specifically requested. + bool deleted = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A resource message representing a Google Analytics App+Web property. +message Property { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/Property" + pattern: "properties/{property}" + }; + + // Output only. Resource name of this property. + // Format: properties/{property_id} + // Example: "properties/1000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the entity was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when entity payload fields were last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Resource name of this property's logical parent. + // + // Note: The Property-Moving UI can be used to change the parent. + // Format: accounts/{account} + // Example: "accounts/100" + string parent = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human-readable display name for this property. + // + // The max allowed display name length is 100 UTF-16 code units. + string display_name = 5 [(google.api.field_behavior) = REQUIRED]; + + // Industry associated with this property + // Example: AUTOMOTIVE, FOOD_AND_DRINK + IndustryCategory industry_category = 6; + + // Reporting Time Zone, used as the day boundary for reports, regardless of + // where the data originates. If the time zone honors DST, Analytics will + // automatically adjust for the changes. + // + // NOTE: Changing the time zone only affects data going forward, and is not + // applied retroactively. + // + // Format: https://www.iana.org/time-zones + // Example: "America/Los_Angeles" + string time_zone = 7; + + // The currency type used in reports involving monetary values. + // + // + // Format: https://en.wikipedia.org/wiki/ISO_4217 + // Examples: "USD", "EUR", "JPY" + string currency_code = 8; + + // Output only. Indicates whether this Property is soft-deleted or not. Deleted properties + // are excluded from List results unless specifically requested. + bool deleted = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A resource message representing a Google Analytics Android app stream. +message AndroidAppDataStream { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/AndroidAppDataStream" + pattern: "properties/{property}/androidAppDataStreams/{android_app_data_stream}" + }; + + // Output only. Resource name of this Data Stream. + // Format: properties/{property_id}/androidAppDataStreams/{stream_id} + // Example: "properties/1000/androidAppDataStreams/2000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the corresponding Android app in Firebase, if any. + // This ID can change if the Android app is deleted and recreated. + string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this stream was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when stream payload fields were last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The package name for the app being measured. + // Example: "com.example.myandroidapp" + string package_name = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Human-readable display name for the Data Stream. + // + // The max allowed display name length is 255 UTF-16 code units. + string display_name = 6; +} + +// A resource message representing a Google Analytics IOS app stream. +message IosAppDataStream { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/IosAppDataStream" + pattern: "properties/{property}/iosAppDataStreams/{ios_app_data_stream}" + }; + + // Output only. Resource name of this Data Stream. + // Format: properties/{property_id}/iosAppDataStreams/{stream_id} + // Example: "properties/1000/iosAppDataStreams/2000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the corresponding iOS app in Firebase, if any. + // This ID can change if the iOS app is deleted and recreated. + string firebase_app_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this stream was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when stream payload fields were last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The Apple App Store Bundle ID for the app + // Example: "com.example.myiosapp" + string bundle_id = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Human-readable display name for the Data Stream. + // + // The max allowed display name length is 255 UTF-16 code units. + string display_name = 6; +} + +// A resource message representing a Google Analytics web stream. +message WebDataStream { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/WebDataStream" + pattern: "properties/{property}/webDataStreams/{web_data_stream}" + }; + + // Output only. Resource name of this Data Stream. + // Format: properties/{property_id}/webDataStreams/{stream_id} + // Example: "properties/1000/webDataStreams/2000" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Analytics "Measurement ID", without the "G-" prefix. + // Example: "G-1A2BCD345E" would just be "1A2BCD345E" + string measurement_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. ID of the corresponding web app in Firebase, if any. + // This ID can change if the web app is deleted and recreated. + string firebase_app_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this stream was originally created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when stream payload fields were last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Domain name of the web app being measured, or empty. + // Example: "http://www.google.com", "https://www.google.com" + string default_uri = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. Human-readable display name for the Data Stream. + // + // The max allowed display name length is 100 UTF-16 code units. + string display_name = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// A resource message representing a user's permissions on an Account or +// Property resource. +message UserLink { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/UserLink" + pattern: "accounts/{account}/userLinks/{user_link}" + pattern: "properties/{property}/userLinks/{user_link}" + }; + + // Example format: properties/1234/userLinks/5678 + string name = 1; + + // Email address of the user to link + string email_address = 2; + + // Roles directly assigned to this user for this account or property. + // + // Valid values: + // predefinedRoles/read + // predefinedRoles/collaborate + // predefinedRoles/edit + // predefinedRoles/manage-users + // + // Excludes roles that are inherited from a higher-level entity, group, + // or organization admin role. + // + // A UserLink that is updated to have an empty list of direct_roles will be + // deleted. + repeated string direct_roles = 3; +} + +// Read-only resource used to summarize a principal's effective roles. +message AuditUserLink { + // Example format: properties/1234/userLinks/5678 + string name = 1; + + // Email address of the linked user + string email_address = 2; + + // Roles directly assigned to this user for this entity. + // + // Format: predefinedRoles/read + // + // Excludes roles that are inherited from an account (if this is for a + // property), group, or organization admin role. + repeated string direct_roles = 3; + + // Union of all permissions a user has at this account or property (includes + // direct permissions, group-inherited permissions, etc.). + // + // Format: predefinedRoles/read + repeated string effective_roles = 4; +} + +// Singleton resource under a WebDataStream, configuring measurement of +// additional site interactions and content. +message EnhancedMeasurementSettings { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/EnhancedMeasurementSettings" + pattern: "properties/{property}/webDataStreams/{web_data_stream}/enhancedMeasurementSettings" + }; + + // Output only. Resource name of this Data Stream. + // Format: + // properties/{property_id}/webDataStreams/{stream_id}/enhancedMeasurementSettings + // Example: "properties/1000/webDataStreams/2000/enhancedMeasurementSettings" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Indicates whether Enhanced Measurement Settings will be used to + // automatically measure interactions and content on this web stream. + // + // Changing this value does not affect the settings themselves, but determines + // whether they are respected. + bool stream_enabled = 2; + + // Output only. If enabled, capture a page view event each time a page loads or the + // website changes the browser history state. + bool page_views_enabled = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // If enabled, capture scroll events each time a visitor gets to the bottom of + // a page. + bool scrolls_enabled = 4; + + // If enabled, capture an outbound click event each time a visitor clicks a + // link that leads them away from your domain. + bool outbound_clicks_enabled = 5; + + // Capture events when your visitors view content on your site that has + // structured data (eg, articles, blog posts, product details screens, etc.). + bool content_views_enabled = 6; + + // If enabled, capture a view search results event each time a visitor + // performs a search on your site (based on a query parameter). + bool site_search_enabled = 7; + + // If enabled, capture a view search results event each time a visitor + // interacts with a form on your site. + bool form_interactions_enabled = 8; + + // If enabled, capture video play, progress, and complete events as visitors + // view embedded videos on your site. + bool video_engagement_enabled = 9; + + // If enabled, capture a file download event each time a link is clicked with + // a common document, compressed file, application, video, or audio extension. + bool file_downloads_enabled = 10; + + // If enabled, capture a click event each time a visitor clicks a link or + // element that has data attributes beginning with "data-ga". + bool data_tagged_element_clicks_enabled = 11; + + // If enabled, capture a page view event each time a page loads. + bool page_loads_enabled = 12; + + // If enabled, capture a page view event each time the website changes the + // browser history state. + bool page_changes_enabled = 13; + + // Capture events when your visitors view content on your site that has + // articles or blog posts. + bool articles_and_blogs_enabled = 14; + + // Capture events when your visitors view content on your site that has + // product details screens, etc. + bool products_and_ecommerce_enabled = 15; + + // Required. URL query parameters to interpret as site search parameters. + // Max length is 1024 characters. Must not be empty. + string search_query_parameter = 16 [(google.api.field_behavior) = REQUIRED]; + + // Additional URL query parameters. + // Max length is 1024 characters. + string url_query_parameter = 17; + + // Domains to exclude from measurement. Max length is 1024 characters. + string excluded_domains = 18; +} + +// A link between an App+Web property and a Firebase project. +message FirebaseLink { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/FirebaseLink" + pattern: "properties/{property}/firebaseLinks/{firebase_link}" + }; + + // Output only. Example format: properties/1234/firebaseLinks/5678 + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Firebase project resource name. When creating a FirebaseLink, you may + // provide this resource name using either a project number or project ID. + // Once this resource has been created, returned FirebaseLinks will always + // have a project_name that contains a project number. + // + // Format: 'projects/{project number}' + // Example: 'projects/1234' + string project = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when this FirebaseLink was originally created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Maximum user access to the App + Web property allowed to admins of + // the linked Firebase project. + MaximumUserAccess maximum_user_access = 4; +} + +// Read-only resource with the tag for sending data from a website to a +// WebDataStream. +message GlobalSiteTag { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/GlobalSiteTag" + pattern: "properties/{property}/globalSiteTag" + }; + + // Immutable. JavaScript code snippet to be pasted as the first item into the head tag of + // every webpage to measure. + string snippet = 1 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A link between an App+Web property and a Google Ads account. +message GoogleAdsLink { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/GoogleAdsLink" + pattern: "properties/{property}/googleAdsLinks/{google_ads_link}" + }; + + // Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} + // + // Note: googleAdsLinkId is not the Google Ads customer ID. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Format: properties/{propertyId} + string parent = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Google Ads customer ID. + string customer_id = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. If true, this link is for a Google Ads manager account. + bool can_manage_clients = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Enable personalized advertising features with this integration. + // Automatically publish my Google Analytics audience lists and Google + // Analytics remarketing events/parameters to the linked Google Ads account. + // If this field is not set on create/update it will be defaulted to true. + google.protobuf.BoolValue ads_personalization_enabled = 5; + + // Output only. Email address of the user that created the link. + // An empty string will be returned if the email address can't be retrieved. + string email_address = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this link was originally created. + google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when this link was last updated. + google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A resource message representing data sharing settings of a Google Analytics +// account. +message DataSharingSettings { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/DataSharingSettings" + pattern: "accounts/{account}/dataSharingSettings" + }; + + // Output only. Resource name. + // Format: accounts/{account}/dataSharingSettings + // Example: "accounts/1000/dataSharingSettings" + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Allows Google support to access the data in order to help troubleshoot + // issues. + bool sharing_with_google_support_enabled = 2; + + // Allows Google sales teams that are assigned to the customer to access the + // data in order to suggest configuration changes to improve results. + // Sales team restrictions still apply when enabled. + bool sharing_with_google_assigned_sales_enabled = 3; + + // Allows any of Google sales to access the data in order to suggest + // configuration changes to improve results. + bool sharing_with_google_any_sales_enabled = 4; + + // Allows Google to use the data to improve other Google products or services. + bool sharing_with_google_products_enabled = 5; + + // Allows Google to share the data anonymously in aggregate form with others. + bool sharing_with_others_enabled = 6; +} + +// The category selected for this property, used for industry benchmarking. +enum IndustryCategory { + // Industry category unspecified + INDUSTRY_CATEGORY_UNSPECIFIED = 0; + + // Automotive + AUTOMOTIVE = 1; + + // Business and industrial markets + BUSINESS_AND_INDUSTRIAL_MARKETS = 2; + + // Finance + FINANCE = 3; + + // Healthcare + HEALTHCARE = 4; + + // Technology + TECHNOLOGY = 5; + + // Travel + TRAVEL = 6; + + // Other + OTHER = 7; + + // Arts and entertainment + ARTS_AND_ENTERTAINMENT = 8; + + // Beauty and fitness + BEAUTY_AND_FITNESS = 9; + + // Books and literature + BOOKS_AND_LITERATURE = 10; + + // Food and drink + FOOD_AND_DRINK = 11; + + // Games + GAMES = 12; + + // Hobbies and leisure + HOBBIES_AND_LEISURE = 13; + + // Home and garden + HOME_AND_GARDEN = 14; + + // Internet and telecom + INTERNET_AND_TELECOM = 15; + + // Law and government + LAW_AND_GOVERNMENT = 16; + + // News + NEWS = 17; + + // Online communities + ONLINE_COMMUNITIES = 18; + + // People and society + PEOPLE_AND_SOCIETY = 19; + + // Pets and animals + PETS_AND_ANIMALS = 20; + + // Real estate + REAL_ESTATE = 21; + + // Reference + REFERENCE = 22; + + // Science + SCIENCE = 23; + + // Sports + SPORTS = 24; + + // Jobs and education + JOBS_AND_EDUCATION = 25; + + // Shopping + SHOPPING = 26; +} + +// Maximum access settings that Firebase user receive on the linked Analytics +// property. +enum MaximumUserAccess { + // Unspecified maximum user access. + MAXIMUM_USER_ACCESS_UNSPECIFIED = 0; + + // Firebase users have no access to the Analytics property. + NO_ACCESS = 1; + + // Firebase users have Read & Analyze access to the Analytics property. + READ_AND_ANALYZE = 2; + + // Firebase users have edit access to the Analytics property, but may not + // manage the Firebase link. + EDITOR_WITHOUT_LINK_MANAGEMENT = 3; + + // Firebase users have edit access to the Analytics property and may manage + // the Firebase link. + EDITOR_INCLUDING_LINK_MANAGEMENT = 4; +}