diff --git a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto index 7f5f9f9b90e..64be8151e9b 100644 --- a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto +++ b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/analytics_data_api.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,6 @@ package google.analytics.data.v1alpha; import "google/analytics/data/v1alpha/data.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data"; option java_multiple_files = true; @@ -34,444 +32,135 @@ service AlphaAnalyticsData { "https://www.googleapis.com/auth/analytics," "https://www.googleapis.com/auth/analytics.readonly"; - // Returns a customized report of your Google Analytics event data. Reports - // contain statistics derived from data collected by the Google Analytics - // tracking code. The data returned from the API is as a table with columns - // for the requested dimensions and metrics. Metrics are individual - // measurements of user activity on your property, such as active users or - // event count. Dimensions break down metrics across some common criteria, - // such as country or event name. - rpc RunReport(RunReportRequest) returns (RunReportResponse) { - option (google.api.http) = { - post: "/v1alpha:runReport" - body: "*" - }; - } - - // Returns a customized pivot report of your Google Analytics event data. - // Pivot reports are more advanced and expressive formats than regular - // reports. In a pivot report, dimensions are only visible if they are - // included in a pivot. Multiple pivots can be specified to further dissect - // your data. - rpc RunPivotReport(RunPivotReportRequest) returns (RunPivotReportResponse) { - option (google.api.http) = { - post: "/v1alpha:runPivotReport" - body: "*" - }; - } - - // Returns multiple reports in a batch. All reports must be for the same - // Entity. - rpc BatchRunReports(BatchRunReportsRequest) returns (BatchRunReportsResponse) { - option (google.api.http) = { - post: "/v1alpha:batchRunReports" - body: "*" - }; - } - - // Returns multiple pivot reports in a batch. All reports must be for the same - // Entity. - rpc BatchRunPivotReports(BatchRunPivotReportsRequest) returns (BatchRunPivotReportsResponse) { - option (google.api.http) = { - post: "/v1alpha:batchRunPivotReports" - body: "*" - }; - } - - // Returns metadata for dimensions and metrics available in reporting methods. - // Used to explore the dimensions and metrics. In this method, a Google - // Analytics GA4 Property Identifier is specified in the request, and - // the metadata response includes Custom dimensions and metrics as well as - // Universal metadata. + // Returns a customized funnel report of your Google Analytics event data. The + // data returned from the API is as a table with columns for the requested + // dimensions and metrics. // - // For example if a custom metric with parameter name `levels_unlocked` is - // registered to a property, the Metadata response will contain - // `customEvent:levels_unlocked`. Universal metadata are dimensions and - // metrics applicable to any property such as `country` and `totalUsers`. - rpc GetMetadata(GetMetadataRequest) returns (Metadata) { + // Funnel exploration lets you visualize the steps your users take to complete + // a task and quickly see how well they are succeeding or failing at each + // step. For example, how do prospects become shoppers and then become buyers? + // How do one time buyers become repeat buyers? With this information, you can + // improve inefficient or abandoned customer journeys. To learn more, see [GA4 + // Funnel Explorations](https://support.google.com/analytics/answer/9327974). + rpc RunFunnelReport(RunFunnelReportRequest) returns (RunFunnelReportResponse) { option (google.api.http) = { - get: "/v1alpha/{name=properties/*/metadata}" - }; - option (google.api.method_signature) = "name"; - } - - // The Google Analytics Realtime API returns a customized report of realtime - // event data for your property. These reports show events and usage from the - // last 30 minutes. - rpc RunRealtimeReport(RunRealtimeReportRequest) returns (RunRealtimeReportResponse) { - option (google.api.http) = { - post: "/v1alpha/{property=properties/*}:runRealtimeReport" + post: "/v1alpha/{property=properties/*}:runFunnelReport" body: "*" }; } } -// The dimensions and metrics currently accepted in reporting methods. -message Metadata { - option (google.api.resource) = { - type: "analyticsdata.googleapis.com/Metadata" - pattern: "properties/{property}/metadata" - }; - - // Resource name of this metadata. - string name = 3; - - // The dimension descriptions. - repeated DimensionMetadata dimensions = 1; - - // The metric descriptions. - repeated MetricMetadata metrics = 2; -} - -// The request to generate a report. -message RunReportRequest { - // A property whose events are tracked. Within a batch request, this entity - // should either be unspecified or consistent with the batch-level entity. - Entity entity = 1; - - // The dimensions requested and displayed. - repeated Dimension dimensions = 2; +// The request for a funnel report. +message RunFunnelReportRequest { + // Controls the dimensions present in the funnel visualization sub report + // response. + enum FunnelVisualizationType { + // Unspecified type. + FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED = 0; + + // A standard (stepped) funnel. The funnel visualization sub report in the + // response will not contain date. + STANDARD_FUNNEL = 1; + + // A trended (line chart) funnel. The funnel visualization sub report in the + // response will contain the date dimension. + TRENDED_FUNNEL = 2; + } - // The metrics requested and displayed. - repeated Metric metrics = 3; + // A Google Analytics GA4 property identifier whose events are tracked. + // Specified in the URL path and not the body. To learn more, see [where to + // find your Property + // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + // Within a batch request, this property should either be unspecified or + // consistent with the batch-level property. + // + // Example: properties/1234 + string property = 1; // Date ranges of data to read. If multiple date ranges are requested, each // response row will contain a zero based date range index. If two date // ranges overlap, the event data for the overlapping days is included in the - // response rows for both date ranges. In a cohort request, this `dateRanges` - // must be unspecified. - repeated DateRange date_ranges = 4; - - // The row count of the start row. The first row is counted as row 0. + // response rows for both date ranges. + repeated DateRange date_ranges = 2; + + // The configuration of this request's funnel. This funnel configuration is + // required. + Funnel funnel = 3; + + // If specified, this breakdown adds a dimension to the funnel table sub + // report response. This breakdown dimension expands each funnel step to the + // unique values of the breakdown dimension. For example, a breakdown by the + // `deviceCategory` dimension will create rows for `mobile`, `tablet`, + // `desktop`, and the total. + FunnelBreakdown funnel_breakdown = 4; + + // If specified, next action adds a dimension to the funnel visualization sub + // report response. This next action dimension expands each funnel step to the + // unique values of the next action. For example a breakdown by the + // `eventName` dimension will create rows for several events (i.e. + // `session_start` & `click`) and the total. + FunnelNextAction funnel_next_action = 5; + + // The funnel visualization type controls the dimensions present in the funnel + // visualization sub report response. If not specified, `STANDARD_FUNNEL` is + // used. + FunnelVisualizationType funnel_visualization_type = 6; + + // The configurations of segments. Segments are subsets of a property's data. + // In a funnel report with segments, the funnel is evaluated in each segment. // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - int64 offset = 5; - - // The number of rows to return. If unspecified, 10 rows are returned. If - // -1, all rows are returned. + // Each segment specified in this request + // produces a separate row in the response; in the response, each segment + // identified by its name. // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - int64 limit = 6; - - // Aggregation of metrics. Aggregated metric values will be shown in rows - // where the dimension_values are set to "RESERVED_(MetricAggregation)". - repeated MetricAggregation metric_aggregations = 7; - - // The filter clause of dimensions. Dimensions must be requested to be used in - // this filter. Metrics cannot be used in this filter. - FilterExpression dimension_filter = 8; - - // The filter clause of metrics. Applied at post aggregation phase, similar to - // SQL having-clause. Metrics must be requested to be used in this filter. - // Dimensions cannot be used in this filter. - FilterExpression metric_filter = 9; - - // Specifies how rows are ordered in the response. - repeated OrderBy order_bys = 10; + // The segments parameter is optional. Requests are limited to 4 segments. + repeated Segment segments = 7; - // A currency code in ISO4217 format, such as "AED", "USD", "JPY". - // If the field is empty, the report uses the entity's default currency. - string currency_code = 11; - - // Cohort group associated with this request. If there is a cohort group - // in the request the 'cohort' dimension must be present. - CohortSpec cohort_spec = 12; - - // If false or unspecified, each row with all metrics equal to 0 will not be - // returned. If true, these rows will be returned if they are not separately - // removed by a filter. - bool keep_empty_rows = 13; - - // Toggles whether to return the current state of this Analytics Property's - // quota. Quota is returned in [PropertyQuota](#PropertyQuota). - bool return_property_quota = 14; -} - -// The response report table corresponding to a request. -message RunReportResponse { - // Describes dimension columns. The number of DimensionHeaders and ordering of - // DimensionHeaders matches the dimensions present in rows. - repeated DimensionHeader dimension_headers = 11; - - // Describes metric columns. The number of MetricHeaders and ordering of - // MetricHeaders matches the metrics present in rows. - repeated MetricHeader metric_headers = 1; - - // Rows of dimension value combinations and metric values in the report. - repeated Row rows = 2; - - // If requested, the totaled values of metrics. - repeated Row totals = 8; - - // If requested, the maximum values of metrics. - repeated Row maximums = 9; - - // If requested, the minimum values of metrics. - repeated Row minimums = 10; - - // The total number of rows in the query result, regardless of the number of - // rows returned in the response. For example if a query returns 175 rows and - // includes limit = 50 in the API request, the response will contain row_count - // = 175 but only 50 rows. + // The number of rows to return. If unspecified, 10,000 rows are returned. The + // API returns a maximum of 100,000 rows per request, no matter how many you + // ask for. `limit` must be positive. // - // To learn more about this pagination parameter, see - // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - int32 row_count = 12; - - // Metadata for the report. - ResponseMetaData metadata = 6; - - // This Analytics Property's quota state including this request. - PropertyQuota property_quota = 7; -} - -// The request to generate a pivot report. -message RunPivotReportRequest { - // A property whose events are tracked. Within a batch request, this entity - // should either be unspecified or consistent with the batch-level entity. - Entity entity = 1; - - // The dimensions requested. All defined dimensions must be used by one of the - // following: dimension_expression, dimension_filter, pivots, order_bys. - repeated Dimension dimensions = 2; - - // The metrics requested, at least one metric needs to be specified. All - // defined metrics must be used by one of the following: metric_expression, - // metric_filter, order_bys. - repeated Metric metrics = 3; - - // The filter clause of dimensions. Dimensions must be requested to be used in - // this filter. Metrics cannot be used in this filter. - FilterExpression dimension_filter = 4; - - // The filter clause of metrics. Applied at post aggregation phase, similar to - // SQL having-clause. Metrics must be requested to be used in this filter. - // Dimensions cannot be used in this filter. - FilterExpression metric_filter = 5; - - // Describes the visual format of the report's dimensions in columns or rows. - // The union of the fieldNames (dimension names) in all pivots must be a - // subset of dimension names defined in Dimensions. No two pivots can share a - // dimension. A dimension is only visible if it appears in a pivot. - repeated Pivot pivots = 6; + // The API can also return fewer rows than the requested `limit`, if there + // aren't as many dimension values as the `limit`. + int64 limit = 9; - // The date range to retrieve event data for the report. If multiple date - // ranges are specified, event data from each date range is used in the - // report. A special dimension with field name "dateRange" can be included in - // a Pivot's field names; if included, the report compares between date - // ranges. In a cohort request, this `dateRanges` must be unspecified. - repeated DateRange date_ranges = 7; - - // A currency code in ISO4217 format, such as "AED", "USD", "JPY". - // If the field is empty, the report uses the entity's default currency. - string currency_code = 8; - - // Cohort group associated with this request. If there is a cohort group - // in the request the 'cohort' dimension must be present. - CohortSpec cohort_spec = 9; - - // If false or unspecified, each row with all metrics equal to 0 will not be - // returned. If true, these rows will be returned if they are not separately - // removed by a filter. - bool keep_empty_rows = 10; + // Dimension filters allow you to ask for only specific dimension values in + // the report. To learn more, see [Creating a Report: Dimension + // Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + // for examples. Metrics cannot be used in this filter. + FilterExpression dimension_filter = 10; // Toggles whether to return the current state of this Analytics Property's // quota. Quota is returned in [PropertyQuota](#PropertyQuota). - bool return_property_quota = 11; -} - -// The response pivot report table corresponding to a pivot request. -message RunPivotReportResponse { - // Summarizes the columns and rows created by a pivot. Each pivot in the - // request produces one header in the response. If we have a request like - // this: - // - // "pivots": [{ - // "fieldNames": ["country", - // "city"] - // }, - // { - // "fieldNames": "eventName" - // }] - // - // We will have the following `pivotHeaders` in the response: - // - // "pivotHeaders" : [{ - // "dimensionHeaders": [{ - // "dimensionValues": [ - // { "value": "United Kingdom" }, - // { "value": "London" } - // ] - // }, - // { - // "dimensionValues": [ - // { "value": "Japan" }, - // { "value": "Osaka" } - // ] - // }] - // }, - // { - // "dimensionHeaders": [{ - // "dimensionValues": [{ "value": "session_start" }] - // }, - // { - // "dimensionValues": [{ "value": "scroll" }] - // }] - // }] - repeated PivotHeader pivot_headers = 1; - - // Describes dimension columns. The number of DimensionHeaders and ordering of - // DimensionHeaders matches the dimensions present in rows. - repeated DimensionHeader dimension_headers = 7; - - // Describes metric columns. The number of MetricHeaders and ordering of - // MetricHeaders matches the metrics present in rows. - repeated MetricHeader metric_headers = 2; - - // Rows of dimension value combinations and metric values in the report. - repeated Row rows = 3; - - // Aggregation of metric values. Can be totals, minimums, or maximums. The - // returned aggregations are controlled by the metric_aggregations in the - // pivot. The type of aggregation returned in each row is shown by the - // dimension_values which are set to "RESERVED_". - repeated Row aggregates = 4; - - // Metadata for the report. - ResponseMetaData metadata = 5; - - // This Analytics Property's quota state including this request. - PropertyQuota property_quota = 6; -} - -// The batch request containing multiple report requests. -message BatchRunReportsRequest { - // A property whose events are tracked. This entity must be specified for the - // batch. The entity within RunReportRequest may either be unspecified or - // consistent with this entity. - Entity entity = 1; - - // Individual requests. Each request has a separate report response. Each - // batch request is allowed up to 5 requests. - repeated RunReportRequest requests = 2; -} - -// The batch response containing multiple reports. -message BatchRunReportsResponse { - // Individual responses. Each response has a separate report request. - repeated RunReportResponse reports = 1; -} - -// The batch request containing multiple pivot report requests. -message BatchRunPivotReportsRequest { - // A property whose events are tracked. This entity must be specified for the - // batch. The entity within RunPivotReportRequest may either be unspecified or - // consistent with this entity. - Entity entity = 1; - - // Individual requests. Each request has a separate pivot report response. - // Each batch request is allowed up to 5 requests. - repeated RunPivotReportRequest requests = 2; -} - -// The batch response containing multiple pivot reports. -message BatchRunPivotReportsResponse { - // Individual responses. Each response has a separate pivot report request. - repeated RunPivotReportResponse pivot_reports = 1; + bool return_property_quota = 12; } -// Request for a property's dimension and metric metadata. -message GetMetadataRequest { - // Required. The resource name of the metadata to retrieve. This name field is - // specified in the URL path and not URL parameters. Property is a numeric - // Google Analytics GA4 Property identifier. To learn more, see [where to find - // your Property - // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). +// The funnel report response contains two sub reports. The two sub reports are +// different combinations of dimensions and metrics. +message RunFunnelReportResponse { + // The funnel table is a report with the funnel step, segment, breakdown + // dimension, active users, completion rate, abandonments, and abandonments + // rate. // - // Example: properties/1234/metadata - // - // Set the Property ID to 0 for dimensions and metrics common to all - // properties. In this special mode, this method will not return custom - // dimensions and metrics. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsdata.googleapis.com/Metadata" - } - ]; -} + // The segment dimension is only present in this response if a segment was + // requested. The breakdown dimension is only present in this response if it + // was requested. + FunnelSubReport funnel_table = 1; -// The request to generate a realtime report. -message RunRealtimeReportRequest { - // A Google Analytics GA4 property identifier whose events are tracked. - // Specified in the URL path and not the body. To learn more, see [where to - // find your Property - // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + // The funnel visualization is a report with the funnel step, segment, date, + // next action dimension, and active users. // - // Example: properties/1234 - string property = 1; - - // The dimensions requested and displayed. - repeated Dimension dimensions = 2; - - // The metrics requested and displayed. - repeated Metric metrics = 3; + // The segment dimension is only present in this response if a segment was + // requested. The date dimension is only present in this response if it was + // requested via the `TRENDED_FUNNEL` funnel type. The next action dimension + // is only present in the response if it was requested. + FunnelSubReport funnel_visualization = 2; - // The number of rows to return. If unspecified, 10 rows are returned. If - // -1, all rows are returned. - int64 limit = 4; - - // The filter clause of dimensions. Dimensions must be requested to be used in - // this filter. Metrics cannot be used in this filter. - FilterExpression dimension_filter = 5; - - // The filter clause of metrics. Applied at post aggregation phase, similar to - // SQL having-clause. Metrics must be requested to be used in this filter. - // Dimensions cannot be used in this filter. - FilterExpression metric_filter = 6; - - // Aggregation of metrics. Aggregated metric values will be shown in rows - // where the dimension_values are set to "RESERVED_(MetricAggregation)". - repeated MetricAggregation metric_aggregations = 7; - - // Specifies how rows are ordered in the response. - repeated OrderBy order_bys = 8; - - // Toggles whether to return the current state of this Analytics Property's - // Realtime quota. Quota is returned in [PropertyQuota](#PropertyQuota). - bool return_property_quota = 9; -} - -// The response realtime report table corresponding to a request. -message RunRealtimeReportResponse { - // Describes dimension columns. The number of DimensionHeaders and ordering of - // DimensionHeaders matches the dimensions present in rows. - repeated DimensionHeader dimension_headers = 1; - - // Describes metric columns. The number of MetricHeaders and ordering of - // MetricHeaders matches the metrics present in rows. - repeated MetricHeader metric_headers = 2; - - // Rows of dimension value combinations and metric values in the report. - repeated Row rows = 3; - - // If requested, the totaled values of metrics. - repeated Row totals = 4; - - // If requested, the maximum values of metrics. - repeated Row maximums = 5; - - // If requested, the minimum values of metrics. - repeated Row minimums = 6; - - // The total number of rows in the query result, regardless of the number of - // rows returned in the response. For example if a query returns 175 rows and - // includes limit = 50 in the API request, the response will contain row_count - // = 175 but only 50 rows. - int32 row_count = 7; + // This Analytics Property's quota state including this request. + PropertyQuota property_quota = 3; - // This Analytics Property's Realtime quota state including this request. - PropertyQuota property_quota = 8; + // Identifies what kind of resource this message is. This `kind` is always the + // fixed string "analyticsData#runFunnelReport". Useful to distinguish between + // response types in JSON. + string kind = 4; } diff --git a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto index aafd17689f4..6c566e2004c 100644 --- a/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto +++ b/packages/google-analytics-data/protos/google/analytics/data/v1alpha/data.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.analytics.data.v1alpha; +import "google/protobuf/duration.proto"; + option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data"; option java_multiple_files = true; option java_outer_classname = "ReportingApiProto"; @@ -43,26 +45,19 @@ message DateRange { string name = 3; } -// The unique identifier of the property whose events are tracked. -message Entity { - // A Google Analytics GA4 property id. To learn more, see [where to find your - // Property - // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). - string property_id = 1; -} - // Dimensions are attributes of your data. For example, the dimension city // indicates the city from which an event originates. Dimension values in report -// responses are strings; for example, city could be "Paris" or "New York". -// Requests are allowed up to 8 dimensions. +// responses are strings; for example, the city could be "Paris" or "New York". message Dimension { // The name of the dimension. See the [API // Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) // for the list of dimension names. // // If `dimensionExpression` is specified, `name` can be any string that you - // would like. For example if a `dimensionExpression` concatenates `country` - // and `city`, you could call that dimension `countryAndCity`. + // would like within the allowed character set. For example if a + // `dimensionExpression` concatenates `country` and `city`, you could call + // that dimension `countryAndCity`. Dimension names that you choose must match + // the regular expression `^[a-zA-Z0-9_]$`. // // Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, // `dimensionExpression`, and `pivots`. @@ -115,35 +110,8 @@ message DimensionExpression { } } -// The quantitative measurements of a report. For example, the metric -// `eventCount` is the total number of events. Requests are allowed up to 10 -// metrics. -message Metric { - // The name of the metric. See the [API - // Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) - // for the list of metric names. - // - // If `expression` is specified, `name` can be any string that you would like. - // For example if `expression` is `screenPageViews/sessions`, you could call - // that metric's name = `viewsPerSession`. - // - // Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric - // `expression`. - string name = 1; - - // A mathematical expression for derived metrics. For example, the metric - // Event count per user is `eventCount/totalUsers`. - string expression = 2; - - // Indicates if a metric is invisible in the report response. If a metric is - // invisible, the metric will not produce a column in the response, but can be - // used in `metricFilter`, `orderBys`, or a metric `expression`. - bool invisible = 3; -} - -// To express dimension or metric filters. -// The fields in the same FilterExpression need to be either all dimensions or -// all metrics. +// To express dimension or metric filters. The fields in the same +// FilterExpression need to be either all dimensions or all metrics. message FilterExpression { // Specify one type of filter expression for `FilterExpression`. oneof expr { @@ -156,9 +124,8 @@ message FilterExpression { // The FilterExpression is NOT of not_expression. FilterExpression not_expression = 3; - // A primitive filter. - // All fields in filter in same FilterExpression needs to be either all - // dimensions or metrics. + // A primitive filter. In the same FilterExpression, all of the filter's + // field names need to be either all dimensions or all metrics. Filter filter = 4; } } @@ -171,362 +138,121 @@ message FilterExpressionList { // An expression to filter dimension or metric values. message Filter { - // The filter for string - message StringFilter { - // The match type of a string filter - enum MatchType { - // Unspecified - MATCH_TYPE_UNSPECIFIED = 0; - - // Exact match of the string value. - EXACT = 1; - - // Begins with the string value. - BEGINS_WITH = 2; - - // Ends with the string value. - ENDS_WITH = 3; - - // Contains the string value. - CONTAINS = 4; - - // Full regular expression match with the string value. - FULL_REGEXP = 5; - - // Partial regular expression match with the string value. - PARTIAL_REGEXP = 6; - } - - // The match type for this filter. - MatchType match_type = 1; - - // The string value used for the matching. - string value = 2; - - // If true, the string value is case sensitive. - bool case_sensitive = 3; - } - - // The result needs to be in a list of string values. - message InListFilter { - // The list of string values. - // Must be non-empty. - repeated string values = 1; - - // If true, the string value is case sensitive. - bool case_sensitive = 2; - } - - // Filters for numeric or date values. - message NumericFilter { - // The operation applied to a numeric filter - enum Operation { - // Unspecified. - OPERATION_UNSPECIFIED = 0; - - // Equal - EQUAL = 1; - - // Less than - LESS_THAN = 2; - - // Less than or equal - LESS_THAN_OR_EQUAL = 3; - - // Greater than - GREATER_THAN = 4; - - // Greater than or equal - GREATER_THAN_OR_EQUAL = 5; - } - - // The operation type for this filter. - Operation operation = 1; - - // A numeric value or a date value. - NumericValue value = 2; - } - - // To express that the result needs to be between two numbers (inclusive). - message BetweenFilter { - // Begins with this number. - NumericValue from_value = 1; - - // Ends with this number. - NumericValue to_value = 2; - } - // The dimension name or metric name. Must be a name defined in dimensions // or metrics. string field_name = 1; // Specify one type of filter for `Filter`. oneof one_filter { - // A filter for null values. If True, a null dimension value is matched by - // this filter. Null filter is commonly used inside a NOT filter - // expression. For example, a NOT expression of a null filter removes rows - // when a dimension is null. - bool null_filter = 2; - // Strings related filter. - StringFilter string_filter = 3; + StringFilter string_filter = 2; // A filter for in list values. - InListFilter in_list_filter = 4; + InListFilter in_list_filter = 3; // A filter for numeric or date values. - NumericFilter numeric_filter = 5; + NumericFilter numeric_filter = 4; - // A filter for two values. - BetweenFilter between_filter = 6; + // A filter for between two values. + BetweenFilter between_filter = 5; } } -// The sort options. -message OrderBy { - // Sorts by metric values. - message MetricOrderBy { - // A metric name in the request to order by. - string metric_name = 1; - } +// The filter for string +message StringFilter { + // The match type of a string filter + enum MatchType { + // Unspecified + MATCH_TYPE_UNSPECIFIED = 0; - // Sorts by dimension values. - message DimensionOrderBy { - // Rule to order the string dimension values by. - enum OrderType { - // Unspecified. - ORDER_TYPE_UNSPECIFIED = 0; - - // Alphanumeric sort by Unicode code point. For example, "2" < "A" < "X" < - // "b" < "z". - ALPHANUMERIC = 1; - - // Case insensitive alphanumeric sort by lower case Unicode code point. - // For example, "2" < "A" < "b" < "X" < "z". - CASE_INSENSITIVE_ALPHANUMERIC = 2; - - // Dimension values are converted to numbers before sorting. For example - // in NUMERIC sort, "25" < "100", and in `ALPHANUMERIC` sort, "100" < - // "25". Non-numeric dimension values all have equal ordering value below - // all numeric values. - NUMERIC = 3; - } - - // A dimension name in the request to order by. - string dimension_name = 1; + // Exact match of the string value. + EXACT = 1; - // Controls the rule for dimension value ordering. - OrderType order_type = 2; - } + // Begins with the string value. + BEGINS_WITH = 2; - // Sorts by a pivot column group. - message PivotOrderBy { - // A pair of dimension names and values. Rows with this dimension pivot pair - // are ordered by the metric's value. - // - // For example if pivots = {{"browser", "Chrome"}} and - // metric_name = "Sessions", - // then the rows will be sorted based on Sessions in Chrome. - // - // ---------|----------|----------------|----------|---------------- - // | Chrome | Chrome | Safari | Safari - // ---------|----------|----------------|----------|---------------- - // Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions - // ---------|----------|----------------|----------|---------------- - // US | 2 | 2 | 3 | 1 - // ---------|----------|----------------|----------|---------------- - // Canada | 3 | 1 | 4 | 1 - // ---------|----------|----------------|----------|---------------- - message PivotSelection { - // Must be a dimension name from the request. - string dimension_name = 1; - - // Order by only when the named dimension is this value. - string dimension_value = 2; - } - - // In the response to order by, order rows by this column. Must be a metric - // name from the request. - string metric_name = 1; - - // Used to select a dimension name and value pivot. If multiple pivot - // selections are given, the sort occurs on rows where all pivot selection - // dimension name and value pairs match the row's dimension name and value - // pair. - repeated PivotSelection pivot_selections = 2; - } + // Ends with the string value. + ENDS_WITH = 3; - // Specify one type of order by for `OrderBy`. - oneof one_order_by { - // Sorts results by a metric's values. - MetricOrderBy metric = 1; + // Contains the string value. + CONTAINS = 4; - // Sorts results by a dimension's values. - DimensionOrderBy dimension = 2; + // Full match for the regular expression with the string value. + FULL_REGEXP = 5; - // Sorts results by a metric's values within a pivot column group. - PivotOrderBy pivot = 3; + // Partial match for the regular expression with the string value. + PARTIAL_REGEXP = 6; } - // If true, sorts by descending order. - bool desc = 4; + // The match type for this filter. + MatchType match_type = 1; + + // The string value used for the matching. + string value = 2; + + // If true, the string value is case sensitive. + bool case_sensitive = 3; } -// Describes the visible dimension columns and rows in the report response. -message Pivot { - // Dimension names for visible columns in the report response. Including - // "dateRange" produces a date range column; for each row in the response, - // dimension values in the date range column will indicate the corresponding - // date range from the request. - repeated string field_names = 1; +// The result needs to be in a list of string values. +message InListFilter { + // The list of string values. + // Must be non-empty. + repeated string values = 1; - // Specifies how dimensions are ordered in the pivot. In the first Pivot, the - // OrderBys determine Row and PivotDimensionHeader ordering; in subsequent - // Pivots, the OrderBys determine only PivotDimensionHeader ordering. - // Dimensions specified in these OrderBys must be a subset of - // Pivot.field_names. - repeated OrderBy order_bys = 2; + // If true, the string value is case sensitive. + bool case_sensitive = 2; +} - // The row count of the start row. The first row is counted as row 0. - int64 offset = 3; +// Filters for numeric or date values. +message NumericFilter { + // The operation applied to a numeric filter + enum Operation { + // Unspecified. + OPERATION_UNSPECIFIED = 0; - // The number of rows to return in this pivot. If unspecified, 10 rows are - // returned. If -1, all rows are returned. - int64 limit = 4; + // Equal + EQUAL = 1; - // Aggregate the metrics by dimensions in this pivot using the specified - // metric_aggregations. - repeated MetricAggregation metric_aggregations = 5; -} + // Less than + LESS_THAN = 2; -// Specification of cohorts for a cohort report. -// Cohort reports can be used for example to create a time series of user -// retention for the cohort. For example, you could select the cohort of users -// that were acquired in the first week of September and follow that cohort for -// the next six weeks. Selecting the users acquired in the first week of -// September cohort is specified in the `cohort` object. Following that -// cohort for the next six weeks is specified in the `cohortsRange` object. -// -// The report response could show a weekly time series where say your app has -// retained 60% of this cohort after three weeks and 25% of this cohort after -// six weeks. These two percentages can be calculated by the metric -// `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. -message CohortSpec { - // Defines the selection criteria to group users into cohorts. - // - // Most cohort reports define only a single cohort. If multiple cohorts are - // specified, each cohort can be recognized in the report by their name. - repeated Cohort cohorts = 1; - - // Cohort reports follow cohorts over an extended reporting date range. This - // range specifies an offset duration to follow the cohorts over. - CohortsRange cohorts_range = 2; - - // Optional settings for a cohort report. - CohortReportSettings cohort_report_settings = 3; -} - -// Defines a cohort selection criteria. A cohort is a group of users who share -// a common characteristic. For example, users with the same `firstTouchDate` -// belong to the same cohort. -message Cohort { - // Assigns a name to this cohort. The dimension `cohort` is valued to this - // name in a report response. If set, cannot begin with `cohort_` or - // `RESERVED_`. If not set, cohorts are named by their zero based index - // `cohort_0`, `cohort_1`, etc. - string name = 1; + // Less than or equal + LESS_THAN_OR_EQUAL = 3; - // Dimension used by the cohort. Required and only supports `firstTouchDate`. - string dimension = 2; + // Greater than + GREATER_THAN = 4; - // The cohort selects users whose first touch date is between start date and - // end date defined in the `dateRange`. This `dateRange` does not specify the - // full date range of event data that is present in a cohort report. In a - // cohort report, this `dateRange` is extended by the granularity and offset - // present in the `cohortsRange`; event data for the extended reporting date - // range is present in a cohort report. - // - // In a cohort request, this `dateRange` is required and the `dateRanges` in - // the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. - // - // This `dateRange` should generally be aligned with the cohort's granularity. - // If `CohortsRange` uses daily granularity, this `dateRange` can be a single - // day. If `CohortsRange` uses weekly granularity, this `dateRange` can be - // aligned to a week boundary, starting at Sunday and ending Saturday. If - // `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to - // a month, starting at the first and ending on the last day of the month. - DateRange date_range = 3; -} - -// Configures the extended reporting date range for a cohort report. Specifies -// an offset duration to follow the cohorts over. -message CohortsRange { - // The granularity used to interpret the `startOffset` and `endOffset` for the - // extended reporting date range for a cohort report. - enum Granularity { - // Should never be specified. - GRANULARITY_UNSPECIFIED = 0; - - // Daily granularity. Commonly used if the cohort's `dateRange` is a single - // day and the request contains `cohortNthDay`. - DAILY = 1; - - // Weekly granularity. Commonly used if the cohort's `dateRange` is a week - // in duration (starting on Sunday and ending on Saturday) and the request - // contains `cohortNthWeek`. - WEEKLY = 2; - - // Monthly granularity. Commonly used if the cohort's `dateRange` is a month - // in duration and the request contains `cohortNthMonth`. - MONTHLY = 3; + // Greater than or equal + GREATER_THAN_OR_EQUAL = 5; } - // The granularity used to interpret the `startOffset` and `endOffset` for the - // extended reporting date range for a cohort report. - Granularity granularity = 1; + // The operation type for this filter. + Operation operation = 1; - // `startOffset` specifies the start date of the extended reporting date range - // for a cohort report. `startOffset` is commonly set to 0 so that reports - // contain data from the acquisition of the cohort forward. - // - // If `granularity` is `DAILY`, the `startDate` of the extended reporting date - // range is `startDate` of the cohort plus `startOffset` days. - // - // If `granularity` is `WEEKLY`, the `startDate` of the extended reporting - // date range is `startDate` of the cohort plus `startOffset * 7` days. - // - // If `granularity` is `MONTHLY`, the `startDate` of the extended reporting - // date range is `startDate` of the cohort plus `startOffset * 30` days. - int32 start_offset = 2; - - // `endOffset` specifies the end date of the extended reporting date range - // for a cohort report. `endOffset` can be any positive integer but is - // commonly set to 5 to 10 so that reports contain data on the cohort for the - // next several granularity time periods. - // - // If `granularity` is `DAILY`, the `endDate` of the extended reporting date - // range is `endDate` of the cohort plus `endOffset` days. - // - // If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date - // range is `endDate` of the cohort plus `endOffset * 7` days. - // - // If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date - // range is `endDate` of the cohort plus `endOffset * 30` days. - int32 end_offset = 3; + // A numeric value or a date value. + NumericValue value = 2; } -// Optional settings of a cohort report. -message CohortReportSettings { - // If true, accumulates the result from first touch day to the end day. Not - // supported in `RunReportRequest`. - bool accumulate = 1; +// To express that the result needs to be between two numbers (inclusive). +message BetweenFilter { + // Begins with this number. + NumericValue from_value = 1; + + // Ends with this number. + NumericValue to_value = 2; } -// Response's metadata carrying additional information about the report content. -message ResponseMetaData { - // If true, indicates some buckets of dimension combinations are rolled into - // "(other)" row. This can happen for high cardinality reports. - bool data_loss_from_other_row = 3; +// To represent a number. +message NumericValue { + // One of a numeric value + oneof one_value { + // Integer value + int64 int64_value = 1; + + // Double value + double double_value = 2; + } } // Describes a dimension column in the report. Dimensions requested in a report @@ -550,24 +276,6 @@ message MetricHeader { MetricType type = 2; } -// Dimensions' values in a single pivot. -message PivotHeader { - // The size is the same as the cardinality of the corresponding dimension - // combinations. - repeated PivotDimensionHeader pivot_dimension_headers = 1; - - // The cardinality of the pivot as if offset = 0 and limit = -1. The total - // number of rows for this pivot's fields regardless of how the parameters - // offset and limit are specified in the request. - int32 row_count = 2; -} - -// Summarizes dimension values from a row for this pivot. -message PivotDimensionHeader { - // Values of multiple dimensions in a pivot. - repeated DimensionValue dimension_values = 1; -} - // Report data for each row. // For example if RunReportRequest contains: // @@ -632,18 +340,6 @@ message MetricValue { } } -// To represent a number. -message NumericValue { - // One of a numeric value - oneof one_value { - // Integer value - int64 int64_value = 1; - - // Double value - double double_value = 2; - } -} - // Current state of all quotas for this Analytics Property. If any quota for a // property is exhausted, all requests to that property will return Resource // Exhausted errors. @@ -653,10 +349,10 @@ message PropertyQuota { // consume fewer than 10 tokens. QuotaStatus tokens_per_day = 1; - // Standard Analytics Properties can use up to 5,000 tokens per day; Analytics - // 360 Properties can use 50,000 tokens per day. An API request consumes a - // single number of tokens, and that number is deducted from both the hourly - // and daily quotas. + // Standard Analytics Properties can use up to 5,000 tokens per hour; + // Analytics 360 Properties can use 50,000 tokens per hour. An API request + // consumes a single number of tokens, and that number is deducted from both + // the hourly and daily quotas. QuotaStatus tokens_per_hour = 2; // Standard Analytics Properties can send up to 10 concurrent requests; @@ -667,6 +363,12 @@ message PropertyQuota { // server errors per hour; Analytics 360 Properties and cloud project pairs // can have up to 50 server errors per hour. QuotaStatus server_errors_per_project_per_hour = 4; + + // Analytics Properties can send up to 120 requests with potentially + // thresholded dimensions per hour. In a batch request, each report request + // is individually counted for this quota if the request contains potentially + // thresholded dimensions. + QuotaStatus potentially_thresholded_requests_per_hour = 5; } // Current state for a particular quota group. @@ -678,76 +380,811 @@ message QuotaStatus { int32 remaining = 2; } -// Explains a dimension. -message DimensionMetadata { - // This dimension's name. Useable in [Dimension](#Dimension)'s `name`. For - // example, `eventName`. - string api_name = 1; +// Breakdowns add a dimension to the funnel table sub report response. +message FunnelBreakdown { + // The dimension column added to the funnel table sub report response. The + // breakdown dimension breaks down each funnel step. A valid + // `breakdownDimension` is required if `funnelBreakdown` is specified. + Dimension breakdown_dimension = 1; + + // The maximum number of distinct values of the breakdown dimension to return + // in the response. A `limit` of `5` is used if limit is not specified. Limit + // must exceed zero and cannot exceed 15. + optional int64 limit = 2; +} + +// Next actions state the value for a dimension after the user has achieved +// a step but before the same user has achieved the next step. For example if +// the `nextActionDimension` is `eventName`, then `nextActionDimension` in the +// `i`th funnel step row will return first event after the event that qualified +// the user into the `i`th funnel step but before the user achieved the `i+1`th +// funnel step. +message FunnelNextAction { + // The dimension column added to the funnel visualization sub report response. + // The next action dimension returns the next dimension value of this + // dimension after the user has attained the `i`th funnel step. + // `nextActionDimension` currently only supports the `eventName` dimension. + Dimension next_action_dimension = 1; + + // The maximum number of distinct values of the breakdown dimension to return + // in the response. A `limit` of `5` is used if limit is not specified. Limit + // must exceed zero and cannot exceed 5. + optional int64 limit = 2; +} + +// Configures the funnel in a funnel report request. A funnel reports on users +// as they pass through a sequence of steps. +// +// Funnel exploration lets you visualize the steps your users take to complete a +// task and quickly see how well they are succeeding or failing at each step. +// For example, how do prospects become shoppers and then become buyers? How do +// one time buyers become repeat buyers? With this information, you can improve +// inefficient or abandoned customer journeys. +message Funnel { + // In an open funnel, users can enter the funnel in any step, and in a closed + // funnel, users must enter the funnel in the first step. Optional. If + // unspecified, a closed funnel is used. + bool is_open_funnel = 1; + + // The sequential steps of this funnel. + repeated FunnelStep steps = 2; +} + +// Steps define the user journey you want to measure. Steps contain one or +// more conditions that your users must meet to be included in that step of +// the funnel journey. +message FunnelStep { + // The distinctive name for this step. If unspecified, steps will be named + // by a 1 based indexed name (i.e. "0. ", "1. ", etc.). This name defines + // string value returned by the `funnelStepName` dimension. For example, + // specifying `name = Purchase` in the request's third funnel step will + // produce `3. Purchase` in the funnel report response. + string name = 1; + + // If true, this step must directly follow the previous step. If false, + // there can be events between the previous step and this step. If + // unspecified, `isDirectlyFollowedBy` is treated as false. + bool is_directly_followed_by = 2; + + // If specified, this step must complete within this duration of the + // completion of the prior step. `withinDurationFromPriorStep` is inclusive + // of the endpoint at the microsecond granularity. For example a duration of + // 5 seconds can be completed at 4.9 or 5.0 seconds, but not 5 seconds and 1 + // microsecond. + // + // `withinDurationFromPriorStep` is optional, and if unspecified, steps may + // be separated by any time duration. + optional google.protobuf.Duration within_duration_from_prior_step = 3; + + // The condition that your users must meet to be included in this step of + // the funnel journey. + FunnelFilterExpression filter_expression = 4; +} + +// Funnel sub reports contain the dimension and metric data values. For example, +// 12 users reached the second step of the funnel. +message FunnelSubReport { + // Describes dimension columns. Funnel reports always include the funnel step + // dimension in sub report responses. Additional dimensions like breakdowns, + // dates, and next actions may be present in the response if requested. + repeated DimensionHeader dimension_headers = 1; + + // Describes metric columns. Funnel reports always include active users in sub + // report responses. The funnel table includes additional metrics like + // completion rate, abandonments, and abandonments rate. + repeated MetricHeader metric_headers = 2; + + // Rows of dimension value combinations and metric values in the report. + repeated Row rows = 3; + + // Metadata for the funnel report. + FunnelResponseMetadata metadata = 4; +} + +// User segments are subsets of users who engaged with your site or app. For +// example, users who have previously purchased; users who added items to their +// shopping carts, but didn’t complete a purchase. +message UserSegment { + // Defines which users are included in this segment. Optional. + UserSegmentCriteria user_inclusion_criteria = 1; + + // Defines which users are excluded in this segment. Optional. + UserSegmentExclusion exclusion = 2; +} + +// A user matches a criteria if the user's events meet the conditions in the +// criteria. +message UserSegmentCriteria { + // A user matches this criteria if the user matches each of these + // `andConditionGroups` and each of the `andSequenceGroups`. + // `andConditionGroups` may be empty if `andSequenceGroups` are specified. + repeated UserSegmentConditionGroup and_condition_groups = 1; + + // A user matches this criteria if the user matches each of these + // `andSequenceGroups` and each of the `andConditionGroups`. + // `andSequenceGroups` may be empty if `andConditionGroups` are specified. + repeated UserSegmentSequenceGroup and_sequence_groups = 2; +} + +// Scoping specifies which events are considered when evaluating if a user +// meets a criteria. +enum UserCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + USER_CRITERIA_SCOPING_UNSPECIFIED = 0; + + // If the criteria is satisfied within one event, the user matches the + // criteria. + USER_CRITERIA_WITHIN_SAME_EVENT = 1; + + // If the criteria is satisfied within one session, the user matches the + // criteria. + USER_CRITERIA_WITHIN_SAME_SESSION = 2; + + // If the criteria is satisfied by any events for the user, the user + // matches the criteria. + USER_CRITERIA_ACROSS_ALL_SESSIONS = 3; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message UserSegmentConditionGroup { + // Data is included or excluded from the segment based on if it matches + // the condition group. This scoping defines how many events the + // `segmentFilterExpression` is evaluated on before the condition group + // is determined to be matched or not. For example if `conditionScoping = + // USER_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all + // events in a session, and then, the condition group is determined to be + // matched or not for this user. For example if `conditionScoping = + // USER_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a single + // event, and then, the condition group is determined to be matched or not for + // this user. + // + // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is + // used. + UserCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Define conditions that must occur in a specific order for the user to be +// a member of the segment. +message UserSegmentSequenceGroup { + // All sequence steps must be satisfied in the scoping for the user to + // match the sequence. For example if `sequenceScoping = + // USER_CRITERIA_WITHIN_SAME_SESSION`, all sequence steps must complete within + // one session for the user to match the sequence. `sequenceScoping = + // USER_CRITERIA_WITHIN_SAME_EVENT` is not supported. + // + // Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is + // used. + UserCriteriaScoping sequence_scoping = 1; + + // Defines the time period in which the whole sequence must occur; for + // example, 30 Minutes. `sequenceMaximumDuration` is inclusive + // of the endpoint at the microsecond granularity. For example a sequence + // with a maximum duration of 5 seconds can be completed at 4.9 or 5.0 + // seconds, but not 5 seconds and 1 microsecond. + // + // `sequenceMaximumDuration` is optional, and if unspecified, sequences can + // be completed in any time duration. + google.protobuf.Duration sequence_maximum_duration = 2; + + // An ordered sequence of condition steps. A user's events must complete + // each step in order for the user to match the + // `UserSegmentSequenceGroup`. + repeated UserSequenceStep user_sequence_steps = 3; +} + +// A condition that must occur in the specified step order for this user +// to match the sequence. +message UserSequenceStep { + // If true, the event satisfying this step must be the very next event + // after the event satifying the last step. If false, this step indirectly + // follows the prior step; for example, there may be events between the + // prior step and this step. `isDirectlyFollowedBy` must be false for + // the first step. + bool is_directly_followed_by = 1; + + // This sequence step must be satisfied in the scoping for the user to + // match the sequence. For example if `sequenceScoping = + // WITHIN_SAME_SESSION`, this sequence steps must complete within one + // session for the user to match the sequence. `stepScoping = + // ACROSS_ALL_SESSIONS` is only allowed if the `sequenceScoping = + // ACROSS_ALL_SESSIONS`. + // + // Optional. If unspecified, `stepScoping` uses the same + // `UserCriteriaScoping` as the `sequenceScoping`. + UserCriteriaScoping step_scoping = 2; + + // A user matches this sequence step if their events match this + // expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 3; +} + +// Specifies which users are excluded in this segment. +message UserSegmentExclusion { + // Specifies how long an exclusion will last if a user matches the + // `userExclusionCriteria`. + // + // Optional. If unspecified, `userExclusionDuration` of + // `USER_EXCLUSION_TEMPORARY` is used. + UserExclusionDuration user_exclusion_duration = 1; + + // If a user meets this condition, the user is excluded from membership in + // the segment for the `userExclusionDuration`. + UserSegmentCriteria user_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if a user matches +// the `userExclusionCriteria`. +enum UserExclusionDuration { + // Unspecified exclusion duration. Do not specify. + USER_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Temporarily exclude users from the segment during periods when the + // user meets the `userExclusionCriteria` condition. + USER_EXCLUSION_TEMPORARY = 1; + + // Permanently exclude users from the segment if the user ever meets the + // `userExclusionCriteria` condition. + USER_EXCLUSION_PERMANENT = 2; +} + +// Session segments are subsets of the sessions that occurred on your site or +// app: for example, all the sessions that originated from a particular +// advertising campaign. +message SessionSegment { + // Defines which sessions are included in this segment. Optional. + SessionSegmentCriteria session_inclusion_criteria = 1; + + // Defines which sessions are excluded in this segment. Optional. + SessionSegmentExclusion exclusion = 2; +} + +// A session matches a criteria if the session's events meet the conditions in +// the criteria. +message SessionSegmentCriteria { + // A session matches this criteria if the session matches each of these + // `andConditionGroups`. + repeated SessionSegmentConditionGroup and_condition_groups = 1; +} + +// Scoping specifies which events are considered when evaluating if a +// session meets a criteria. +enum SessionCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + SESSION_CRITERIA_SCOPING_UNSPECIFIED = 0; - // This dimension's name within the Google Analytics user interface. For - // example, `Event name`. - string ui_name = 2; + // If the criteria is satisfied within one event, the session matches the + // criteria. + SESSION_CRITERIA_WITHIN_SAME_EVENT = 1; - // Description of how this dimension is used and calculated. - string description = 3; + // If the criteria is satisfied within one session, the session matches + // the criteria. + SESSION_CRITERIA_WITHIN_SAME_SESSION = 2; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message SessionSegmentConditionGroup { + // Data is included or excluded from the segment based on if it matches + // the condition group. This scoping defines how many events the + // `segmentFilterExpression` is evaluated on before the condition group + // is determined to be matched or not. For example if `conditionScoping = + // SESSION_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all + // events in a session, and then, the condition group is determined to be + // matched or not for this session. For example if `conditionScoping = + // SESSION_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a + // single event, and then, the condition group is determined to be matched or + // not for this session. + // + // Optional. If unspecified, a `conditionScoping` of `WITHIN_SAME_SESSION` + // is used. + SessionCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Specifies which sessions are excluded in this segment. +message SessionSegmentExclusion { + // Specifies how long an exclusion will last if a session matches the + // `sessionExclusionCriteria`. + // + // Optional. If unspecified, a `sessionExclusionDuration` of + // `SESSION_EXCLUSION_TEMPORARY` is used. + SessionExclusionDuration session_exclusion_duration = 1; + + // If a session meets this condition, the session is excluded from + // membership in the segment for the `sessionExclusionDuration`. + SessionSegmentCriteria session_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if a session +// matches the `sessionExclusionCriteria`. +enum SessionExclusionDuration { + // Unspecified exclusion duration. Do not specify. + SESSION_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Temporarily exclude sessions from the segment during periods when the + // session meets the `sessionExclusionCriteria` condition. + SESSION_EXCLUSION_TEMPORARY = 1; + + // Permanently exclude sessions from the segment if the session ever meets + // the `sessionExclusionCriteria` condition. + SESSION_EXCLUSION_PERMANENT = 2; +} + +// Event segments are subsets of events that were triggered on your site or app. +// for example, all purchase events made in a particular location; app_exception +// events that occurred on a specific operating system. +message EventSegment { + // Defines which events are included in this segment. Optional. + EventSegmentCriteria event_inclusion_criteria = 1; + + // Defines which events are excluded in this segment. Optional. + EventSegmentExclusion exclusion = 2; +} + +// An event matches a criteria if the event meet the conditions in the +// criteria. +message EventSegmentCriteria { + // An event matches this criteria if the event matches each of these + // `andConditionGroups`. + repeated EventSegmentConditionGroup and_condition_groups = 1; +} + +// Scoping specifies which events are considered when evaluating if an event +// meets a criteria. +enum EventCriteriaScoping { + // Unspecified criteria scoping. Do not specify. + EVENT_CRITERIA_SCOPING_UNSPECIFIED = 0; + + // If the criteria is satisfied within one event, the event matches the + // criteria. + EVENT_CRITERIA_WITHIN_SAME_EVENT = 1; +} + +// Conditions tell Analytics what data to include in or exclude from the +// segment. +message EventSegmentConditionGroup { + // `conditionScoping` should always be `EVENT_CRITERIA_WITHIN_SAME_EVENT`. + // + // Optional. If unspecified, a `conditionScoping` of + // `EVENT_CRITERIA_WITHIN_SAME_EVENT` is used. + EventCriteriaScoping condition_scoping = 1; + + // Data is included or excluded from the segment based on if it matches + // this expression. Expressions express criteria on dimension, metrics, + // and/or parameters. + SegmentFilterExpression segment_filter_expression = 2; +} + +// Specifies which events are excluded in this segment. +message EventSegmentExclusion { + // `eventExclusionDuration` should always be `PERMANENTLY_EXCLUDE`. + // + // Optional. If unspecified, an `eventExclusionDuration` of + // `EVENT_EXCLUSION_PERMANENT` is used. + EventExclusionDuration event_exclusion_duration = 1; + + // If an event meets this condition, the event is excluded from membership + // in the segment for the `eventExclusionDuration`. + EventSegmentCriteria event_exclusion_criteria = 2; +} + +// Enumerates options for how long an exclusion will last if an event +// matches the `eventExclusionCriteria`. +enum EventExclusionDuration { + // Unspecified exclusion duration. Do not specify. + EVENT_EXCLUSION_DURATION_UNSPECIFIED = 0; + + // Permanently exclude events from the segment if the event ever meets + // the `eventExclusionCriteria` condition. + EVENT_EXCLUSION_PERMANENT = 1; +} + +// A segment is a subset of your Analytics data. For example, of your entire set +// of users, one segment might be users from a particular country or city. +// Another segment might be users who purchase a particular line of products or +// who visit a specific part of your site or trigger certain events in your app. +// +// To learn more, see [GA4 Segment +// Builder](https://support.google.com/analytics/answer/9304353). +message Segment { + // The name for this segment. If unspecified, segments are named "Segment". + // This name defines string value returned by the `segment` dimension. The + // `segment` dimension prefixes segment names by the 1-based index number of + // the segment in the request (i.e. "1. Segment", "2. Segment", etc.). + string name = 1; + + // A segment is specified in one scope. + oneof one_segment_scope { + // User segments are subsets of users who engaged with your site or app. + UserSegment user_segment = 2; + + // Session segments are subsets of the sessions that occurred on your site + // or app. + SessionSegment session_segment = 3; + + // Event segments are subsets of events that were triggered on your site or + // app. + EventSegment event_segment = 4; + } +} + +// Expresses combinations of segment filters. +message SegmentFilterExpression { + // Specify one type of filter for `SegmentFilterExpression`. + oneof expr { + // The SegmentFilterExpression in `andGroup` have an AND relationship. + SegmentFilterExpressionList and_group = 1; + + // The SegmentFilterExpression in `orGroup` have an OR relationship. + SegmentFilterExpressionList or_group = 2; + + // The SegmentFilterExpression is NOT of `notExpression`. + SegmentFilterExpression not_expression = 3; + + // A primitive segment filter. + SegmentFilter segment_filter = 4; + + // Creates a filter that matches events of a single event name. If a + // parameter filter expression is specified, only the subset of events that + // match both the single event name and the parameter filter expressions + // match this event filter. + SegmentEventFilter segment_event_filter = 5; + } +} + +// A list of segment filter expressions. +message SegmentFilterExpressionList { + // The list of segment filter expressions + repeated SegmentFilterExpression expressions = 1; +} + +// An expression to filter dimension or metric values. +message SegmentFilter { + // The dimension name or metric name. + string field_name = 1; + + // Specify one type of filter for `Filter`. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } + + // Specifies the scope for the filter. + SegmentFilterScoping filter_scoping = 8; +} + +// Scopings specify how the dimensions & metrics of multiple events +// should be considered when evaluating a segment filter. +message SegmentFilterScoping { + // If `atAnyPointInTime` is true, this filter evaluates to true for all + // events if it evaluates to true for any event in the date range of the + // request. + // + // This `atAnyPointInTime` parameter does not extend the date range of + // events in the report. If `atAnyPointInTime` is true, only events within + // the report's date range are considered when evaluating this filter. + // + // This `atAnyPointInTime` is only able to be specified if the criteria + // scoping is `ACROSS_ALL_SESSIONS` and is not able to be specified in + // sequences. + // + // If the criteria scoping is `ACROSS_ALL_SESSIONS`, `atAnyPointInTime` = + // false is used if unspecified. + optional bool at_any_point_in_time = 1; +} + +// Creates a filter that matches events of a single event name. If a parameter +// filter expression is specified, only the subset of events that match both the +// single event name and the parameter filter expressions match this event +// filter. +message SegmentEventFilter { + // This filter matches events of this single event name. Event name is + // required. + optional string event_name = 1; + + // If specified, this filter matches events that match both the single event + // name and the parameter filter expressions. + // + // Inside the parameter filter expression, only parameter filters are + // available. + optional SegmentParameterFilterExpression segment_parameter_filter_expression = 2; +} + +// Expresses combinations of segment filter on parameters. +message SegmentParameterFilterExpression { + // Specify one type of filter for `SegmentParameterFilterExpression`. + oneof expr { + // The SegmentParameterFilterExpression in `andGroup` have an AND + // relationship. + SegmentParameterFilterExpressionList and_group = 1; + + // The SegmentParameterFilterExpression in `orGroup` have an OR + // relationship. + SegmentParameterFilterExpressionList or_group = 2; + + // The SegmentParameterFilterExpression is NOT of `notExpression`. + SegmentParameterFilterExpression not_expression = 3; + + // A primitive segment parameter filter. + SegmentParameterFilter segment_parameter_filter = 4; + } +} + +// A list of segment parameter filter expressions. +message SegmentParameterFilterExpressionList { + // The list of segment parameter filter expressions. + repeated SegmentParameterFilterExpression expressions = 1; +} + +// An expression to filter parameter values in a segment. +message SegmentParameterFilter { + // The field that is being filtered. + oneof one_parameter { + // This filter will be evaluated on the specified event parameter. Event + // parameters are logged as parameters of the event. Event parameters + // include fields like "firebase_screen" & "currency". + // + // Event parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + string event_parameter_name = 1; + + // This filter will be evaluated on the specified item parameter. Item + // parameters are logged as parameters in the item array. Item parameters + // include fields like "item_name" & "item_category". + // + // Item parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + // + // Item parameters are only available in ecommerce events. To learn more + // about ecommerce events, see the [Measure ecommerce] + // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) + // guide. + string item_parameter_name = 2; + } + + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } + + // Specifies the scope for the filter. + SegmentParameterFilterScoping filter_scoping = 8; +} + +// Scopings specify how multiple events should be considered when evaluating a +// segment parameter filter. +message SegmentParameterFilterScoping { + // Accumulates the parameter over the specified period of days before + // applying the filter. Only supported if criteria scoping is + // `ACROSS_ALL_SESSIONS` or `WITHIN_SAME_SESSION`. Only supported if the + // parameter is `event_count`. + // + // For example if `inAnyNDayPeriod` is 3, the event_name is "purchase", + // the event parameter is "event_count", and the Filter's criteria is + // greater than 5, this filter will accumulate the event count of purchase + // events over every 3 consecutive day period in the report's date range; a + // user will pass this Filter's criteria to be included in this segment if + // their count of purchase events exceeds 5 in any 3 consecutive day period. + // For example, the periods 2021-11-01 to 2021-11-03, 2021-11-02 to + // 2021-11-04, 2021-11-03 to 2021-11-05, and etc. will be considered. + // + // The date range is not extended for the purpose of having a full N day + // window near the start of the date range. For example if a report is for + // 2021-11-01 to 2021-11-10 and `inAnyNDayPeriod` = 3, the first two day + // period will be effectively shortened because no event data outside the + // report's date range will be read. For example, the first four periods + // will effectively be: 2021-11-01 to 2021-11-01, 2021-11-01 to 2021-11-02, + // 2021-11-01 to 2021-11-03, and 2021-11-02 to 2021-11-04. + // + // `inAnyNDayPeriod` is optional. If not specified, the + // `segmentParameterFilter` is applied to each event individually. + optional int64 in_any_n_day_period = 1; +} + +// Expresses combinations of funnel filters. +message FunnelFilterExpression { + // Specify one type of filter for `FunnelFilterExpression`. + oneof expr { + // The FunnelFilterExpression in `andGroup` have an AND relationship. + FunnelFilterExpressionList and_group = 1; + + // The FunnelFilterExpression in `orGroup` have an OR relationship. + FunnelFilterExpressionList or_group = 2; + + // The FunnelFilterExpression is NOT of `notExpression`. + FunnelFilterExpression not_expression = 3; - // Still usable but deprecated names for this dimension. If populated, this - // dimension is available by either `apiName` or one of `deprecatedApiNames` - // for a period of time. After the deprecation period, the dimension will be - // available only by `apiName`. - repeated string deprecated_api_names = 4; + // A primitive funnel filter. + FunnelFilter funnel_filter = 4; - // True if the dimension is a custom dimension for this property. - bool custom_definition = 5; + // Creates a filter that matches events of a single event name. If a + // parameter filter expression is specified, only the subset of events that + // match both the single event name and the parameter filter expressions + // match this event filter. + FunnelEventFilter funnel_event_filter = 5; + } } -// Explains a metric. -message MetricMetadata { - // A metric name. Useable in [Metric](#Metric)'s `name`. For example, - // `eventCount`. - string api_name = 1; +// A list of funnel filter expressions. +message FunnelFilterExpressionList { + // The list of funnel filter expressions. + repeated FunnelFilterExpression expressions = 1; +} - // This metric's name within the Google Analytics user interface. For example, - // `Event count`. - string ui_name = 2; +// An expression to filter dimension or metric values. +message FunnelFilter { + // The dimension name or metric name. + string field_name = 1; - // Description of how this metric is used and calculated. - string description = 3; + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; - // Still usable but deprecated names for this metric. If populated, this - // metric is available by either `apiName` or one of `deprecatedApiNames` - // for a period of time. After the deprecation period, the metric will be - // available only by `apiName`. - repeated string deprecated_api_names = 4; + // A filter for in list values. + InListFilter in_list_filter = 5; - // The type of this metric. - MetricType type = 5; + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; - // The mathematical expression for this derived metric. Can be used in - // [Metric](#Metric)'s `expression` field for equivalent reports. Most metrics - // are not expressions, and for non-expressions, this field is empty. - string expression = 6; + // A filter for between two values. + BetweenFilter between_filter = 7; + } +} - // True if the metric is a custom metric for this property. - bool custom_definition = 7; +// Creates a filter that matches events of a single event name. If a parameter +// filter expression is specified, only the subset of events that match both the +// single event name and the parameter filter expressions match this event +// filter. +message FunnelEventFilter { + // This filter matches events of this single event name. Event name is + // required. + optional string event_name = 1; + + // If specified, this filter matches events that match both the single event + // name and the parameter filter expressions. + // + // Inside the parameter filter expression, only parameter filters are + // available. + optional FunnelParameterFilterExpression funnel_parameter_filter_expression = 2; } -// Represents aggregation of metrics. -enum MetricAggregation { - // Unspecified operator. - METRIC_AGGREGATION_UNSPECIFIED = 0; +// Expresses combinations of funnel filters on parameters. +message FunnelParameterFilterExpression { + // Specify one type of filter for `FunnelParameterFilterExpression`. + oneof expr { + // The FunnelParameterFilterExpression in `andGroup` have an AND + // relationship. + FunnelParameterFilterExpressionList and_group = 1; - // SUM operator. - TOTAL = 1; + // The FunnelParameterFilterExpression in `orGroup` have an OR + // relationship. + FunnelParameterFilterExpressionList or_group = 2; - // Minimum operator. - MINIMUM = 5; + // The FunnelParameterFilterExpression is NOT of `notExpression`. + FunnelParameterFilterExpression not_expression = 3; - // Maximum operator. - MAXIMUM = 6; + // A primitive funnel parameter filter. + FunnelParameterFilter funnel_parameter_filter = 4; + } +} - // Count operator. - COUNT = 4; +// A list of funnel parameter filter expressions. +message FunnelParameterFilterExpressionList { + // The list of funnel parameter filter expressions. + repeated FunnelParameterFilterExpression expressions = 1; +} + +// An expression to filter parameter values in a funnel. +message FunnelParameterFilter { + // The field that is being filtered. + oneof one_parameter { + // This filter will be evaluated on the specified event parameter. Event + // parameters are logged as parameters of the event. Event parameters + // include fields like "firebase_screen" & "currency". + // + // Event parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + string event_parameter_name = 1; + + // This filter will be evaluated on the specified item parameter. Item + // parameters are logged as parameters in the item array. Item parameters + // include fields like "item_name" & "item_category". + // + // Item parameters can only be used in segments & funnels and can only be + // used in a descendent filter from an EventFilter. In a descendent filter + // from an EventFilter either event or item parameters should be used. + // + // Item parameters are only available in ecommerce events. To learn more + // about ecommerce events, see the [Measure ecommerce] + // (https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) + // guide. + string item_parameter_name = 2; + } + + // Specify one type of filter. + oneof one_filter { + // Strings related filter. + StringFilter string_filter = 4; + + // A filter for in list values. + InListFilter in_list_filter = 5; + + // A filter for numeric or date values. + NumericFilter numeric_filter = 6; + + // A filter for between two values. + BetweenFilter between_filter = 7; + } +} + +// The funnel report's response metadata carries additional information about +// the funnel report. +message FunnelResponseMetadata { + // If funnel report results are + // [sampled](https://support.google.com/analytics/answer/2637192), this + // describes what percentage of events were used in this funnel report. One + // `samplingMetadatas` is populated for each date range. Each + // `samplingMetadatas` corresponds to a date range in order that date ranges + // were specified in the request. + // + // However if the results are not sampled, this field will not be defined. + repeated SamplingMetadata sampling_metadatas = 1; +} + +// If funnel report results are +// [sampled](https://support.google.com/analytics/answer/2637192), this +// metadata describes what percentage of events were used in this funnel +// report for a date range. Sampling is the practice of analyzing a subset of +// all data in order to uncover the meaningful information in the larger data +// set. +message SamplingMetadata { + // The total number of events read in this sampled report for a date range. + // This is the size of the subset this property's data that was analyzed in + // this funnel report. + int64 samples_read_count = 1; + + // The total number of events present in this property's data that could + // have been analyzed in this funnel report for a date range. Sampling + // uncovers the meaningful information about the larger data set, and this + // is the size of the larger data set. + // + // To calculate the percentage of available data that was used in this + // funnel report, compute `samplesReadCount/samplingSpaceSize`. + int64 sampling_space_size = 2; } // A metric's value type. diff --git a/packages/google-analytics-data/protos/protos.d.ts b/packages/google-analytics-data/protos/protos.d.ts index 6c95a71d19b..84c7cd2833e 100644 --- a/packages/google-analytics-data/protos/protos.d.ts +++ b/packages/google-analytics-data/protos/protos.d.ts @@ -17,4493 +17,5055 @@ import {protobuf as $protobuf} from "google-gax"; /** Namespace google. */ export namespace google { - /** Namespace analytics. */ - namespace analytics { + /** Namespace protobuf. */ + namespace protobuf { - /** Namespace data. */ - namespace data { + /** Properties of a Duration. */ + interface IDuration { - /** Namespace v1alpha. */ - namespace v1alpha { + /** Duration seconds */ + seconds?: (number|Long|string|null); - /** Represents an AlphaAnalyticsData */ - class AlphaAnalyticsData extends $protobuf.rpc.Service { + /** Duration nanos */ + nanos?: (number|null); + } - /** - * Constructs a new AlphaAnalyticsData service. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + /** Represents a Duration. */ + class Duration implements IDuration { - /** - * Creates new AlphaAnalyticsData service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): AlphaAnalyticsData; + /** + * Constructs a new Duration. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IDuration); - /** - * Calls RunReport. - * @param request RunReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunReportResponse - */ - public runReport(request: google.analytics.data.v1alpha.IRunReportRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.RunReportCallback): void; + /** Duration seconds. */ + public seconds: (number|Long|string); - /** - * Calls RunReport. - * @param request RunReportRequest message or plain object - * @returns Promise - */ - public runReport(request: google.analytics.data.v1alpha.IRunReportRequest): Promise; + /** Duration nanos. */ + public nanos: number; - /** - * Calls RunPivotReport. - * @param request RunPivotReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunPivotReportResponse - */ - public runPivotReport(request: google.analytics.data.v1alpha.IRunPivotReportRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.RunPivotReportCallback): void; + /** + * Creates a new Duration instance using the specified properties. + * @param [properties] Properties to set + * @returns Duration instance + */ + public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration; - /** - * Calls RunPivotReport. - * @param request RunPivotReportRequest message or plain object - * @returns Promise - */ - public runPivotReport(request: google.analytics.data.v1alpha.IRunPivotReportRequest): Promise; + /** + * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @param message Duration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Calls BatchRunReports. - * @param request BatchRunReportsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchRunReportsResponse - */ - public batchRunReports(request: google.analytics.data.v1alpha.IBatchRunReportsRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.BatchRunReportsCallback): void; + /** + * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @param message Duration message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Calls BatchRunReports. - * @param request BatchRunReportsRequest message or plain object - * @returns Promise - */ - public batchRunReports(request: google.analytics.data.v1alpha.IBatchRunReportsRequest): Promise; + /** + * Decodes a Duration message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Duration; - /** - * Calls BatchRunPivotReports. - * @param request BatchRunPivotReportsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse - */ - public batchRunPivotReports(request: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.BatchRunPivotReportsCallback): void; + /** + * Decodes a Duration message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Duration; - /** - * Calls BatchRunPivotReports. - * @param request BatchRunPivotReportsRequest message or plain object - * @returns Promise - */ - public batchRunPivotReports(request: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest): Promise; + /** + * Verifies a Duration message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Calls GetMetadata. - * @param request GetMetadataRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Metadata - */ - public getMetadata(request: google.analytics.data.v1alpha.IGetMetadataRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadataCallback): void; + /** + * Creates a Duration message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Duration + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.Duration; - /** - * Calls GetMetadata. - * @param request GetMetadataRequest message or plain object - * @returns Promise - */ - public getMetadata(request: google.analytics.data.v1alpha.IGetMetadataRequest): Promise; + /** + * Creates a plain object from a Duration message. Also converts values to other types if specified. + * @param message Duration + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Calls RunRealtimeReport. - * @param request RunRealtimeReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunRealtimeReportResponse - */ - public runRealtimeReport(request: google.analytics.data.v1alpha.IRunRealtimeReportRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.RunRealtimeReportCallback): void; + /** + * Converts this Duration to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Calls RunRealtimeReport. - * @param request RunRealtimeReportRequest message or plain object - * @returns Promise - */ - public runRealtimeReport(request: google.analytics.data.v1alpha.IRunRealtimeReportRequest): Promise; - } + /** Properties of a FileDescriptorSet. */ + interface IFileDescriptorSet { - namespace AlphaAnalyticsData { + /** FileDescriptorSet file */ + file?: (google.protobuf.IFileDescriptorProto[]|null); + } - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runReport}. - * @param error Error, if any - * @param [response] RunReportResponse - */ - type RunReportCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.RunReportResponse) => void; + /** Represents a FileDescriptorSet. */ + class FileDescriptorSet implements IFileDescriptorSet { - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runPivotReport}. - * @param error Error, if any - * @param [response] RunPivotReportResponse - */ - type RunPivotReportCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.RunPivotReportResponse) => void; + /** + * Constructs a new FileDescriptorSet. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileDescriptorSet); - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#batchRunReports}. - * @param error Error, if any - * @param [response] BatchRunReportsResponse - */ - type BatchRunReportsCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.BatchRunReportsResponse) => void; + /** FileDescriptorSet file. */ + public file: google.protobuf.IFileDescriptorProto[]; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#batchRunPivotReports}. - * @param error Error, if any - * @param [response] BatchRunPivotReportsResponse - */ - type BatchRunPivotReportsCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.BatchRunPivotReportsResponse) => void; + /** + * Creates a new FileDescriptorSet instance using the specified properties. + * @param [properties] Properties to set + * @returns FileDescriptorSet instance + */ + public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#getMetadata}. - * @param error Error, if any - * @param [response] Metadata - */ - type GetMetadataCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.Metadata) => void; + /** + * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @param message FileDescriptorSet message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runRealtimeReport}. - * @param error Error, if any - * @param [response] RunRealtimeReportResponse - */ - type RunRealtimeReportCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.RunRealtimeReportResponse) => void; - } + /** + * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @param message FileDescriptorSet message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a Metadata. */ - interface IMetadata { + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet; - /** Metadata name */ - name?: (string|null); + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet; - /** Metadata dimensions */ - dimensions?: (google.analytics.data.v1alpha.IDimensionMetadata[]|null); + /** + * Verifies a FileDescriptorSet message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Metadata metrics */ - metrics?: (google.analytics.data.v1alpha.IMetricMetadata[]|null); - } + /** + * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileDescriptorSet + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet; - /** Represents a Metadata. */ - class Metadata implements IMetadata { + /** + * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. + * @param message FileDescriptorSet + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Constructs a new Metadata. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IMetadata); + /** + * Converts this FileDescriptorSet to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Metadata name. */ - public name: string; + /** Properties of a FileDescriptorProto. */ + interface IFileDescriptorProto { - /** Metadata dimensions. */ - public dimensions: google.analytics.data.v1alpha.IDimensionMetadata[]; + /** FileDescriptorProto name */ + name?: (string|null); - /** Metadata metrics. */ - public metrics: google.analytics.data.v1alpha.IMetricMetadata[]; + /** FileDescriptorProto package */ + "package"?: (string|null); - /** - * Creates a new Metadata instance using the specified properties. - * @param [properties] Properties to set - * @returns Metadata instance - */ - public static create(properties?: google.analytics.data.v1alpha.IMetadata): google.analytics.data.v1alpha.Metadata; + /** FileDescriptorProto dependency */ + dependency?: (string[]|null); - /** - * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. - * @param message Metadata message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileDescriptorProto publicDependency */ + publicDependency?: (number[]|null); - /** - * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. - * @param message Metadata message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileDescriptorProto weakDependency */ + weakDependency?: (number[]|null); - /** - * Decodes a Metadata message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Metadata - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Metadata; + /** FileDescriptorProto messageType */ + messageType?: (google.protobuf.IDescriptorProto[]|null); - /** - * Decodes a Metadata message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Metadata - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Metadata; + /** FileDescriptorProto enumType */ + enumType?: (google.protobuf.IEnumDescriptorProto[]|null); - /** - * Verifies a Metadata message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FileDescriptorProto service */ + service?: (google.protobuf.IServiceDescriptorProto[]|null); - /** - * Creates a Metadata message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Metadata - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Metadata; + /** FileDescriptorProto extension */ + extension?: (google.protobuf.IFieldDescriptorProto[]|null); - /** - * Creates a plain object from a Metadata message. Also converts values to other types if specified. - * @param message Metadata - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FileDescriptorProto options */ + options?: (google.protobuf.IFileOptions|null); - /** - * Converts this Metadata to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FileDescriptorProto sourceCodeInfo */ + sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); - /** Properties of a RunReportRequest. */ - interface IRunReportRequest { + /** FileDescriptorProto syntax */ + syntax?: (string|null); + } - /** RunReportRequest entity */ - entity?: (google.analytics.data.v1alpha.IEntity|null); + /** Represents a FileDescriptorProto. */ + class FileDescriptorProto implements IFileDescriptorProto { - /** RunReportRequest dimensions */ - dimensions?: (google.analytics.data.v1alpha.IDimension[]|null); + /** + * Constructs a new FileDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileDescriptorProto); - /** RunReportRequest metrics */ - metrics?: (google.analytics.data.v1alpha.IMetric[]|null); + /** FileDescriptorProto name. */ + public name: string; - /** RunReportRequest dateRanges */ - dateRanges?: (google.analytics.data.v1alpha.IDateRange[]|null); + /** FileDescriptorProto package. */ + public package: string; - /** RunReportRequest offset */ - offset?: (number|Long|string|null); + /** FileDescriptorProto dependency. */ + public dependency: string[]; - /** RunReportRequest limit */ - limit?: (number|Long|string|null); + /** FileDescriptorProto publicDependency. */ + public publicDependency: number[]; - /** RunReportRequest metricAggregations */ - metricAggregations?: (google.analytics.data.v1alpha.MetricAggregation[]|null); + /** FileDescriptorProto weakDependency. */ + public weakDependency: number[]; - /** RunReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** FileDescriptorProto messageType. */ + public messageType: google.protobuf.IDescriptorProto[]; - /** RunReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** FileDescriptorProto enumType. */ + public enumType: google.protobuf.IEnumDescriptorProto[]; - /** RunReportRequest orderBys */ - orderBys?: (google.analytics.data.v1alpha.IOrderBy[]|null); + /** FileDescriptorProto service. */ + public service: google.protobuf.IServiceDescriptorProto[]; - /** RunReportRequest currencyCode */ - currencyCode?: (string|null); + /** FileDescriptorProto extension. */ + public extension: google.protobuf.IFieldDescriptorProto[]; - /** RunReportRequest cohortSpec */ - cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + /** FileDescriptorProto options. */ + public options?: (google.protobuf.IFileOptions|null); - /** RunReportRequest keepEmptyRows */ - keepEmptyRows?: (boolean|null); + /** FileDescriptorProto sourceCodeInfo. */ + public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); - /** RunReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); - } + /** FileDescriptorProto syntax. */ + public syntax: string; - /** Represents a RunReportRequest. */ - class RunReportRequest implements IRunReportRequest { + /** + * Creates a new FileDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns FileDescriptorProto instance + */ + public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto; - /** - * Constructs a new RunReportRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunReportRequest); + /** + * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @param message FileDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunReportRequest entity. */ - public entity?: (google.analytics.data.v1alpha.IEntity|null); + /** + * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @param message FileDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunReportRequest dimensions. */ - public dimensions: google.analytics.data.v1alpha.IDimension[]; + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto; - /** RunReportRequest metrics. */ - public metrics: google.analytics.data.v1alpha.IMetric[]; + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto; - /** RunReportRequest dateRanges. */ - public dateRanges: google.analytics.data.v1alpha.IDateRange[]; + /** + * Verifies a FileDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunReportRequest offset. */ - public offset: (number|Long|string); + /** + * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto; - /** RunReportRequest limit. */ - public limit: (number|Long|string); + /** + * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. + * @param message FileDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunReportRequest metricAggregations. */ - public metricAggregations: google.analytics.data.v1alpha.MetricAggregation[]; + /** + * Converts this FileDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** Properties of a DescriptorProto. */ + interface IDescriptorProto { - /** RunReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** DescriptorProto name */ + name?: (string|null); - /** RunReportRequest orderBys. */ - public orderBys: google.analytics.data.v1alpha.IOrderBy[]; + /** DescriptorProto field */ + field?: (google.protobuf.IFieldDescriptorProto[]|null); - /** RunReportRequest currencyCode. */ - public currencyCode: string; + /** DescriptorProto extension */ + extension?: (google.protobuf.IFieldDescriptorProto[]|null); - /** RunReportRequest cohortSpec. */ - public cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + /** DescriptorProto nestedType */ + nestedType?: (google.protobuf.IDescriptorProto[]|null); - /** RunReportRequest keepEmptyRows. */ - public keepEmptyRows: boolean; + /** DescriptorProto enumType */ + enumType?: (google.protobuf.IEnumDescriptorProto[]|null); - /** RunReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; + /** DescriptorProto extensionRange */ + extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null); - /** - * Creates a new RunReportRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns RunReportRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunReportRequest): google.analytics.data.v1alpha.RunReportRequest; + /** DescriptorProto oneofDecl */ + oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null); - /** - * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. - * @param message RunReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** DescriptorProto options */ + options?: (google.protobuf.IMessageOptions|null); - /** - * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. - * @param message RunReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** DescriptorProto reservedRange */ + reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null); - /** - * Decodes a RunReportRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunReportRequest; + /** DescriptorProto reservedName */ + reservedName?: (string[]|null); + } - /** - * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunReportRequest; + /** Represents a DescriptorProto. */ + class DescriptorProto implements IDescriptorProto { - /** - * Verifies a RunReportRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Constructs a new DescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IDescriptorProto); - /** - * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunReportRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunReportRequest; + /** DescriptorProto name. */ + public name: string; - /** - * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. - * @param message RunReportRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** DescriptorProto field. */ + public field: google.protobuf.IFieldDescriptorProto[]; - /** - * Converts this RunReportRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** DescriptorProto extension. */ + public extension: google.protobuf.IFieldDescriptorProto[]; - /** Properties of a RunReportResponse. */ - interface IRunReportResponse { + /** DescriptorProto nestedType. */ + public nestedType: google.protobuf.IDescriptorProto[]; - /** RunReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); + /** DescriptorProto enumType. */ + public enumType: google.protobuf.IEnumDescriptorProto[]; - /** RunReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + /** DescriptorProto extensionRange. */ + public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[]; - /** RunReportResponse rows */ - rows?: (google.analytics.data.v1alpha.IRow[]|null); + /** DescriptorProto oneofDecl. */ + public oneofDecl: google.protobuf.IOneofDescriptorProto[]; - /** RunReportResponse totals */ - totals?: (google.analytics.data.v1alpha.IRow[]|null); + /** DescriptorProto options. */ + public options?: (google.protobuf.IMessageOptions|null); - /** RunReportResponse maximums */ - maximums?: (google.analytics.data.v1alpha.IRow[]|null); + /** DescriptorProto reservedRange. */ + public reservedRange: google.protobuf.DescriptorProto.IReservedRange[]; - /** RunReportResponse minimums */ - minimums?: (google.analytics.data.v1alpha.IRow[]|null); + /** DescriptorProto reservedName. */ + public reservedName: string[]; - /** RunReportResponse rowCount */ - rowCount?: (number|null); + /** + * Creates a new DescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns DescriptorProto instance + */ + public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto; - /** RunReportResponse metadata */ - metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + /** + * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @param message DescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); - } + /** + * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @param message DescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a RunReportResponse. */ - class RunReportResponse implements IRunReportResponse { + /** + * Decodes a DescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto; - /** - * Constructs a new RunReportResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunReportResponse); + /** + * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto; - /** RunReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; + /** + * Verifies a DescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + /** + * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto; - /** RunReportResponse rows. */ - public rows: google.analytics.data.v1alpha.IRow[]; + /** + * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. + * @param message DescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunReportResponse totals. */ - public totals: google.analytics.data.v1alpha.IRow[]; + /** + * Converts this DescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunReportResponse maximums. */ - public maximums: google.analytics.data.v1alpha.IRow[]; + namespace DescriptorProto { - /** RunReportResponse minimums. */ - public minimums: google.analytics.data.v1alpha.IRow[]; + /** Properties of an ExtensionRange. */ + interface IExtensionRange { - /** RunReportResponse rowCount. */ - public rowCount: number; + /** ExtensionRange start */ + start?: (number|null); - /** RunReportResponse metadata. */ - public metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + /** ExtensionRange end */ + end?: (number|null); - /** RunReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); + /** ExtensionRange options */ + options?: (google.protobuf.IExtensionRangeOptions|null); + } - /** - * Creates a new RunReportResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns RunReportResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunReportResponse): google.analytics.data.v1alpha.RunReportResponse; + /** Represents an ExtensionRange. */ + class ExtensionRange implements IExtensionRange { - /** - * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. - * @param message RunReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new ExtensionRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange); - /** - * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. - * @param message RunReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** ExtensionRange start. */ + public start: number; - /** - * Decodes a RunReportResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunReportResponse; + /** ExtensionRange end. */ + public end: number; - /** - * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunReportResponse; + /** ExtensionRange options. */ + public options?: (google.protobuf.IExtensionRangeOptions|null); - /** - * Verifies a RunReportResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a new ExtensionRange instance using the specified properties. + * @param [properties] Properties to set + * @returns ExtensionRange instance + */ + public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange; - /** - * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunReportResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunReportResponse; + /** + * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @param message ExtensionRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. - * @param message RunReportResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @param message ExtensionRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this RunReportResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - - /** Properties of a RunPivotReportRequest. */ - interface IRunPivotReportRequest { + /** + * Decodes an ExtensionRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange; - /** RunPivotReportRequest entity */ - entity?: (google.analytics.data.v1alpha.IEntity|null); + /** + * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange; - /** RunPivotReportRequest dimensions */ - dimensions?: (google.analytics.data.v1alpha.IDimension[]|null); + /** + * Verifies an ExtensionRange message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunPivotReportRequest metrics */ - metrics?: (google.analytics.data.v1alpha.IMetric[]|null); + /** + * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExtensionRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange; - /** RunPivotReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. + * @param message ExtensionRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunPivotReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Converts this ExtensionRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunPivotReportRequest pivots */ - pivots?: (google.analytics.data.v1alpha.IPivot[]|null); + /** Properties of a ReservedRange. */ + interface IReservedRange { - /** RunPivotReportRequest dateRanges */ - dateRanges?: (google.analytics.data.v1alpha.IDateRange[]|null); + /** ReservedRange start */ + start?: (number|null); - /** RunPivotReportRequest currencyCode */ - currencyCode?: (string|null); + /** ReservedRange end */ + end?: (number|null); + } - /** RunPivotReportRequest cohortSpec */ - cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + /** Represents a ReservedRange. */ + class ReservedRange implements IReservedRange { - /** RunPivotReportRequest keepEmptyRows */ - keepEmptyRows?: (boolean|null); + /** + * Constructs a new ReservedRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.DescriptorProto.IReservedRange); - /** RunPivotReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); - } + /** ReservedRange start. */ + public start: number; - /** Represents a RunPivotReportRequest. */ - class RunPivotReportRequest implements IRunPivotReportRequest { + /** ReservedRange end. */ + public end: number; - /** - * Constructs a new RunPivotReportRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunPivotReportRequest); + /** + * Creates a new ReservedRange instance using the specified properties. + * @param [properties] Properties to set + * @returns ReservedRange instance + */ + public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange; - /** RunPivotReportRequest entity. */ - public entity?: (google.analytics.data.v1alpha.IEntity|null); + /** + * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @param message ReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunPivotReportRequest dimensions. */ - public dimensions: google.analytics.data.v1alpha.IDimension[]; + /** + * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @param message ReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunPivotReportRequest metrics. */ - public metrics: google.analytics.data.v1alpha.IMetric[]; + /** + * Decodes a ReservedRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange; - /** RunPivotReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Decodes a ReservedRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange; - /** RunPivotReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Verifies a ReservedRange message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunPivotReportRequest pivots. */ - public pivots: google.analytics.data.v1alpha.IPivot[]; + /** + * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ReservedRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange; - /** RunPivotReportRequest dateRanges. */ - public dateRanges: google.analytics.data.v1alpha.IDateRange[]; + /** + * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. + * @param message ReservedRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunPivotReportRequest currencyCode. */ - public currencyCode: string; + /** + * Converts this ReservedRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } - /** RunPivotReportRequest cohortSpec. */ - public cohortSpec?: (google.analytics.data.v1alpha.ICohortSpec|null); + /** Properties of an ExtensionRangeOptions. */ + interface IExtensionRangeOptions { - /** RunPivotReportRequest keepEmptyRows. */ - public keepEmptyRows: boolean; + /** ExtensionRangeOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } - /** RunPivotReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; + /** Represents an ExtensionRangeOptions. */ + class ExtensionRangeOptions implements IExtensionRangeOptions { - /** - * Creates a new RunPivotReportRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns RunPivotReportRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunPivotReportRequest): google.analytics.data.v1alpha.RunPivotReportRequest; + /** + * Constructs a new ExtensionRangeOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IExtensionRangeOptions); - /** - * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportRequest.verify|verify} messages. - * @param message RunPivotReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** ExtensionRangeOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; - /** - * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportRequest.verify|verify} messages. - * @param message RunPivotReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new ExtensionRangeOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns ExtensionRangeOptions instance + */ + public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions; - /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunPivotReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunPivotReportRequest; + /** + * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @param message ExtensionRangeOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunPivotReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunPivotReportRequest; + /** + * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @param message ExtensionRangeOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies a RunPivotReportRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions; - /** - * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunPivotReportRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunPivotReportRequest; + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions; - /** - * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. - * @param message RunPivotReportRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunPivotReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies an ExtensionRangeOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Converts this RunPivotReportRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExtensionRangeOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions; - /** Properties of a RunPivotReportResponse. */ - interface IRunPivotReportResponse { + /** + * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. + * @param message ExtensionRangeOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunPivotReportResponse pivotHeaders */ - pivotHeaders?: (google.analytics.data.v1alpha.IPivotHeader[]|null); + /** + * Converts this ExtensionRangeOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunPivotReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); + /** Properties of a FieldDescriptorProto. */ + interface IFieldDescriptorProto { - /** RunPivotReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + /** FieldDescriptorProto name */ + name?: (string|null); - /** RunPivotReportResponse rows */ - rows?: (google.analytics.data.v1alpha.IRow[]|null); + /** FieldDescriptorProto number */ + number?: (number|null); - /** RunPivotReportResponse aggregates */ - aggregates?: (google.analytics.data.v1alpha.IRow[]|null); + /** FieldDescriptorProto label */ + label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null); - /** RunPivotReportResponse metadata */ - metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + /** FieldDescriptorProto type */ + type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null); - /** RunPivotReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); - } + /** FieldDescriptorProto typeName */ + typeName?: (string|null); - /** Represents a RunPivotReportResponse. */ - class RunPivotReportResponse implements IRunPivotReportResponse { + /** FieldDescriptorProto extendee */ + extendee?: (string|null); - /** - * Constructs a new RunPivotReportResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunPivotReportResponse); + /** FieldDescriptorProto defaultValue */ + defaultValue?: (string|null); - /** RunPivotReportResponse pivotHeaders. */ - public pivotHeaders: google.analytics.data.v1alpha.IPivotHeader[]; + /** FieldDescriptorProto oneofIndex */ + oneofIndex?: (number|null); - /** RunPivotReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; + /** FieldDescriptorProto jsonName */ + jsonName?: (string|null); - /** RunPivotReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + /** FieldDescriptorProto options */ + options?: (google.protobuf.IFieldOptions|null); - /** RunPivotReportResponse rows. */ - public rows: google.analytics.data.v1alpha.IRow[]; + /** FieldDescriptorProto proto3Optional */ + proto3Optional?: (boolean|null); + } - /** RunPivotReportResponse aggregates. */ - public aggregates: google.analytics.data.v1alpha.IRow[]; + /** Represents a FieldDescriptorProto. */ + class FieldDescriptorProto implements IFieldDescriptorProto { - /** RunPivotReportResponse metadata. */ - public metadata?: (google.analytics.data.v1alpha.IResponseMetaData|null); + /** + * Constructs a new FieldDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFieldDescriptorProto); - /** RunPivotReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); + /** FieldDescriptorProto name. */ + public name: string; - /** - * Creates a new RunPivotReportResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns RunPivotReportResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunPivotReportResponse): google.analytics.data.v1alpha.RunPivotReportResponse; + /** FieldDescriptorProto number. */ + public number: number; - /** - * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportResponse.verify|verify} messages. - * @param message RunPivotReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** FieldDescriptorProto label. */ + public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label); - /** - * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportResponse.verify|verify} messages. - * @param message RunPivotReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** FieldDescriptorProto type. */ + public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type); - /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunPivotReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunPivotReportResponse; + /** FieldDescriptorProto typeName. */ + public typeName: string; - /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunPivotReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunPivotReportResponse; + /** FieldDescriptorProto extendee. */ + public extendee: string; - /** - * Verifies a RunPivotReportResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FieldDescriptorProto defaultValue. */ + public defaultValue: string; - /** - * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunPivotReportResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunPivotReportResponse; + /** FieldDescriptorProto oneofIndex. */ + public oneofIndex: number; - /** - * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. - * @param message RunPivotReportResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunPivotReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FieldDescriptorProto jsonName. */ + public jsonName: string; - /** - * Converts this RunPivotReportResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FieldDescriptorProto options. */ + public options?: (google.protobuf.IFieldOptions|null); - /** Properties of a BatchRunReportsRequest. */ - interface IBatchRunReportsRequest { + /** FieldDescriptorProto proto3Optional. */ + public proto3Optional: boolean; - /** BatchRunReportsRequest entity */ - entity?: (google.analytics.data.v1alpha.IEntity|null); + /** + * Creates a new FieldDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldDescriptorProto instance + */ + public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto; - /** BatchRunReportsRequest requests */ - requests?: (google.analytics.data.v1alpha.IRunReportRequest[]|null); - } + /** + * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @param message FieldDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a BatchRunReportsRequest. */ - class BatchRunReportsRequest implements IBatchRunReportsRequest { + /** + * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @param message FieldDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Constructs a new BatchRunReportsRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IBatchRunReportsRequest); + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto; - /** BatchRunReportsRequest entity. */ - public entity?: (google.analytics.data.v1alpha.IEntity|null); + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto; - /** BatchRunReportsRequest requests. */ - public requests: google.analytics.data.v1alpha.IRunReportRequest[]; + /** + * Verifies a FieldDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a new BatchRunReportsRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchRunReportsRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IBatchRunReportsRequest): google.analytics.data.v1alpha.BatchRunReportsRequest; + /** + * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto; - /** - * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsRequest.verify|verify} messages. - * @param message BatchRunReportsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. + * @param message FieldDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsRequest.verify|verify} messages. - * @param message BatchRunReportsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Converts this FieldDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchRunReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.BatchRunReportsRequest; + namespace FieldDescriptorProto { - /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchRunReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.BatchRunReportsRequest; + /** Type enum. */ + enum Type { + TYPE_DOUBLE = 1, + TYPE_FLOAT = 2, + TYPE_INT64 = 3, + TYPE_UINT64 = 4, + TYPE_INT32 = 5, + TYPE_FIXED64 = 6, + TYPE_FIXED32 = 7, + TYPE_BOOL = 8, + TYPE_STRING = 9, + TYPE_GROUP = 10, + TYPE_MESSAGE = 11, + TYPE_BYTES = 12, + TYPE_UINT32 = 13, + TYPE_ENUM = 14, + TYPE_SFIXED32 = 15, + TYPE_SFIXED64 = 16, + TYPE_SINT32 = 17, + TYPE_SINT64 = 18 + } - /** - * Verifies a BatchRunReportsRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Label enum. */ + enum Label { + LABEL_OPTIONAL = 1, + LABEL_REQUIRED = 2, + LABEL_REPEATED = 3 + } + } - /** - * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchRunReportsRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BatchRunReportsRequest; + /** Properties of an OneofDescriptorProto. */ + interface IOneofDescriptorProto { - /** - * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. - * @param message BatchRunReportsRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.BatchRunReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** OneofDescriptorProto name */ + name?: (string|null); - /** - * Converts this BatchRunReportsRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** OneofDescriptorProto options */ + options?: (google.protobuf.IOneofOptions|null); + } - /** Properties of a BatchRunReportsResponse. */ - interface IBatchRunReportsResponse { + /** Represents an OneofDescriptorProto. */ + class OneofDescriptorProto implements IOneofDescriptorProto { - /** BatchRunReportsResponse reports */ - reports?: (google.analytics.data.v1alpha.IRunReportResponse[]|null); - } + /** + * Constructs a new OneofDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IOneofDescriptorProto); - /** Represents a BatchRunReportsResponse. */ - class BatchRunReportsResponse implements IBatchRunReportsResponse { + /** OneofDescriptorProto name. */ + public name: string; - /** - * Constructs a new BatchRunReportsResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IBatchRunReportsResponse); + /** OneofDescriptorProto options. */ + public options?: (google.protobuf.IOneofOptions|null); - /** BatchRunReportsResponse reports. */ - public reports: google.analytics.data.v1alpha.IRunReportResponse[]; + /** + * Creates a new OneofDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns OneofDescriptorProto instance + */ + public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto; - /** - * Creates a new BatchRunReportsResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchRunReportsResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.IBatchRunReportsResponse): google.analytics.data.v1alpha.BatchRunReportsResponse; + /** + * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @param message OneofDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsResponse.verify|verify} messages. - * @param message BatchRunReportsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @param message OneofDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsResponse.verify|verify} messages. - * @param message BatchRunReportsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto; - /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchRunReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.BatchRunReportsResponse; + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto; - /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchRunReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.BatchRunReportsResponse; + /** + * Verifies an OneofDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Verifies a BatchRunReportsResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OneofDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto; - /** - * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchRunReportsResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BatchRunReportsResponse; + /** + * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. + * @param message OneofDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. - * @param message BatchRunReportsResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.BatchRunReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Converts this OneofDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Converts this BatchRunReportsResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Properties of an EnumDescriptorProto. */ + interface IEnumDescriptorProto { - /** Properties of a BatchRunPivotReportsRequest. */ - interface IBatchRunPivotReportsRequest { + /** EnumDescriptorProto name */ + name?: (string|null); - /** BatchRunPivotReportsRequest entity */ - entity?: (google.analytics.data.v1alpha.IEntity|null); + /** EnumDescriptorProto value */ + value?: (google.protobuf.IEnumValueDescriptorProto[]|null); - /** BatchRunPivotReportsRequest requests */ - requests?: (google.analytics.data.v1alpha.IRunPivotReportRequest[]|null); - } + /** EnumDescriptorProto options */ + options?: (google.protobuf.IEnumOptions|null); - /** Represents a BatchRunPivotReportsRequest. */ - class BatchRunPivotReportsRequest implements IBatchRunPivotReportsRequest { + /** EnumDescriptorProto reservedRange */ + reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null); - /** - * Constructs a new BatchRunPivotReportsRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest); + /** EnumDescriptorProto reservedName */ + reservedName?: (string[]|null); + } - /** BatchRunPivotReportsRequest entity. */ - public entity?: (google.analytics.data.v1alpha.IEntity|null); + /** Represents an EnumDescriptorProto. */ + class EnumDescriptorProto implements IEnumDescriptorProto { - /** BatchRunPivotReportsRequest requests. */ - public requests: google.analytics.data.v1alpha.IRunPivotReportRequest[]; + /** + * Constructs a new EnumDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumDescriptorProto); - /** - * Creates a new BatchRunPivotReportsRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchRunPivotReportsRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest): google.analytics.data.v1alpha.BatchRunPivotReportsRequest; + /** EnumDescriptorProto name. */ + public name: string; - /** - * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsRequest.verify|verify} messages. - * @param message BatchRunPivotReportsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** EnumDescriptorProto value. */ + public value: google.protobuf.IEnumValueDescriptorProto[]; - /** - * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsRequest.verify|verify} messages. - * @param message BatchRunPivotReportsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** EnumDescriptorProto options. */ + public options?: (google.protobuf.IEnumOptions|null); - /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchRunPivotReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.BatchRunPivotReportsRequest; + /** EnumDescriptorProto reservedRange. */ + public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[]; - /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchRunPivotReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.BatchRunPivotReportsRequest; + /** EnumDescriptorProto reservedName. */ + public reservedName: string[]; - /** - * Verifies a BatchRunPivotReportsRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a new EnumDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumDescriptorProto instance + */ + public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto; - /** - * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchRunPivotReportsRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BatchRunPivotReportsRequest; + /** + * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @param message EnumDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. - * @param message BatchRunPivotReportsRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.BatchRunPivotReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @param message EnumDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this BatchRunPivotReportsRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto; - /** Properties of a BatchRunPivotReportsResponse. */ - interface IBatchRunPivotReportsResponse { + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto; - /** BatchRunPivotReportsResponse pivotReports */ - pivotReports?: (google.analytics.data.v1alpha.IRunPivotReportResponse[]|null); - } + /** + * Verifies an EnumDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Represents a BatchRunPivotReportsResponse. */ - class BatchRunPivotReportsResponse implements IBatchRunPivotReportsResponse { + /** + * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto; - /** - * Constructs a new BatchRunPivotReportsResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IBatchRunPivotReportsResponse); + /** + * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. + * @param message EnumDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** BatchRunPivotReportsResponse pivotReports. */ - public pivotReports: google.analytics.data.v1alpha.IRunPivotReportResponse[]; + /** + * Converts this EnumDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a new BatchRunPivotReportsResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchRunPivotReportsResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.IBatchRunPivotReportsResponse): google.analytics.data.v1alpha.BatchRunPivotReportsResponse; + namespace EnumDescriptorProto { - /** - * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsResponse.verify|verify} messages. - * @param message BatchRunPivotReportsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of an EnumReservedRange. */ + interface IEnumReservedRange { - /** - * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsResponse.verify|verify} messages. - * @param message BatchRunPivotReportsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** EnumReservedRange start */ + start?: (number|null); - /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchRunPivotReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.BatchRunPivotReportsResponse; + /** EnumReservedRange end */ + end?: (number|null); + } - /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchRunPivotReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.BatchRunPivotReportsResponse; + /** Represents an EnumReservedRange. */ + class EnumReservedRange implements IEnumReservedRange { - /** - * Verifies a BatchRunPivotReportsResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Constructs a new EnumReservedRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange); - /** - * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchRunPivotReportsResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BatchRunPivotReportsResponse; + /** EnumReservedRange start. */ + public start: number; - /** - * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. - * @param message BatchRunPivotReportsResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.BatchRunPivotReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** EnumReservedRange end. */ + public end: number; - /** - * Converts this BatchRunPivotReportsResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a new EnumReservedRange instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumReservedRange instance + */ + public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange; - /** Properties of a GetMetadataRequest. */ - interface IGetMetadataRequest { + /** + * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @param message EnumReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** GetMetadataRequest name */ - name?: (string|null); - } + /** + * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @param message EnumReservedRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a GetMetadataRequest. */ - class GetMetadataRequest implements IGetMetadataRequest { + /** + * Decodes an EnumReservedRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange; - /** - * Constructs a new GetMetadataRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IGetMetadataRequest); + /** + * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange; - /** GetMetadataRequest name. */ - public name: string; + /** + * Verifies an EnumReservedRange message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a new GetMetadataRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns GetMetadataRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IGetMetadataRequest): google.analytics.data.v1alpha.GetMetadataRequest; + /** + * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumReservedRange + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange; - /** - * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. - * @param message GetMetadataRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. + * @param message EnumReservedRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. - * @param message GetMetadataRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Converts this EnumReservedRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } - /** - * Decodes a GetMetadataRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns GetMetadataRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.GetMetadataRequest; + /** Properties of an EnumValueDescriptorProto. */ + interface IEnumValueDescriptorProto { - /** - * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns GetMetadataRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.GetMetadataRequest; + /** EnumValueDescriptorProto name */ + name?: (string|null); - /** - * Verifies a GetMetadataRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** EnumValueDescriptorProto number */ + number?: (number|null); - /** - * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns GetMetadataRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.GetMetadataRequest; + /** EnumValueDescriptorProto options */ + options?: (google.protobuf.IEnumValueOptions|null); + } - /** - * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. - * @param message GetMetadataRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.GetMetadataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Represents an EnumValueDescriptorProto. */ + class EnumValueDescriptorProto implements IEnumValueDescriptorProto { - /** - * Converts this GetMetadataRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Constructs a new EnumValueDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumValueDescriptorProto); - /** Properties of a RunRealtimeReportRequest. */ - interface IRunRealtimeReportRequest { + /** EnumValueDescriptorProto name. */ + public name: string; - /** RunRealtimeReportRequest property */ - property?: (string|null); + /** EnumValueDescriptorProto number. */ + public number: number; - /** RunRealtimeReportRequest dimensions */ - dimensions?: (google.analytics.data.v1alpha.IDimension[]|null); + /** EnumValueDescriptorProto options. */ + public options?: (google.protobuf.IEnumValueOptions|null); - /** RunRealtimeReportRequest metrics */ - metrics?: (google.analytics.data.v1alpha.IMetric[]|null); + /** + * Creates a new EnumValueDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumValueDescriptorProto instance + */ + public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto; - /** RunRealtimeReportRequest limit */ - limit?: (number|Long|string|null); + /** + * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @param message EnumValueDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunRealtimeReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @param message EnumValueDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunRealtimeReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto; - /** RunRealtimeReportRequest metricAggregations */ - metricAggregations?: (google.analytics.data.v1alpha.MetricAggregation[]|null); + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto; - /** RunRealtimeReportRequest orderBys */ - orderBys?: (google.analytics.data.v1alpha.IOrderBy[]|null); + /** + * Verifies an EnumValueDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunRealtimeReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); - } + /** + * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumValueDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto; - /** Represents a RunRealtimeReportRequest. */ - class RunRealtimeReportRequest implements IRunRealtimeReportRequest { + /** + * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. + * @param message EnumValueDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Constructs a new RunRealtimeReportRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunRealtimeReportRequest); + /** + * Converts this EnumValueDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunRealtimeReportRequest property. */ - public property: string; + /** Properties of a ServiceDescriptorProto. */ + interface IServiceDescriptorProto { - /** RunRealtimeReportRequest dimensions. */ - public dimensions: google.analytics.data.v1alpha.IDimension[]; + /** ServiceDescriptorProto name */ + name?: (string|null); - /** RunRealtimeReportRequest metrics. */ - public metrics: google.analytics.data.v1alpha.IMetric[]; + /** ServiceDescriptorProto method */ + method?: (google.protobuf.IMethodDescriptorProto[]|null); - /** RunRealtimeReportRequest limit. */ - public limit: (number|Long|string); + /** ServiceDescriptorProto options */ + options?: (google.protobuf.IServiceOptions|null); + } - /** RunRealtimeReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** Represents a ServiceDescriptorProto. */ + class ServiceDescriptorProto implements IServiceDescriptorProto { - /** RunRealtimeReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Constructs a new ServiceDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IServiceDescriptorProto); - /** RunRealtimeReportRequest metricAggregations. */ - public metricAggregations: google.analytics.data.v1alpha.MetricAggregation[]; + /** ServiceDescriptorProto name. */ + public name: string; - /** RunRealtimeReportRequest orderBys. */ - public orderBys: google.analytics.data.v1alpha.IOrderBy[]; + /** ServiceDescriptorProto method. */ + public method: google.protobuf.IMethodDescriptorProto[]; - /** RunRealtimeReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; + /** ServiceDescriptorProto options. */ + public options?: (google.protobuf.IServiceOptions|null); - /** - * Creates a new RunRealtimeReportRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns RunRealtimeReportRequest instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunRealtimeReportRequest): google.analytics.data.v1alpha.RunRealtimeReportRequest; + /** + * Creates a new ServiceDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns ServiceDescriptorProto instance + */ + public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto; - /** - * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportRequest.verify|verify} messages. - * @param message RunRealtimeReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @param message ServiceDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportRequest.verify|verify} messages. - * @param message RunRealtimeReportRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @param message ServiceDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunRealtimeReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunRealtimeReportRequest; - - /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunRealtimeReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunRealtimeReportRequest; + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto; - /** - * Verifies a RunRealtimeReportRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto; - /** - * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunRealtimeReportRequest - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunRealtimeReportRequest; + /** + * Verifies a ServiceDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. - * @param message RunRealtimeReportRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunRealtimeReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ServiceDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto; - /** - * Converts this RunRealtimeReportRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. + * @param message ServiceDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Properties of a RunRealtimeReportResponse. */ - interface IRunRealtimeReportResponse { + /** + * Converts this ServiceDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunRealtimeReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); + /** Properties of a MethodDescriptorProto. */ + interface IMethodDescriptorProto { - /** RunRealtimeReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); + /** MethodDescriptorProto name */ + name?: (string|null); - /** RunRealtimeReportResponse rows */ - rows?: (google.analytics.data.v1alpha.IRow[]|null); + /** MethodDescriptorProto inputType */ + inputType?: (string|null); - /** RunRealtimeReportResponse totals */ - totals?: (google.analytics.data.v1alpha.IRow[]|null); + /** MethodDescriptorProto outputType */ + outputType?: (string|null); - /** RunRealtimeReportResponse maximums */ - maximums?: (google.analytics.data.v1alpha.IRow[]|null); + /** MethodDescriptorProto options */ + options?: (google.protobuf.IMethodOptions|null); - /** RunRealtimeReportResponse minimums */ - minimums?: (google.analytics.data.v1alpha.IRow[]|null); + /** MethodDescriptorProto clientStreaming */ + clientStreaming?: (boolean|null); - /** RunRealtimeReportResponse rowCount */ - rowCount?: (number|null); + /** MethodDescriptorProto serverStreaming */ + serverStreaming?: (boolean|null); + } - /** RunRealtimeReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); - } + /** Represents a MethodDescriptorProto. */ + class MethodDescriptorProto implements IMethodDescriptorProto { - /** Represents a RunRealtimeReportResponse. */ - class RunRealtimeReportResponse implements IRunRealtimeReportResponse { + /** + * Constructs a new MethodDescriptorProto. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMethodDescriptorProto); - /** - * Constructs a new RunRealtimeReportResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IRunRealtimeReportResponse); + /** MethodDescriptorProto name. */ + public name: string; - /** RunRealtimeReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; + /** MethodDescriptorProto inputType. */ + public inputType: string; - /** RunRealtimeReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + /** MethodDescriptorProto outputType. */ + public outputType: string; - /** RunRealtimeReportResponse rows. */ - public rows: google.analytics.data.v1alpha.IRow[]; + /** MethodDescriptorProto options. */ + public options?: (google.protobuf.IMethodOptions|null); - /** RunRealtimeReportResponse totals. */ - public totals: google.analytics.data.v1alpha.IRow[]; + /** MethodDescriptorProto clientStreaming. */ + public clientStreaming: boolean; - /** RunRealtimeReportResponse maximums. */ - public maximums: google.analytics.data.v1alpha.IRow[]; + /** MethodDescriptorProto serverStreaming. */ + public serverStreaming: boolean; - /** RunRealtimeReportResponse minimums. */ - public minimums: google.analytics.data.v1alpha.IRow[]; + /** + * Creates a new MethodDescriptorProto instance using the specified properties. + * @param [properties] Properties to set + * @returns MethodDescriptorProto instance + */ + public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto; - /** RunRealtimeReportResponse rowCount. */ - public rowCount: number; + /** + * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @param message MethodDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunRealtimeReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); + /** + * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @param message MethodDescriptorProto message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new RunRealtimeReportResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns RunRealtimeReportResponse instance - */ - public static create(properties?: google.analytics.data.v1alpha.IRunRealtimeReportResponse): google.analytics.data.v1alpha.RunRealtimeReportResponse; + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto; - /** - * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportResponse.verify|verify} messages. - * @param message RunRealtimeReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto; - /** - * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportResponse.verify|verify} messages. - * @param message RunRealtimeReportResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a MethodDescriptorProto message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunRealtimeReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunRealtimeReportResponse; + /** + * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MethodDescriptorProto + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto; - /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunRealtimeReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunRealtimeReportResponse; + /** + * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. + * @param message MethodDescriptorProto + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Verifies a RunRealtimeReportResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Converts this MethodDescriptorProto to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunRealtimeReportResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunRealtimeReportResponse; + /** Properties of a FileOptions. */ + interface IFileOptions { - /** - * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. - * @param message RunRealtimeReportResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.RunRealtimeReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FileOptions javaPackage */ + javaPackage?: (string|null); - /** - * Converts this RunRealtimeReportResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FileOptions javaOuterClassname */ + javaOuterClassname?: (string|null); - /** Properties of a DateRange. */ - interface IDateRange { + /** FileOptions javaMultipleFiles */ + javaMultipleFiles?: (boolean|null); - /** DateRange startDate */ - startDate?: (string|null); + /** FileOptions javaGenerateEqualsAndHash */ + javaGenerateEqualsAndHash?: (boolean|null); - /** DateRange endDate */ - endDate?: (string|null); + /** FileOptions javaStringCheckUtf8 */ + javaStringCheckUtf8?: (boolean|null); - /** DateRange name */ - name?: (string|null); - } + /** FileOptions optimizeFor */ + optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null); - /** Represents a DateRange. */ - class DateRange implements IDateRange { + /** FileOptions goPackage */ + goPackage?: (string|null); - /** - * Constructs a new DateRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IDateRange); + /** FileOptions ccGenericServices */ + ccGenericServices?: (boolean|null); - /** DateRange startDate. */ - public startDate: string; + /** FileOptions javaGenericServices */ + javaGenericServices?: (boolean|null); - /** DateRange endDate. */ - public endDate: string; + /** FileOptions pyGenericServices */ + pyGenericServices?: (boolean|null); - /** DateRange name. */ - public name: string; + /** FileOptions phpGenericServices */ + phpGenericServices?: (boolean|null); - /** - * Creates a new DateRange instance using the specified properties. - * @param [properties] Properties to set - * @returns DateRange instance - */ - public static create(properties?: google.analytics.data.v1alpha.IDateRange): google.analytics.data.v1alpha.DateRange; + /** FileOptions deprecated */ + deprecated?: (boolean|null); - /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions ccEnableArenas */ + ccEnableArenas?: (boolean|null); - /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions objcClassPrefix */ + objcClassPrefix?: (string|null); - /** - * Decodes a DateRange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DateRange; + /** FileOptions csharpNamespace */ + csharpNamespace?: (string|null); - /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DateRange; + /** FileOptions swiftPrefix */ + swiftPrefix?: (string|null); - /** - * Verifies a DateRange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FileOptions phpClassPrefix */ + phpClassPrefix?: (string|null); - /** - * Creates a DateRange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DateRange - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DateRange; + /** FileOptions phpNamespace */ + phpNamespace?: (string|null); - /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. - * @param message DateRange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FileOptions phpMetadataNamespace */ + phpMetadataNamespace?: (string|null); - /** - * Converts this DateRange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FileOptions rubyPackage */ + rubyPackage?: (string|null); - /** Properties of an Entity. */ - interface IEntity { + /** FileOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - /** Entity propertyId */ - propertyId?: (string|null); - } + /** FileOptions .google.api.resourceDefinition */ + ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null); + } - /** Represents an Entity. */ - class Entity implements IEntity { + /** Represents a FileOptions. */ + class FileOptions implements IFileOptions { - /** - * Constructs a new Entity. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IEntity); + /** + * Constructs a new FileOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFileOptions); - /** Entity propertyId. */ - public propertyId: string; + /** FileOptions javaPackage. */ + public javaPackage: string; - /** - * Creates a new Entity instance using the specified properties. - * @param [properties] Properties to set - * @returns Entity instance - */ - public static create(properties?: google.analytics.data.v1alpha.IEntity): google.analytics.data.v1alpha.Entity; + /** FileOptions javaOuterClassname. */ + public javaOuterClassname: string; - /** - * Encodes the specified Entity message. Does not implicitly {@link google.analytics.data.v1alpha.Entity.verify|verify} messages. - * @param message Entity message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IEntity, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions javaMultipleFiles. */ + public javaMultipleFiles: boolean; - /** - * Encodes the specified Entity message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Entity.verify|verify} messages. - * @param message Entity message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IEntity, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions javaGenerateEqualsAndHash. */ + public javaGenerateEqualsAndHash: boolean; - /** - * Decodes an Entity message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Entity - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Entity; + /** FileOptions javaStringCheckUtf8. */ + public javaStringCheckUtf8: boolean; - /** - * Decodes an Entity message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Entity - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Entity; + /** FileOptions optimizeFor. */ + public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode); - /** - * Verifies an Entity message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FileOptions goPackage. */ + public goPackage: string; - /** - * Creates an Entity message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Entity - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Entity; + /** FileOptions ccGenericServices. */ + public ccGenericServices: boolean; - /** - * Creates a plain object from an Entity message. Also converts values to other types if specified. - * @param message Entity - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Entity, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FileOptions javaGenericServices. */ + public javaGenericServices: boolean; - /** - * Converts this Entity to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FileOptions pyGenericServices. */ + public pyGenericServices: boolean; - /** Properties of a Dimension. */ - interface IDimension { + /** FileOptions phpGenericServices. */ + public phpGenericServices: boolean; - /** Dimension name */ - name?: (string|null); + /** FileOptions deprecated. */ + public deprecated: boolean; - /** Dimension dimensionExpression */ - dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); - } + /** FileOptions ccEnableArenas. */ + public ccEnableArenas: boolean; - /** Represents a Dimension. */ - class Dimension implements IDimension { + /** FileOptions objcClassPrefix. */ + public objcClassPrefix: string; - /** - * Constructs a new Dimension. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IDimension); + /** FileOptions csharpNamespace. */ + public csharpNamespace: string; - /** Dimension name. */ - public name: string; + /** FileOptions swiftPrefix. */ + public swiftPrefix: string; - /** Dimension dimensionExpression. */ - public dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); + /** FileOptions phpClassPrefix. */ + public phpClassPrefix: string; - /** - * Creates a new Dimension instance using the specified properties. - * @param [properties] Properties to set - * @returns Dimension instance - */ - public static create(properties?: google.analytics.data.v1alpha.IDimension): google.analytics.data.v1alpha.Dimension; + /** FileOptions phpNamespace. */ + public phpNamespace: string; - /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions phpMetadataNamespace. */ + public phpMetadataNamespace: string; - /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + /** FileOptions rubyPackage. */ + public rubyPackage: string; - /** - * Decodes a Dimension message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Dimension - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Dimension; + /** FileOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; - /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Dimension - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Dimension; + /** + * Creates a new FileOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns FileOptions instance + */ + public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions; - /** - * Verifies a Dimension message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @param message FileOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a Dimension message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Dimension - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Dimension; + /** + * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @param message FileOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. - * @param message Dimension - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a FileOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions; - /** - * Converts this Dimension to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a FileOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions; - /** Properties of a DimensionExpression. */ - interface IDimensionExpression { + /** + * Verifies a FileOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** DimensionExpression lowerCase */ - lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + /** + * Creates a FileOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FileOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions; - /** DimensionExpression upperCase */ - upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + /** + * Creates a plain object from a FileOptions message. Also converts values to other types if specified. + * @param message FileOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** DimensionExpression concatenate */ - concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); - } + /** + * Converts this FileOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Represents a DimensionExpression. */ - class DimensionExpression implements IDimensionExpression { + namespace FileOptions { - /** - * Constructs a new DimensionExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionExpression); + /** OptimizeMode enum. */ + enum OptimizeMode { + SPEED = 1, + CODE_SIZE = 2, + LITE_RUNTIME = 3 + } + } - /** DimensionExpression lowerCase. */ - public lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + /** Properties of a MessageOptions. */ + interface IMessageOptions { - /** DimensionExpression upperCase. */ - public upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); + /** MessageOptions messageSetWireFormat */ + messageSetWireFormat?: (boolean|null); - /** DimensionExpression concatenate. */ - public concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); + /** MessageOptions noStandardDescriptorAccessor */ + noStandardDescriptorAccessor?: (boolean|null); - /** DimensionExpression oneExpression. */ - public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); + /** MessageOptions deprecated */ + deprecated?: (boolean|null); - /** - * Creates a new DimensionExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns DimensionExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionExpression): google.analytics.data.v1alpha.DimensionExpression; + /** MessageOptions mapEntry */ + mapEntry?: (boolean|null); - /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** MessageOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** MessageOptions .google.api.resource */ + ".google.api.resource"?: (google.api.IResourceDescriptor|null); + } - /** - * Decodes a DimensionExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DimensionExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression; + /** Represents a MessageOptions. */ + class MessageOptions implements IMessageOptions { - /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DimensionExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression; + /** + * Constructs a new MessageOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMessageOptions); - /** - * Verifies a DimensionExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** MessageOptions messageSetWireFormat. */ + public messageSetWireFormat: boolean; - /** - * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DimensionExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression; + /** MessageOptions noStandardDescriptorAccessor. */ + public noStandardDescriptorAccessor: boolean; - /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. - * @param message DimensionExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** MessageOptions deprecated. */ + public deprecated: boolean; - /** - * Converts this DimensionExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** MessageOptions mapEntry. */ + public mapEntry: boolean; - namespace DimensionExpression { + /** MessageOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; - /** Properties of a CaseExpression. */ - interface ICaseExpression { + /** + * Creates a new MessageOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageOptions instance + */ + public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions; - /** CaseExpression dimensionName */ - dimensionName?: (string|null); - } + /** + * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @param message MessageOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a CaseExpression. */ - class CaseExpression implements ICaseExpression { + /** + * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @param message MessageOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Constructs a new CaseExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression); + /** + * Decodes a MessageOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions; - /** CaseExpression dimensionName. */ - public dimensionName: string; + /** + * Decodes a MessageOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions; - /** - * Creates a new CaseExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns CaseExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** + * Verifies a MessageOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions; - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. + * @param message MessageOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** + * Converts this MessageOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** Properties of a FieldOptions. */ + interface IFieldOptions { - /** - * Verifies a CaseExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FieldOptions ctype */ + ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null); - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CaseExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; + /** FieldOptions packed */ + packed?: (boolean|null); - /** - * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. - * @param message CaseExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** FieldOptions jstype */ + jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null); - /** - * Converts this CaseExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** FieldOptions lazy */ + lazy?: (boolean|null); - /** Properties of a ConcatenateExpression. */ - interface IConcatenateExpression { + /** FieldOptions deprecated */ + deprecated?: (boolean|null); - /** ConcatenateExpression dimensionNames */ - dimensionNames?: (string[]|null); + /** FieldOptions weak */ + weak?: (boolean|null); - /** ConcatenateExpression delimiter */ - delimiter?: (string|null); - } + /** FieldOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - /** Represents a ConcatenateExpression. */ - class ConcatenateExpression implements IConcatenateExpression { + /** FieldOptions .google.api.fieldBehavior */ + ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null); - /** - * Constructs a new ConcatenateExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression); + /** FieldOptions .google.api.resourceReference */ + ".google.api.resourceReference"?: (google.api.IResourceReference|null); + } - /** ConcatenateExpression dimensionNames. */ - public dimensionNames: string[]; + /** Represents a FieldOptions. */ + class FieldOptions implements IFieldOptions { - /** ConcatenateExpression delimiter. */ - public delimiter: string; + /** + * Constructs a new FieldOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IFieldOptions); - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns ConcatenateExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** FieldOptions ctype. */ + public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType); - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** FieldOptions packed. */ + public packed: boolean; - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** FieldOptions jstype. */ + public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType); - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** FieldOptions lazy. */ + public lazy: boolean; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** FieldOptions deprecated. */ + public deprecated: boolean; - /** - * Verifies a ConcatenateExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** FieldOptions weak. */ + public weak: boolean; - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ConcatenateExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; + /** FieldOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @param message ConcatenateExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a new FieldOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldOptions instance + */ + public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions; - /** - * Converts this ConcatenateExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @param message FieldOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a Metric. */ - interface IMetric { - - /** Metric name */ - name?: (string|null); + /** + * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @param message FieldOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** Metric expression */ - expression?: (string|null); + /** + * Decodes a FieldOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions; - /** Metric invisible */ - invisible?: (boolean|null); - } + /** + * Decodes a FieldOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions; - /** Represents a Metric. */ - class Metric implements IMetric { + /** + * Verifies a FieldOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Constructs a new Metric. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IMetric); + /** + * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions; - /** Metric name. */ - public name: string; + /** + * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. + * @param message FieldOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Metric expression. */ - public expression: string; + /** + * Converts this FieldOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Metric invisible. */ - public invisible: boolean; + namespace FieldOptions { - /** - * Creates a new Metric instance using the specified properties. - * @param [properties] Properties to set - * @returns Metric instance - */ - public static create(properties?: google.analytics.data.v1alpha.IMetric): google.analytics.data.v1alpha.Metric; + /** CType enum. */ + enum CType { + STRING = 0, + CORD = 1, + STRING_PIECE = 2 + } - /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + /** JSType enum. */ + enum JSType { + JS_NORMAL = 0, + JS_STRING = 1, + JS_NUMBER = 2 + } + } - /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of an OneofOptions. */ + interface IOneofOptions { - /** - * Decodes a Metric message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Metric - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Metric; + /** OneofOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } - /** - * Decodes a Metric message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Metric - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Metric; + /** Represents an OneofOptions. */ + class OneofOptions implements IOneofOptions { - /** - * Verifies a Metric message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Constructs a new OneofOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IOneofOptions); - /** - * Creates a Metric message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Metric - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Metric; + /** OneofOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; - /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. - * @param message Metric - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a new OneofOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns OneofOptions instance + */ + public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions; - /** - * Converts this Metric to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @param message OneofOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a FilterExpression. */ - interface IFilterExpression { + /** + * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @param message OneofOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; - /** FilterExpression andGroup */ - andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + /** + * Decodes an OneofOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions; - /** FilterExpression orGroup */ - orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + /** + * Decodes an OneofOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions; - /** FilterExpression notExpression */ - notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** + * Verifies an OneofOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FilterExpression filter */ - filter?: (google.analytics.data.v1alpha.IFilter|null); - } + /** + * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OneofOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions; - /** Represents a FilterExpression. */ - class FilterExpression implements IFilterExpression { + /** + * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. + * @param message OneofOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Constructs a new FilterExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IFilterExpression); + /** + * Converts this OneofOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + /** Properties of an EnumOptions. */ + interface IEnumOptions { - /** FilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); + /** EnumOptions allowAlias */ + allowAlias?: (boolean|null); - /** FilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); + /** EnumOptions deprecated */ + deprecated?: (boolean|null); - /** FilterExpression filter. */ - public filter?: (google.analytics.data.v1alpha.IFilter|null); + /** EnumOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } - /** FilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); + /** Represents an EnumOptions. */ + class EnumOptions implements IEnumOptions { - /** - * Creates a new FilterExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns FilterExpression instance - */ - public static create(properties?: google.analytics.data.v1alpha.IFilterExpression): google.analytics.data.v1alpha.FilterExpression; + /** + * Constructs a new EnumOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumOptions); + + /** EnumOptions allowAlias. */ + public allowAlias: boolean; + + /** EnumOptions deprecated. */ + public deprecated: boolean; + + /** EnumOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new EnumOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumOptions instance + */ + public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions; + + /** + * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @param message EnumOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @param message EnumOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions; + + /** + * Decodes an EnumOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions; + + /** + * Verifies an EnumOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions; + + /** + * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. + * @param message EnumOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an EnumValueOptions. */ + interface IEnumValueOptions { + + /** EnumValueOptions deprecated */ + deprecated?: (boolean|null); + + /** EnumValueOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + } + + /** Represents an EnumValueOptions. */ + class EnumValueOptions implements IEnumValueOptions { + + /** + * Constructs a new EnumValueOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IEnumValueOptions); + + /** EnumValueOptions deprecated. */ + public deprecated: boolean; + + /** EnumValueOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new EnumValueOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns EnumValueOptions instance + */ + public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions; + + /** + * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @param message EnumValueOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @param message EnumValueOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions; + + /** + * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions; + + /** + * Verifies an EnumValueOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EnumValueOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions; + + /** + * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. + * @param message EnumValueOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EnumValueOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ServiceOptions. */ + interface IServiceOptions { + + /** ServiceOptions deprecated */ + deprecated?: (boolean|null); + + /** ServiceOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** ServiceOptions .google.api.defaultHost */ + ".google.api.defaultHost"?: (string|null); + + /** ServiceOptions .google.api.oauthScopes */ + ".google.api.oauthScopes"?: (string|null); + } + + /** Represents a ServiceOptions. */ + class ServiceOptions implements IServiceOptions { + + /** + * Constructs a new ServiceOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IServiceOptions); + + /** ServiceOptions deprecated. */ + public deprecated: boolean; + + /** ServiceOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new ServiceOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns ServiceOptions instance + */ + public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions; + + /** + * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @param message ServiceOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @param message ServiceOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions; + + /** + * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions; + + /** + * Verifies a ServiceOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ServiceOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions; + + /** + * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. + * @param message ServiceOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ServiceOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a MethodOptions. */ + interface IMethodOptions { + + /** MethodOptions deprecated */ + deprecated?: (boolean|null); + + /** MethodOptions idempotencyLevel */ + idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null); + + /** MethodOptions uninterpretedOption */ + uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + + /** MethodOptions .google.api.http */ + ".google.api.http"?: (google.api.IHttpRule|null); + + /** MethodOptions .google.api.methodSignature */ + ".google.api.methodSignature"?: (string[]|null); + } + + /** Represents a MethodOptions. */ + class MethodOptions implements IMethodOptions { + + /** + * Constructs a new MethodOptions. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IMethodOptions); + + /** MethodOptions deprecated. */ + public deprecated: boolean; + + /** MethodOptions idempotencyLevel. */ + public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel); + + /** MethodOptions uninterpretedOption. */ + public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + + /** + * Creates a new MethodOptions instance using the specified properties. + * @param [properties] Properties to set + * @returns MethodOptions instance + */ + public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions; + + /** + * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @param message MethodOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @param message MethodOptions message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MethodOptions message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions; + + /** + * Decodes a MethodOptions message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions; + + /** + * Verifies a MethodOptions message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MethodOptions + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions; + + /** + * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. + * @param message MethodOptions + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MethodOptions to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace MethodOptions { + + /** IdempotencyLevel enum. */ + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0, + NO_SIDE_EFFECTS = 1, + IDEMPOTENT = 2 + } + } + + /** Properties of an UninterpretedOption. */ + interface IUninterpretedOption { + + /** UninterpretedOption name */ + name?: (google.protobuf.UninterpretedOption.INamePart[]|null); + + /** UninterpretedOption identifierValue */ + identifierValue?: (string|null); + + /** UninterpretedOption positiveIntValue */ + positiveIntValue?: (number|Long|string|null); + + /** UninterpretedOption negativeIntValue */ + negativeIntValue?: (number|Long|string|null); + + /** UninterpretedOption doubleValue */ + doubleValue?: (number|null); + + /** UninterpretedOption stringValue */ + stringValue?: (Uint8Array|string|null); + + /** UninterpretedOption aggregateValue */ + aggregateValue?: (string|null); + } + + /** Represents an UninterpretedOption. */ + class UninterpretedOption implements IUninterpretedOption { + + /** + * Constructs a new UninterpretedOption. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IUninterpretedOption); + + /** UninterpretedOption name. */ + public name: google.protobuf.UninterpretedOption.INamePart[]; + + /** UninterpretedOption identifierValue. */ + public identifierValue: string; + + /** UninterpretedOption positiveIntValue. */ + public positiveIntValue: (number|Long|string); + + /** UninterpretedOption negativeIntValue. */ + public negativeIntValue: (number|Long|string); + + /** UninterpretedOption doubleValue. */ + public doubleValue: number; + + /** UninterpretedOption stringValue. */ + public stringValue: (Uint8Array|string); + + /** UninterpretedOption aggregateValue. */ + public aggregateValue: string; + + /** + * Creates a new UninterpretedOption instance using the specified properties. + * @param [properties] Properties to set + * @returns UninterpretedOption instance + */ + public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption; + + /** + * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @param message UninterpretedOption message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @param message UninterpretedOption message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption; + + /** + * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption; + + /** + * Verifies an UninterpretedOption message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UninterpretedOption + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption; + + /** + * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. + * @param message UninterpretedOption + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this UninterpretedOption to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace UninterpretedOption { + + /** Properties of a NamePart. */ + interface INamePart { + + /** NamePart namePart */ + namePart: string; + + /** NamePart isExtension */ + isExtension: boolean; + } + + /** Represents a NamePart. */ + class NamePart implements INamePart { + + /** + * Constructs a new NamePart. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.UninterpretedOption.INamePart); + + /** NamePart namePart. */ + public namePart: string; + + /** NamePart isExtension. */ + public isExtension: boolean; + + /** + * Creates a new NamePart instance using the specified properties. + * @param [properties] Properties to set + * @returns NamePart instance + */ + public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart; + + /** + * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @param message NamePart message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @param message NamePart message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NamePart message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart; + + /** + * Decodes a NamePart message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart; + + /** + * Verifies a NamePart message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a NamePart message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NamePart + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart; + + /** + * Creates a plain object from a NamePart message. Also converts values to other types if specified. + * @param message NamePart + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this NamePart to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a SourceCodeInfo. */ + interface ISourceCodeInfo { + + /** SourceCodeInfo location */ + location?: (google.protobuf.SourceCodeInfo.ILocation[]|null); + } + + /** Represents a SourceCodeInfo. */ + class SourceCodeInfo implements ISourceCodeInfo { + + /** + * Constructs a new SourceCodeInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.ISourceCodeInfo); + + /** SourceCodeInfo location. */ + public location: google.protobuf.SourceCodeInfo.ILocation[]; + + /** + * Creates a new SourceCodeInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns SourceCodeInfo instance + */ + public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo; + + /** + * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @param message SourceCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @param message SourceCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo; + + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo; + + /** + * Verifies a SourceCodeInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SourceCodeInfo + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo; + + /** + * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. + * @param message SourceCodeInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SourceCodeInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace SourceCodeInfo { + + /** Properties of a Location. */ + interface ILocation { + + /** Location path */ + path?: (number[]|null); + + /** Location span */ + span?: (number[]|null); + + /** Location leadingComments */ + leadingComments?: (string|null); + + /** Location trailingComments */ + trailingComments?: (string|null); + + /** Location leadingDetachedComments */ + leadingDetachedComments?: (string[]|null); + } + + /** Represents a Location. */ + class Location implements ILocation { + + /** + * Constructs a new Location. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.SourceCodeInfo.ILocation); + + /** Location path. */ + public path: number[]; + + /** Location span. */ + public span: number[]; + + /** Location leadingComments. */ + public leadingComments: string; + + /** Location trailingComments. */ + public trailingComments: string; + + /** Location leadingDetachedComments. */ + public leadingDetachedComments: string[]; + + /** + * Creates a new Location instance using the specified properties. + * @param [properties] Properties to set + * @returns Location instance + */ + public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location; + + /** + * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @param message Location message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Location message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location; + + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location; + + /** + * Verifies a Location message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Location message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Location + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location; + + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @param message Location + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Location to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + + /** Properties of a GeneratedCodeInfo. */ + interface IGeneratedCodeInfo { + + /** GeneratedCodeInfo annotation */ + annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null); + } + + /** Represents a GeneratedCodeInfo. */ + class GeneratedCodeInfo implements IGeneratedCodeInfo { + + /** + * Constructs a new GeneratedCodeInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.IGeneratedCodeInfo); + + /** GeneratedCodeInfo annotation. */ + public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[]; + + /** + * Creates a new GeneratedCodeInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns GeneratedCodeInfo instance + */ + public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo; + + /** + * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @param message GeneratedCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @param message GeneratedCodeInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo; + + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo; + + /** + * Verifies a GeneratedCodeInfo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GeneratedCodeInfo + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo; - /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. + * @param message GeneratedCodeInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Decodes a FilterExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FilterExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpression; + /** + * Converts this GeneratedCodeInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FilterExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpression; + namespace GeneratedCodeInfo { - /** - * Verifies a FilterExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Properties of an Annotation. */ + interface IAnnotation { - /** - * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FilterExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpression; + /** Annotation path */ + path?: (number[]|null); - /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. - * @param message FilterExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Annotation sourceFile */ + sourceFile?: (string|null); - /** - * Converts this FilterExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Annotation begin */ + begin?: (number|null); - /** Properties of a FilterExpressionList. */ - interface IFilterExpressionList { + /** Annotation end */ + end?: (number|null); + } - /** FilterExpressionList expressions */ - expressions?: (google.analytics.data.v1alpha.IFilterExpression[]|null); - } + /** Represents an Annotation. */ + class Annotation implements IAnnotation { - /** Represents a FilterExpressionList. */ - class FilterExpressionList implements IFilterExpressionList { + /** + * Constructs a new Annotation. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation); - /** - * Constructs a new FilterExpressionList. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.IFilterExpressionList); + /** Annotation path. */ + public path: number[]; - /** FilterExpressionList expressions. */ - public expressions: google.analytics.data.v1alpha.IFilterExpression[]; + /** Annotation sourceFile. */ + public sourceFile: string; - /** - * Creates a new FilterExpressionList instance using the specified properties. - * @param [properties] Properties to set - * @returns FilterExpressionList instance - */ - public static create(properties?: google.analytics.data.v1alpha.IFilterExpressionList): google.analytics.data.v1alpha.FilterExpressionList; + /** Annotation begin. */ + public begin: number; - /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + /** Annotation end. */ + public end: number; - /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new Annotation instance using the specified properties. + * @param [properties] Properties to set + * @returns Annotation instance + */ + public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation; - /** - * Decodes a FilterExpressionList message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FilterExpressionList - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpressionList; + /** + * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @param message Annotation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @param message Annotation message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Annotation message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Decodes an Annotation message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Verifies an Annotation message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an Annotation message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Annotation + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation; + + /** + * Creates a plain object from an Annotation message. Also converts values to other types if specified. + * @param message Annotation + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Annotation to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + } + + /** Namespace analytics. */ + namespace analytics { + + /** Namespace data. */ + namespace data { + + /** Namespace v1alpha. */ + namespace v1alpha { + + /** Represents an AlphaAnalyticsData */ + class AlphaAnalyticsData extends $protobuf.rpc.Service { /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FilterExpressionList - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing + * Constructs a new AlphaAnalyticsData service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpressionList; + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); /** - * Verifies a FilterExpressionList message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not + * Creates new AlphaAnalyticsData service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. */ - public static verify(message: { [k: string]: any }): (string|null); + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): AlphaAnalyticsData; /** - * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FilterExpressionList + * Calls RunFunnelReport. + * @param request RunFunnelReportRequest message or plain object + * @param callback Node-style callback called with the error, if any, and RunFunnelReportResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpressionList; + public runFunnelReport(request: google.analytics.data.v1alpha.IRunFunnelReportRequest, callback: google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReportCallback): void; /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. - * @param message FilterExpressionList - * @param [options] Conversion options - * @returns Plain object + * Calls RunFunnelReport. + * @param request RunFunnelReportRequest message or plain object + * @returns Promise */ - public static toObject(message: google.analytics.data.v1alpha.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public runFunnelReport(request: google.analytics.data.v1alpha.IRunFunnelReportRequest): Promise; + } + + namespace AlphaAnalyticsData { /** - * Converts this FilterExpressionList to JSON. - * @returns JSON object + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runFunnelReport}. + * @param error Error, if any + * @param [response] RunFunnelReportResponse */ - public toJSON(): { [k: string]: any }; + type RunFunnelReportCallback = (error: (Error|null), response?: google.analytics.data.v1alpha.RunFunnelReportResponse) => void; } - /** Properties of a Filter. */ - interface IFilter { + /** Properties of a RunFunnelReportRequest. */ + interface IRunFunnelReportRequest { - /** Filter fieldName */ - fieldName?: (string|null); + /** RunFunnelReportRequest property */ + property?: (string|null); - /** Filter nullFilter */ - nullFilter?: (boolean|null); + /** RunFunnelReportRequest dateRanges */ + dateRanges?: (google.analytics.data.v1alpha.IDateRange[]|null); - /** Filter stringFilter */ - stringFilter?: (google.analytics.data.v1alpha.Filter.IStringFilter|null); + /** RunFunnelReportRequest funnel */ + funnel?: (google.analytics.data.v1alpha.IFunnel|null); - /** Filter inListFilter */ - inListFilter?: (google.analytics.data.v1alpha.Filter.IInListFilter|null); + /** RunFunnelReportRequest funnelBreakdown */ + funnelBreakdown?: (google.analytics.data.v1alpha.IFunnelBreakdown|null); - /** Filter numericFilter */ - numericFilter?: (google.analytics.data.v1alpha.Filter.INumericFilter|null); + /** RunFunnelReportRequest funnelNextAction */ + funnelNextAction?: (google.analytics.data.v1alpha.IFunnelNextAction|null); - /** Filter betweenFilter */ - betweenFilter?: (google.analytics.data.v1alpha.Filter.IBetweenFilter|null); + /** RunFunnelReportRequest funnelVisualizationType */ + funnelVisualizationType?: (google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|keyof typeof google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|null); + + /** RunFunnelReportRequest segments */ + segments?: (google.analytics.data.v1alpha.ISegment[]|null); + + /** RunFunnelReportRequest limit */ + limit?: (number|Long|string|null); + + /** RunFunnelReportRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** RunFunnelReportRequest returnPropertyQuota */ + returnPropertyQuota?: (boolean|null); } - /** Represents a Filter. */ - class Filter implements IFilter { + /** Represents a RunFunnelReportRequest. */ + class RunFunnelReportRequest implements IRunFunnelReportRequest { /** - * Constructs a new Filter. + * Constructs a new RunFunnelReportRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IFilter); + constructor(properties?: google.analytics.data.v1alpha.IRunFunnelReportRequest); - /** Filter fieldName. */ - public fieldName: string; + /** RunFunnelReportRequest property. */ + public property: string; - /** Filter nullFilter. */ - public nullFilter?: (boolean|null); + /** RunFunnelReportRequest dateRanges. */ + public dateRanges: google.analytics.data.v1alpha.IDateRange[]; - /** Filter stringFilter. */ - public stringFilter?: (google.analytics.data.v1alpha.Filter.IStringFilter|null); + /** RunFunnelReportRequest funnel. */ + public funnel?: (google.analytics.data.v1alpha.IFunnel|null); - /** Filter inListFilter. */ - public inListFilter?: (google.analytics.data.v1alpha.Filter.IInListFilter|null); + /** RunFunnelReportRequest funnelBreakdown. */ + public funnelBreakdown?: (google.analytics.data.v1alpha.IFunnelBreakdown|null); - /** Filter numericFilter. */ - public numericFilter?: (google.analytics.data.v1alpha.Filter.INumericFilter|null); + /** RunFunnelReportRequest funnelNextAction. */ + public funnelNextAction?: (google.analytics.data.v1alpha.IFunnelNextAction|null); - /** Filter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1alpha.Filter.IBetweenFilter|null); + /** RunFunnelReportRequest funnelVisualizationType. */ + public funnelVisualizationType: (google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|keyof typeof google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType); - /** Filter oneFilter. */ - public oneFilter?: ("nullFilter"|"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); + /** RunFunnelReportRequest segments. */ + public segments: google.analytics.data.v1alpha.ISegment[]; + + /** RunFunnelReportRequest limit. */ + public limit: (number|Long|string); + + /** RunFunnelReportRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1alpha.IFilterExpression|null); + + /** RunFunnelReportRequest returnPropertyQuota. */ + public returnPropertyQuota: boolean; /** - * Creates a new Filter instance using the specified properties. + * Creates a new RunFunnelReportRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Filter instance + * @returns RunFunnelReportRequest instance */ - public static create(properties?: google.analytics.data.v1alpha.IFilter): google.analytics.data.v1alpha.Filter; + public static create(properties?: google.analytics.data.v1alpha.IRunFunnelReportRequest): google.analytics.data.v1alpha.RunFunnelReportRequest; /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode + * Encodes the specified RunFunnelReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. + * @param message RunFunnelReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IRunFunnelReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode + * Encodes the specified RunFunnelReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. + * @param message RunFunnelReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IRunFunnelReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Filter message from the specified reader or buffer. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Filter + * @returns RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunFunnelReportRequest; /** - * Decodes a Filter message from the specified reader or buffer, length delimited. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Filter + * @returns RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunFunnelReportRequest; /** - * Verifies a Filter message. + * Verifies a RunFunnelReportRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * Creates a RunFunnelReportRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Filter + * @returns RunFunnelReportRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunFunnelReportRequest; /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. - * @param message Filter + * Creates a plain object from a RunFunnelReportRequest message. Also converts values to other types if specified. + * @param message RunFunnelReportRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Filter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - - namespace Filter { - - /** Properties of a StringFilter. */ - interface IStringFilter { - - /** StringFilter matchType */ - matchType?: (google.analytics.data.v1alpha.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.Filter.StringFilter.MatchType|null); - - /** StringFilter value */ - value?: (string|null); - - /** StringFilter caseSensitive */ - caseSensitive?: (boolean|null); - } - - /** Represents a StringFilter. */ - class StringFilter implements IStringFilter { - - /** - * Constructs a new StringFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.Filter.IStringFilter); - - /** StringFilter matchType. */ - public matchType: (google.analytics.data.v1alpha.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.Filter.StringFilter.MatchType); - - /** StringFilter value. */ - public value: string; - - /** StringFilter caseSensitive. */ - public caseSensitive: boolean; - - /** - * Creates a new StringFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns StringFilter instance - */ - public static create(properties?: google.analytics.data.v1alpha.Filter.IStringFilter): google.analytics.data.v1alpha.Filter.StringFilter; - - /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a StringFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter.StringFilter; - - /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter.StringFilter; - - /** - * Verifies a StringFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns StringFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter.StringFilter; - - /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @param message StringFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Filter.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this StringFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - - namespace StringFilter { - - /** MatchType enum. */ - enum MatchType { - MATCH_TYPE_UNSPECIFIED = 0, - EXACT = 1, - BEGINS_WITH = 2, - ENDS_WITH = 3, - CONTAINS = 4, - FULL_REGEXP = 5, - PARTIAL_REGEXP = 6 - } - } - - /** Properties of an InListFilter. */ - interface IInListFilter { - - /** InListFilter values */ - values?: (string[]|null); - - /** InListFilter caseSensitive */ - caseSensitive?: (boolean|null); - } - - /** Represents an InListFilter. */ - class InListFilter implements IInListFilter { - - /** - * Constructs a new InListFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.Filter.IInListFilter); - - /** InListFilter values. */ - public values: string[]; - - /** InListFilter caseSensitive. */ - public caseSensitive: boolean; - - /** - * Creates a new InListFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns InListFilter instance - */ - public static create(properties?: google.analytics.data.v1alpha.Filter.IInListFilter): google.analytics.data.v1alpha.Filter.InListFilter; - - /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an InListFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter.InListFilter; - - /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter.InListFilter; - - /** - * Verifies an InListFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns InListFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter.InListFilter; + public static toObject(message: google.analytics.data.v1alpha.RunFunnelReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @param message InListFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Filter.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Converts this RunFunnelReportRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Converts this InListFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + namespace RunFunnelReportRequest { + + /** FunnelVisualizationType enum. */ + enum FunnelVisualizationType { + FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED = 0, + STANDARD_FUNNEL = 1, + TRENDED_FUNNEL = 2 } + } - /** Properties of a NumericFilter. */ - interface INumericFilter { + /** Properties of a RunFunnelReportResponse. */ + interface IRunFunnelReportResponse { - /** NumericFilter operation */ - operation?: (google.analytics.data.v1alpha.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.Filter.NumericFilter.Operation|null); + /** RunFunnelReportResponse funnelTable */ + funnelTable?: (google.analytics.data.v1alpha.IFunnelSubReport|null); - /** NumericFilter value */ - value?: (google.analytics.data.v1alpha.INumericValue|null); - } + /** RunFunnelReportResponse funnelVisualization */ + funnelVisualization?: (google.analytics.data.v1alpha.IFunnelSubReport|null); - /** Represents a NumericFilter. */ - class NumericFilter implements INumericFilter { + /** RunFunnelReportResponse propertyQuota */ + propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); - /** - * Constructs a new NumericFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.Filter.INumericFilter); + /** RunFunnelReportResponse kind */ + kind?: (string|null); + } - /** NumericFilter operation. */ - public operation: (google.analytics.data.v1alpha.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.Filter.NumericFilter.Operation); + /** Represents a RunFunnelReportResponse. */ + class RunFunnelReportResponse implements IRunFunnelReportResponse { - /** NumericFilter value. */ - public value?: (google.analytics.data.v1alpha.INumericValue|null); + /** + * Constructs a new RunFunnelReportResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IRunFunnelReportResponse); - /** - * Creates a new NumericFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns NumericFilter instance - */ - public static create(properties?: google.analytics.data.v1alpha.Filter.INumericFilter): google.analytics.data.v1alpha.Filter.NumericFilter; + /** RunFunnelReportResponse funnelTable. */ + public funnelTable?: (google.analytics.data.v1alpha.IFunnelSubReport|null); - /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunFunnelReportResponse funnelVisualization. */ + public funnelVisualization?: (google.analytics.data.v1alpha.IFunnelSubReport|null); - /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunFunnelReportResponse propertyQuota. */ + public propertyQuota?: (google.analytics.data.v1alpha.IPropertyQuota|null); - /** - * Decodes a NumericFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter.NumericFilter; + /** RunFunnelReportResponse kind. */ + public kind: string; - /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter.NumericFilter; + /** + * Creates a new RunFunnelReportResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns RunFunnelReportResponse instance + */ + public static create(properties?: google.analytics.data.v1alpha.IRunFunnelReportResponse): google.analytics.data.v1alpha.RunFunnelReportResponse; - /** - * Verifies a NumericFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified RunFunnelReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. + * @param message RunFunnelReportResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IRunFunnelReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns NumericFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter.NumericFilter; + /** + * Encodes the specified RunFunnelReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. + * @param message RunFunnelReportResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IRunFunnelReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. - * @param message NumericFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Filter.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a RunFunnelReportResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RunFunnelReportResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.RunFunnelReportResponse; - /** - * Converts this NumericFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a RunFunnelReportResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RunFunnelReportResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.RunFunnelReportResponse; - namespace NumericFilter { + /** + * Verifies a RunFunnelReportResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Operation enum. */ - enum Operation { - OPERATION_UNSPECIFIED = 0, - EQUAL = 1, - LESS_THAN = 2, - LESS_THAN_OR_EQUAL = 3, - GREATER_THAN = 4, - GREATER_THAN_OR_EQUAL = 5 - } - } + /** + * Creates a RunFunnelReportResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RunFunnelReportResponse + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.RunFunnelReportResponse; - /** Properties of a BetweenFilter. */ - interface IBetweenFilter { + /** + * Creates a plain object from a RunFunnelReportResponse message. Also converts values to other types if specified. + * @param message RunFunnelReportResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.RunFunnelReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** BetweenFilter fromValue */ - fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** + * Converts this RunFunnelReportResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** BetweenFilter toValue */ - toValue?: (google.analytics.data.v1alpha.INumericValue|null); - } + /** Properties of a DateRange. */ + interface IDateRange { - /** Represents a BetweenFilter. */ - class BetweenFilter implements IBetweenFilter { + /** DateRange startDate */ + startDate?: (string|null); - /** - * Constructs a new BetweenFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.Filter.IBetweenFilter); + /** DateRange endDate */ + endDate?: (string|null); - /** BetweenFilter fromValue. */ - public fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** DateRange name */ + name?: (string|null); + } - /** BetweenFilter toValue. */ - public toValue?: (google.analytics.data.v1alpha.INumericValue|null); + /** Represents a DateRange. */ + class DateRange implements IDateRange { - /** - * Creates a new BetweenFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns BetweenFilter instance - */ - public static create(properties?: google.analytics.data.v1alpha.Filter.IBetweenFilter): google.analytics.data.v1alpha.Filter.BetweenFilter; + /** + * Constructs a new DateRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IDateRange); - /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** DateRange startDate. */ + public startDate: string; - /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** DateRange endDate. */ + public endDate: string; - /** - * Decodes a BetweenFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter.BetweenFilter; + /** DateRange name. */ + public name: string; - /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter.BetweenFilter; + /** + * Creates a new DateRange instance using the specified properties. + * @param [properties] Properties to set + * @returns DateRange instance + */ + public static create(properties?: google.analytics.data.v1alpha.IDateRange): google.analytics.data.v1alpha.DateRange; - /** - * Verifies a BetweenFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BetweenFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter.BetweenFilter; + /** + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DateRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DateRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DateRange; + + /** + * Decodes a DateRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DateRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DateRange; - /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. - * @param message BetweenFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.Filter.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies a DateRange message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Converts this BetweenFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DateRange + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DateRange; - /** Properties of an OrderBy. */ - interface IOrderBy { + /** + * Creates a plain object from a DateRange message. Also converts values to other types if specified. + * @param message DateRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** OrderBy metric */ - metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); + /** + * Converts this DateRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** OrderBy dimension */ - dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); + /** Properties of a Dimension. */ + interface IDimension { - /** OrderBy pivot */ - pivot?: (google.analytics.data.v1alpha.OrderBy.IPivotOrderBy|null); + /** Dimension name */ + name?: (string|null); - /** OrderBy desc */ - desc?: (boolean|null); + /** Dimension dimensionExpression */ + dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); } - /** Represents an OrderBy. */ - class OrderBy implements IOrderBy { + /** Represents a Dimension. */ + class Dimension implements IDimension { /** - * Constructs a new OrderBy. + * Constructs a new Dimension. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IOrderBy); - - /** OrderBy metric. */ - public metric?: (google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null); - - /** OrderBy dimension. */ - public dimension?: (google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null); - - /** OrderBy pivot. */ - public pivot?: (google.analytics.data.v1alpha.OrderBy.IPivotOrderBy|null); + constructor(properties?: google.analytics.data.v1alpha.IDimension); - /** OrderBy desc. */ - public desc: boolean; + /** Dimension name. */ + public name: string; - /** OrderBy oneOrderBy. */ - public oneOrderBy?: ("metric"|"dimension"|"pivot"); + /** Dimension dimensionExpression. */ + public dimensionExpression?: (google.analytics.data.v1alpha.IDimensionExpression|null); /** - * Creates a new OrderBy instance using the specified properties. + * Creates a new Dimension instance using the specified properties. * @param [properties] Properties to set - * @returns OrderBy instance + * @returns Dimension instance */ - public static create(properties?: google.analytics.data.v1alpha.IOrderBy): google.analytics.data.v1alpha.OrderBy; + public static create(properties?: google.analytics.data.v1alpha.IDimension): google.analytics.data.v1alpha.Dimension; /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an OrderBy message from the specified reader or buffer. + * Decodes a Dimension message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns OrderBy + * @returns Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.OrderBy; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Dimension; /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * Decodes a Dimension message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns OrderBy + * @returns Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.OrderBy; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Dimension; /** - * Verifies an OrderBy message. + * Verifies a Dimension message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns OrderBy + * @returns Dimension */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Dimension; /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. - * @param message OrderBy + * Creates a plain object from a Dimension message. Also converts values to other types if specified. + * @param message Dimension * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this OrderBy to JSON. + * Converts this Dimension to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace OrderBy { + /** Properties of a DimensionExpression. */ + interface IDimensionExpression { - /** Properties of a MetricOrderBy. */ - interface IMetricOrderBy { + /** DimensionExpression lowerCase */ + lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - /** MetricOrderBy metricName */ - metricName?: (string|null); - } + /** DimensionExpression upperCase */ + upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - /** Represents a MetricOrderBy. */ - class MetricOrderBy implements IMetricOrderBy { + /** DimensionExpression concatenate */ + concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); + } - /** - * Constructs a new MetricOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy); + /** Represents a DimensionExpression. */ + class DimensionExpression implements IDimensionExpression { - /** MetricOrderBy metricName. */ - public metricName: string; + /** + * Constructs a new DimensionExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IDimensionExpression); - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns MetricOrderBy instance - */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** DimensionExpression lowerCase. */ + public lowerCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** DimensionExpression upperCase. */ + public upperCase?: (google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null); - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** DimensionExpression concatenate. */ + public concatenate?: (google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null); - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** DimensionExpression oneExpression. */ + public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** + * Creates a new DimensionExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionExpression instance + */ + public static create(properties?: google.analytics.data.v1alpha.IDimensionExpression): google.analytics.data.v1alpha.DimensionExpression; - /** - * Verifies a MetricOrderBy message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MetricOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.MetricOrderBy; + /** + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @param message MetricOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.MetricOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a DimensionExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression; + + /** + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression; + + /** + * Verifies a DimensionExpression message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression; + + /** + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * @param message DimensionExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DimensionExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Converts this MetricOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + namespace DimensionExpression { - /** Properties of a DimensionOrderBy. */ - interface IDimensionOrderBy { + /** Properties of a CaseExpression. */ + interface ICaseExpression { - /** DimensionOrderBy dimensionName */ + /** CaseExpression dimensionName */ dimensionName?: (string|null); - - /** DimensionOrderBy orderType */ - orderType?: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null); } - /** Represents a DimensionOrderBy. */ - class DimensionOrderBy implements IDimensionOrderBy { + /** Represents a CaseExpression. */ + class CaseExpression implements ICaseExpression { /** - * Constructs a new DimensionOrderBy. + * Constructs a new CaseExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy); + constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression); - /** DimensionOrderBy dimensionName. */ + /** CaseExpression dimensionName. */ public dimensionName: string; - /** DimensionOrderBy orderType. */ - public orderType: (google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType); - /** - * Creates a new DimensionOrderBy instance using the specified properties. + * Creates a new CaseExpression instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionOrderBy instance + * @returns CaseExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. + * Decodes a CaseExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionOrderBy + * @returns CaseExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionOrderBy + * @returns CaseExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; /** - * Verifies a DimensionOrderBy message. + * Verifies a CaseExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionOrderBy + * @returns CaseExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.DimensionOrderBy; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.CaseExpression; /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @param message DimensionOrderBy + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @param message CaseExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.DimensionOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionOrderBy to JSON. + * Converts this CaseExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace DimensionOrderBy { - - /** OrderType enum. */ - enum OrderType { - ORDER_TYPE_UNSPECIFIED = 0, - ALPHANUMERIC = 1, - CASE_INSENSITIVE_ALPHANUMERIC = 2, - NUMERIC = 3 - } - } - - /** Properties of a PivotOrderBy. */ - interface IPivotOrderBy { + /** Properties of a ConcatenateExpression. */ + interface IConcatenateExpression { - /** PivotOrderBy metricName */ - metricName?: (string|null); + /** ConcatenateExpression dimensionNames */ + dimensionNames?: (string[]|null); - /** PivotOrderBy pivotSelections */ - pivotSelections?: (google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection[]|null); + /** ConcatenateExpression delimiter */ + delimiter?: (string|null); } - /** Represents a PivotOrderBy. */ - class PivotOrderBy implements IPivotOrderBy { + /** Represents a ConcatenateExpression. */ + class ConcatenateExpression implements IConcatenateExpression { /** - * Constructs a new PivotOrderBy. + * Constructs a new ConcatenateExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.IPivotOrderBy); + constructor(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression); - /** PivotOrderBy metricName. */ - public metricName: string; + /** ConcatenateExpression dimensionNames. */ + public dimensionNames: string[]; - /** PivotOrderBy pivotSelections. */ - public pivotSelections: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection[]; + /** ConcatenateExpression delimiter. */ + public delimiter: string; /** - * Creates a new PivotOrderBy instance using the specified properties. + * Creates a new ConcatenateExpression instance using the specified properties. * @param [properties] Properties to set - * @returns PivotOrderBy instance + * @returns ConcatenateExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.IPivotOrderBy): google.analytics.data.v1alpha.OrderBy.PivotOrderBy; + public static create(properties?: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; /** - * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.verify|verify} messages. - * @param message PivotOrderBy message or plain object to encode + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.verify|verify} messages. - * @param message PivotOrderBy message or plain object to encode + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PivotOrderBy message from the specified reader or buffer. + * Decodes a ConcatenateExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PivotOrderBy + * @returns ConcatenateExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.OrderBy.PivotOrderBy; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; /** - * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PivotOrderBy + * @returns ConcatenateExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.OrderBy.PivotOrderBy; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; /** - * Verifies a PivotOrderBy message. + * Verifies a ConcatenateExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PivotOrderBy + * @returns ConcatenateExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.PivotOrderBy; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression; /** - * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. - * @param message PivotOrderBy + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @param message ConcatenateExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.PivotOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PivotOrderBy to JSON. + * Converts this ConcatenateExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - - namespace PivotOrderBy { - - /** Properties of a PivotSelection. */ - interface IPivotSelection { - - /** PivotSelection dimensionName */ - dimensionName?: (string|null); - - /** PivotSelection dimensionValue */ - dimensionValue?: (string|null); - } - - /** Represents a PivotSelection. */ - class PivotSelection implements IPivotSelection { - - /** - * Constructs a new PivotSelection. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection); - - /** PivotSelection dimensionName. */ - public dimensionName: string; - - /** PivotSelection dimensionValue. */ - public dimensionValue: string; - - /** - * Creates a new PivotSelection instance using the specified properties. - * @param [properties] Properties to set - * @returns PivotSelection instance - */ - public static create(properties?: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection): google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection; - - /** - * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @param message PivotSelection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @param message PivotSelection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PivotSelection message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection; - - /** - * Decodes a PivotSelection message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection; - - /** - * Verifies a PivotSelection message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PivotSelection - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection; - - /** - * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. - * @param message PivotSelection - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this PivotSelection to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } } - /** Properties of a Pivot. */ - interface IPivot { - - /** Pivot fieldNames */ - fieldNames?: (string[]|null); + /** Properties of a FilterExpression. */ + interface IFilterExpression { - /** Pivot orderBys */ - orderBys?: (google.analytics.data.v1alpha.IOrderBy[]|null); + /** FilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** Pivot offset */ - offset?: (number|Long|string|null); + /** FilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** Pivot limit */ - limit?: (number|Long|string|null); + /** FilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); - /** Pivot metricAggregations */ - metricAggregations?: (google.analytics.data.v1alpha.MetricAggregation[]|null); + /** FilterExpression filter */ + filter?: (google.analytics.data.v1alpha.IFilter|null); } - /** Represents a Pivot. */ - class Pivot implements IPivot { + /** Represents a FilterExpression. */ + class FilterExpression implements IFilterExpression { /** - * Constructs a new Pivot. + * Constructs a new FilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IPivot); + constructor(properties?: google.analytics.data.v1alpha.IFilterExpression); - /** Pivot fieldNames. */ - public fieldNames: string[]; + /** FilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** Pivot orderBys. */ - public orderBys: google.analytics.data.v1alpha.IOrderBy[]; + /** FilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFilterExpressionList|null); - /** Pivot offset. */ - public offset: (number|Long|string); + /** FilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFilterExpression|null); - /** Pivot limit. */ - public limit: (number|Long|string); + /** FilterExpression filter. */ + public filter?: (google.analytics.data.v1alpha.IFilter|null); - /** Pivot metricAggregations. */ - public metricAggregations: google.analytics.data.v1alpha.MetricAggregation[]; + /** FilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); /** - * Creates a new Pivot instance using the specified properties. + * Creates a new FilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns Pivot instance + * @returns FilterExpression instance */ - public static create(properties?: google.analytics.data.v1alpha.IPivot): google.analytics.data.v1alpha.Pivot; + public static create(properties?: google.analytics.data.v1alpha.IFilterExpression): google.analytics.data.v1alpha.FilterExpression; /** - * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1alpha.Pivot.verify|verify} messages. - * @param message Pivot message or plain object to encode + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Pivot.verify|verify} messages. - * @param message Pivot message or plain object to encode + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Pivot message from the specified reader or buffer. + * Decodes a FilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Pivot + * @returns FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Pivot; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpression; /** - * Decodes a Pivot message from the specified reader or buffer, length delimited. + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Pivot + * @returns FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Pivot; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpression; /** - * Verifies a Pivot message. + * Verifies a FilterExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Pivot + * @returns FilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Pivot; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpression; /** - * Creates a plain object from a Pivot message. Also converts values to other types if specified. - * @param message Pivot + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * @param message FilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Pivot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Pivot to JSON. + * Converts this FilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a CohortSpec. */ - interface ICohortSpec { - - /** CohortSpec cohorts */ - cohorts?: (google.analytics.data.v1alpha.ICohort[]|null); - - /** CohortSpec cohortsRange */ - cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); + /** Properties of a FilterExpressionList. */ + interface IFilterExpressionList { - /** CohortSpec cohortReportSettings */ - cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); + /** FilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFilterExpression[]|null); } - /** Represents a CohortSpec. */ - class CohortSpec implements ICohortSpec { + /** Represents a FilterExpressionList. */ + class FilterExpressionList implements IFilterExpressionList { /** - * Constructs a new CohortSpec. + * Constructs a new FilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortSpec); - - /** CohortSpec cohorts. */ - public cohorts: google.analytics.data.v1alpha.ICohort[]; - - /** CohortSpec cohortsRange. */ - public cohortsRange?: (google.analytics.data.v1alpha.ICohortsRange|null); + constructor(properties?: google.analytics.data.v1alpha.IFilterExpressionList); - /** CohortSpec cohortReportSettings. */ - public cohortReportSettings?: (google.analytics.data.v1alpha.ICohortReportSettings|null); + /** FilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFilterExpression[]; /** - * Creates a new CohortSpec instance using the specified properties. + * Creates a new FilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns CohortSpec instance + * @returns FilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortSpec): google.analytics.data.v1alpha.CohortSpec; + public static create(properties?: google.analytics.data.v1alpha.IFilterExpressionList): google.analytics.data.v1alpha.FilterExpressionList; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes a FilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortSpec + * @returns FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.CohortSpec; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FilterExpressionList; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortSpec + * @returns FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.CohortSpec; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FilterExpressionList; /** - * Verifies a CohortSpec message. + * Verifies a FilterExpressionList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortSpec + * @returns FilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortSpec; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FilterExpressionList; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. - * @param message CohortSpec + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * @param message FilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.CohortSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortSpec to JSON. + * Converts this FilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Cohort. */ - interface ICohort { + /** Properties of a Filter. */ + interface IFilter { - /** Cohort name */ - name?: (string|null); + /** Filter fieldName */ + fieldName?: (string|null); - /** Cohort dimension */ - dimension?: (string|null); + /** Filter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Cohort dateRange */ - dateRange?: (google.analytics.data.v1alpha.IDateRange|null); + /** Filter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** Filter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** Filter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); } - /** Represents a Cohort. */ - class Cohort implements ICohort { + /** Represents a Filter. */ + class Filter implements IFilter { /** - * Constructs a new Cohort. + * Constructs a new Filter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohort); + constructor(properties?: google.analytics.data.v1alpha.IFilter); - /** Cohort name. */ - public name: string; + /** Filter fieldName. */ + public fieldName: string; - /** Cohort dimension. */ - public dimension: string; + /** Filter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Cohort dateRange. */ - public dateRange?: (google.analytics.data.v1alpha.IDateRange|null); + /** Filter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** Filter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** Filter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** Filter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new Cohort instance using the specified properties. + * Creates a new Filter instance using the specified properties. * @param [properties] Properties to set - * @returns Cohort instance + * @returns Filter instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohort): google.analytics.data.v1alpha.Cohort; + public static create(properties?: google.analytics.data.v1alpha.IFilter): google.analytics.data.v1alpha.Filter; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a Filter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cohort + * @returns Filter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Cohort; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Filter; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a Filter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cohort + * @returns Filter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Cohort; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Filter; /** - * Verifies a Cohort message. + * Verifies a Filter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a Filter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cohort + * @returns Filter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Cohort; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Filter; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. - * @param message Cohort + * Creates a plain object from a Filter message. Also converts values to other types if specified. + * @param message Filter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.Cohort, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cohort to JSON. + * Converts this Filter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a CohortsRange. */ - interface ICohortsRange { + /** Properties of a StringFilter. */ + interface IStringFilter { - /** CohortsRange granularity */ - granularity?: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity|null); + /** StringFilter matchType */ + matchType?: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType|null); - /** CohortsRange startOffset */ - startOffset?: (number|null); + /** StringFilter value */ + value?: (string|null); - /** CohortsRange endOffset */ - endOffset?: (number|null); + /** StringFilter caseSensitive */ + caseSensitive?: (boolean|null); } - /** Represents a CohortsRange. */ - class CohortsRange implements ICohortsRange { + /** Represents a StringFilter. */ + class StringFilter implements IStringFilter { /** - * Constructs a new CohortsRange. + * Constructs a new StringFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortsRange); + constructor(properties?: google.analytics.data.v1alpha.IStringFilter); - /** CohortsRange granularity. */ - public granularity: (google.analytics.data.v1alpha.CohortsRange.Granularity|keyof typeof google.analytics.data.v1alpha.CohortsRange.Granularity); + /** StringFilter matchType. */ + public matchType: (google.analytics.data.v1alpha.StringFilter.MatchType|keyof typeof google.analytics.data.v1alpha.StringFilter.MatchType); - /** CohortsRange startOffset. */ - public startOffset: number; + /** StringFilter value. */ + public value: string; - /** CohortsRange endOffset. */ - public endOffset: number; + /** StringFilter caseSensitive. */ + public caseSensitive: boolean; /** - * Creates a new CohortsRange instance using the specified properties. + * Creates a new StringFilter instance using the specified properties. * @param [properties] Properties to set - * @returns CohortsRange instance + * @returns StringFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortsRange): google.analytics.data.v1alpha.CohortsRange; + public static create(properties?: google.analytics.data.v1alpha.IStringFilter): google.analytics.data.v1alpha.StringFilter; /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortsRange message from the specified reader or buffer. + * Decodes a StringFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortsRange + * @returns StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.CohortsRange; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.StringFilter; /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * Decodes a StringFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortsRange + * @returns StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.CohortsRange; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.StringFilter; /** - * Verifies a CohortsRange message. + * Verifies a StringFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortsRange + * @returns StringFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortsRange; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.StringFilter; /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. - * @param message CohortsRange + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. + * @param message StringFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.CohortsRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortsRange to JSON. + * Converts this StringFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace CohortsRange { + namespace StringFilter { - /** Granularity enum. */ - enum Granularity { - GRANULARITY_UNSPECIFIED = 0, - DAILY = 1, - WEEKLY = 2, - MONTHLY = 3 + /** MatchType enum. */ + enum MatchType { + MATCH_TYPE_UNSPECIFIED = 0, + EXACT = 1, + BEGINS_WITH = 2, + ENDS_WITH = 3, + CONTAINS = 4, + FULL_REGEXP = 5, + PARTIAL_REGEXP = 6 } } - /** Properties of a CohortReportSettings. */ - interface ICohortReportSettings { + /** Properties of an InListFilter. */ + interface IInListFilter { - /** CohortReportSettings accumulate */ - accumulate?: (boolean|null); + /** InListFilter values */ + values?: (string[]|null); + + /** InListFilter caseSensitive */ + caseSensitive?: (boolean|null); } - /** Represents a CohortReportSettings. */ - class CohortReportSettings implements ICohortReportSettings { + /** Represents an InListFilter. */ + class InListFilter implements IInListFilter { /** - * Constructs a new CohortReportSettings. + * Constructs a new InListFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.ICohortReportSettings); + constructor(properties?: google.analytics.data.v1alpha.IInListFilter); - /** CohortReportSettings accumulate. */ - public accumulate: boolean; + /** InListFilter values. */ + public values: string[]; + + /** InListFilter caseSensitive. */ + public caseSensitive: boolean; /** - * Creates a new CohortReportSettings instance using the specified properties. + * Creates a new InListFilter instance using the specified properties. * @param [properties] Properties to set - * @returns CohortReportSettings instance + * @returns InListFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.ICohortReportSettings): google.analytics.data.v1alpha.CohortReportSettings; + public static create(properties?: google.analytics.data.v1alpha.IInListFilter): google.analytics.data.v1alpha.InListFilter; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * Decodes an InListFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortReportSettings + * @returns InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.CohortReportSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.InListFilter; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes an InListFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortReportSettings + * @returns InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.CohortReportSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.InListFilter; /** - * Verifies a CohortReportSettings message. + * Verifies an InListFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortReportSettings + * @returns InListFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.CohortReportSettings; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.InListFilter; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. - * @param message CohortReportSettings + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. + * @param message InListFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.CohortReportSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortReportSettings to JSON. + * Converts this InListFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a ResponseMetaData. */ - interface IResponseMetaData { + /** Properties of a NumericFilter. */ + interface INumericFilter { - /** ResponseMetaData dataLossFromOtherRow */ - dataLossFromOtherRow?: (boolean|null); + /** NumericFilter operation */ + operation?: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation|null); + + /** NumericFilter value */ + value?: (google.analytics.data.v1alpha.INumericValue|null); } - /** Represents a ResponseMetaData. */ - class ResponseMetaData implements IResponseMetaData { + /** Represents a NumericFilter. */ + class NumericFilter implements INumericFilter { /** - * Constructs a new ResponseMetaData. + * Constructs a new NumericFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IResponseMetaData); + constructor(properties?: google.analytics.data.v1alpha.INumericFilter); - /** ResponseMetaData dataLossFromOtherRow. */ - public dataLossFromOtherRow: boolean; + /** NumericFilter operation. */ + public operation: (google.analytics.data.v1alpha.NumericFilter.Operation|keyof typeof google.analytics.data.v1alpha.NumericFilter.Operation); + + /** NumericFilter value. */ + public value?: (google.analytics.data.v1alpha.INumericValue|null); /** - * Creates a new ResponseMetaData instance using the specified properties. + * Creates a new NumericFilter instance using the specified properties. * @param [properties] Properties to set - * @returns ResponseMetaData instance + * @returns NumericFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.IResponseMetaData): google.analytics.data.v1alpha.ResponseMetaData; + public static create(properties?: google.analytics.data.v1alpha.INumericFilter): google.analytics.data.v1alpha.NumericFilter; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Decodes a NumericFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ResponseMetaData + * @returns NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.ResponseMetaData; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.NumericFilter; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ResponseMetaData + * @returns NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.ResponseMetaData; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.NumericFilter; /** - * Verifies a ResponseMetaData message. + * Verifies a NumericFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ResponseMetaData + * @returns NumericFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.ResponseMetaData; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericFilter; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. - * @param message ResponseMetaData + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. + * @param message NumericFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.ResponseMetaData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ResponseMetaData to JSON. + * Converts this NumericFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionHeader. */ - interface IDimensionHeader { + namespace NumericFilter { - /** DimensionHeader name */ - name?: (string|null); + /** Operation enum. */ + enum Operation { + OPERATION_UNSPECIFIED = 0, + EQUAL = 1, + LESS_THAN = 2, + LESS_THAN_OR_EQUAL = 3, + GREATER_THAN = 4, + GREATER_THAN_OR_EQUAL = 5 + } } - /** Represents a DimensionHeader. */ - class DimensionHeader implements IDimensionHeader { + /** Properties of a BetweenFilter. */ + interface IBetweenFilter { + + /** BetweenFilter fromValue */ + fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + + /** BetweenFilter toValue */ + toValue?: (google.analytics.data.v1alpha.INumericValue|null); + } + + /** Represents a BetweenFilter. */ + class BetweenFilter implements IBetweenFilter { /** - * Constructs a new DimensionHeader. + * Constructs a new BetweenFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionHeader); + constructor(properties?: google.analytics.data.v1alpha.IBetweenFilter); - /** DimensionHeader name. */ - public name: string; + /** BetweenFilter fromValue. */ + public fromValue?: (google.analytics.data.v1alpha.INumericValue|null); + + /** BetweenFilter toValue. */ + public toValue?: (google.analytics.data.v1alpha.INumericValue|null); /** - * Creates a new DimensionHeader instance using the specified properties. + * Creates a new BetweenFilter instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionHeader instance + * @returns BetweenFilter instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionHeader): google.analytics.data.v1alpha.DimensionHeader; + public static create(properties?: google.analytics.data.v1alpha.IBetweenFilter): google.analytics.data.v1alpha.BetweenFilter; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a BetweenFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionHeader + * @returns BetweenFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.BetweenFilter; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionHeader + * @returns BetweenFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.BetweenFilter; /** - * Verifies a DimensionHeader message. + * Verifies a BetweenFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionHeader + * @returns BetweenFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.BetweenFilter; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. - * @param message DimensionHeader + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * @param message BetweenFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionHeader to JSON. + * Converts this BetweenFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricHeader. */ - interface IMetricHeader { + /** Properties of a NumericValue. */ + interface INumericValue { - /** MetricHeader name */ - name?: (string|null); + /** NumericValue int64Value */ + int64Value?: (number|Long|string|null); - /** MetricHeader type */ - type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); + /** NumericValue doubleValue */ + doubleValue?: (number|null); } - /** Represents a MetricHeader. */ - class MetricHeader implements IMetricHeader { + /** Represents a NumericValue. */ + class NumericValue implements INumericValue { /** - * Constructs a new MetricHeader. + * Constructs a new NumericValue. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IMetricHeader); + constructor(properties?: google.analytics.data.v1alpha.INumericValue); - /** MetricHeader name. */ - public name: string; + /** NumericValue int64Value. */ + public int64Value?: (number|Long|string|null); - /** MetricHeader type. */ - public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); + /** NumericValue doubleValue. */ + public doubleValue?: (number|null); + + /** NumericValue oneValue. */ + public oneValue?: ("int64Value"|"doubleValue"); /** - * Creates a new MetricHeader instance using the specified properties. + * Creates a new NumericValue instance using the specified properties. * @param [properties] Properties to set - * @returns MetricHeader instance + * @returns NumericValue instance */ - public static create(properties?: google.analytics.data.v1alpha.IMetricHeader): google.analytics.data.v1alpha.MetricHeader; + public static create(properties?: google.analytics.data.v1alpha.INumericValue): google.analytics.data.v1alpha.NumericValue; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a NumericValue message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricHeader + * @returns NumericValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.MetricHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.NumericValue; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a NumericValue message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricHeader + * @returns NumericValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.MetricHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.NumericValue; /** - * Verifies a MetricHeader message. + * Verifies a NumericValue message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricHeader + * @returns NumericValue */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericValue; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. - * @param message MetricHeader + * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * @param message NumericValue * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricHeader to JSON. + * Converts this NumericValue to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PivotHeader. */ - interface IPivotHeader { - - /** PivotHeader pivotDimensionHeaders */ - pivotDimensionHeaders?: (google.analytics.data.v1alpha.IPivotDimensionHeader[]|null); + /** Properties of a DimensionHeader. */ + interface IDimensionHeader { - /** PivotHeader rowCount */ - rowCount?: (number|null); + /** DimensionHeader name */ + name?: (string|null); } - /** Represents a PivotHeader. */ - class PivotHeader implements IPivotHeader { + /** Represents a DimensionHeader. */ + class DimensionHeader implements IDimensionHeader { /** - * Constructs a new PivotHeader. + * Constructs a new DimensionHeader. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IPivotHeader); - - /** PivotHeader pivotDimensionHeaders. */ - public pivotDimensionHeaders: google.analytics.data.v1alpha.IPivotDimensionHeader[]; + constructor(properties?: google.analytics.data.v1alpha.IDimensionHeader); - /** PivotHeader rowCount. */ - public rowCount: number; + /** DimensionHeader name. */ + public name: string; /** - * Creates a new PivotHeader instance using the specified properties. + * Creates a new DimensionHeader instance using the specified properties. * @param [properties] Properties to set - * @returns PivotHeader instance + * @returns DimensionHeader instance */ - public static create(properties?: google.analytics.data.v1alpha.IPivotHeader): google.analytics.data.v1alpha.PivotHeader; + public static create(properties?: google.analytics.data.v1alpha.IDimensionHeader): google.analytics.data.v1alpha.DimensionHeader; /** - * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1alpha.PivotHeader.verify|verify} messages. - * @param message PivotHeader message or plain object to encode + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PivotHeader.verify|verify} messages. - * @param message PivotHeader message or plain object to encode + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PivotHeader message from the specified reader or buffer. + * Decodes a DimensionHeader message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PivotHeader + * @returns DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.PivotHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionHeader; /** - * Decodes a PivotHeader message from the specified reader or buffer, length delimited. + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PivotHeader + * @returns DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.PivotHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionHeader; /** - * Verifies a PivotHeader message. + * Verifies a DimensionHeader message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PivotHeader + * @returns DimensionHeader */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PivotHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionHeader; /** - * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. - * @param message PivotHeader + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * @param message DimensionHeader * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.PivotHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PivotHeader to JSON. + * Converts this DimensionHeader to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PivotDimensionHeader. */ - interface IPivotDimensionHeader { + /** Properties of a MetricHeader. */ + interface IMetricHeader { - /** PivotDimensionHeader dimensionValues */ - dimensionValues?: (google.analytics.data.v1alpha.IDimensionValue[]|null); + /** MetricHeader name */ + name?: (string|null); + + /** MetricHeader type */ + type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); } - /** Represents a PivotDimensionHeader. */ - class PivotDimensionHeader implements IPivotDimensionHeader { + /** Represents a MetricHeader. */ + class MetricHeader implements IMetricHeader { /** - * Constructs a new PivotDimensionHeader. + * Constructs a new MetricHeader. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IPivotDimensionHeader); + constructor(properties?: google.analytics.data.v1alpha.IMetricHeader); - /** PivotDimensionHeader dimensionValues. */ - public dimensionValues: google.analytics.data.v1alpha.IDimensionValue[]; + /** MetricHeader name. */ + public name: string; + + /** MetricHeader type. */ + public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); /** - * Creates a new PivotDimensionHeader instance using the specified properties. + * Creates a new MetricHeader instance using the specified properties. * @param [properties] Properties to set - * @returns PivotDimensionHeader instance + * @returns MetricHeader instance */ - public static create(properties?: google.analytics.data.v1alpha.IPivotDimensionHeader): google.analytics.data.v1alpha.PivotDimensionHeader; + public static create(properties?: google.analytics.data.v1alpha.IMetricHeader): google.analytics.data.v1alpha.MetricHeader; /** - * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.PivotDimensionHeader.verify|verify} messages. - * @param message PivotDimensionHeader message or plain object to encode + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PivotDimensionHeader.verify|verify} messages. - * @param message PivotDimensionHeader message or plain object to encode + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * Decodes a MetricHeader message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PivotDimensionHeader + * @returns MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.PivotDimensionHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.MetricHeader; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PivotDimensionHeader + * @returns MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.PivotDimensionHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.MetricHeader; /** - * Verifies a PivotDimensionHeader message. + * Verifies a MetricHeader message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PivotDimensionHeader + * @returns MetricHeader */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PivotDimensionHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricHeader; /** - * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. - * @param message PivotDimensionHeader + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * @param message MetricHeader * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.PivotDimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PivotDimensionHeader to JSON. + * Converts this MetricHeader to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; @@ -4791,10404 +5353,10831 @@ export namespace google { public toJSON(): { [k: string]: any }; } - /** Properties of a NumericValue. */ - interface INumericValue { + /** Properties of a PropertyQuota. */ + interface IPropertyQuota { - /** NumericValue int64Value */ - int64Value?: (number|Long|string|null); + /** PropertyQuota tokensPerDay */ + tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** NumericValue doubleValue */ - doubleValue?: (number|null); + /** PropertyQuota tokensPerHour */ + tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota concurrentRequests */ + concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota serverErrorsPerProjectPerHour */ + serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota potentiallyThresholdedRequestsPerHour */ + potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); } - /** Represents a NumericValue. */ - class NumericValue implements INumericValue { + /** Represents a PropertyQuota. */ + class PropertyQuota implements IPropertyQuota { /** - * Constructs a new NumericValue. + * Constructs a new PropertyQuota. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.INumericValue); + constructor(properties?: google.analytics.data.v1alpha.IPropertyQuota); - /** NumericValue int64Value. */ - public int64Value?: (number|Long|string|null); + /** PropertyQuota tokensPerDay. */ + public tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** NumericValue doubleValue. */ - public doubleValue?: (number|null); + /** PropertyQuota tokensPerHour. */ + public tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); - /** NumericValue oneValue. */ - public oneValue?: ("int64Value"|"doubleValue"); + /** PropertyQuota concurrentRequests. */ + public concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota serverErrorsPerProjectPerHour. */ + public serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + + /** PropertyQuota potentiallyThresholdedRequestsPerHour. */ + public potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); /** - * Creates a new NumericValue instance using the specified properties. + * Creates a new PropertyQuota instance using the specified properties. * @param [properties] Properties to set - * @returns NumericValue instance + * @returns PropertyQuota instance */ - public static create(properties?: google.analytics.data.v1alpha.INumericValue): google.analytics.data.v1alpha.NumericValue; + public static create(properties?: google.analytics.data.v1alpha.IPropertyQuota): google.analytics.data.v1alpha.PropertyQuota; /** - * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a NumericValue message from the specified reader or buffer. + * Decodes a PropertyQuota message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns NumericValue + * @returns PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.NumericValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.PropertyQuota; /** - * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns NumericValue + * @returns PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.NumericValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.PropertyQuota; /** - * Verifies a NumericValue message. + * Verifies a PropertyQuota message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns NumericValue + * @returns PropertyQuota */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.NumericValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PropertyQuota; /** - * Creates a plain object from a NumericValue message. Also converts values to other types if specified. - * @param message NumericValue + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * @param message PropertyQuota * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this NumericValue to JSON. + * Converts this PropertyQuota to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PropertyQuota. */ - interface IPropertyQuota { + /** Properties of a QuotaStatus. */ + interface IQuotaStatus { - /** PropertyQuota tokensPerDay */ - tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** QuotaStatus consumed */ + consumed?: (number|null); - /** PropertyQuota tokensPerHour */ - tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** QuotaStatus remaining */ + remaining?: (number|null); + } - /** PropertyQuota concurrentRequests */ - concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** Represents a QuotaStatus. */ + class QuotaStatus implements IQuotaStatus { - /** PropertyQuota serverErrorsPerProjectPerHour */ - serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); - } + /** + * Constructs a new QuotaStatus. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IQuotaStatus); - /** Represents a PropertyQuota. */ - class PropertyQuota implements IPropertyQuota { + /** QuotaStatus consumed. */ + public consumed: number; + + /** QuotaStatus remaining. */ + public remaining: number; /** - * Constructs a new PropertyQuota. + * Creates a new QuotaStatus instance using the specified properties. * @param [properties] Properties to set + * @returns QuotaStatus instance */ - constructor(properties?: google.analytics.data.v1alpha.IPropertyQuota); + public static create(properties?: google.analytics.data.v1alpha.IQuotaStatus): google.analytics.data.v1alpha.QuotaStatus; - /** PropertyQuota tokensPerDay. */ - public tokensPerDay?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; - /** PropertyQuota tokensPerHour. */ - public tokensPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; - /** PropertyQuota concurrentRequests. */ - public concurrentRequests?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** + * Decodes a QuotaStatus message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.QuotaStatus; - /** PropertyQuota serverErrorsPerProjectPerHour. */ - public serverErrorsPerProjectPerHour?: (google.analytics.data.v1alpha.IQuotaStatus|null); + /** + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.QuotaStatus; /** - * Creates a new PropertyQuota instance using the specified properties. + * Verifies a QuotaStatus message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns QuotaStatus + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.QuotaStatus; + + /** + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * @param message QuotaStatus + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this QuotaStatus to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a FunnelBreakdown. */ + interface IFunnelBreakdown { + + /** FunnelBreakdown breakdownDimension */ + breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); + + /** FunnelBreakdown limit */ + limit?: (number|Long|string|null); + } + + /** Represents a FunnelBreakdown. */ + class FunnelBreakdown implements IFunnelBreakdown { + + /** + * Constructs a new FunnelBreakdown. * @param [properties] Properties to set - * @returns PropertyQuota instance */ - public static create(properties?: google.analytics.data.v1alpha.IPropertyQuota): google.analytics.data.v1alpha.PropertyQuota; + constructor(properties?: google.analytics.data.v1alpha.IFunnelBreakdown); + + /** FunnelBreakdown breakdownDimension. */ + public breakdownDimension?: (google.analytics.data.v1alpha.IDimension|null); + + /** FunnelBreakdown limit. */ + public limit?: (number|Long|string|null); + + /** FunnelBreakdown _limit. */ + public _limit?: "limit"; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Creates a new FunnelBreakdown instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelBreakdown instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFunnelBreakdown): google.analytics.data.v1alpha.FunnelBreakdown; + + /** + * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * @param message FunnelBreakdown message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. + * @param message FunnelBreakdown message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelBreakdown, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a FunnelBreakdown message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PropertyQuota + * @returns FunnelBreakdown * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.PropertyQuota; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PropertyQuota + * @returns FunnelBreakdown * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.PropertyQuota; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Verifies a PropertyQuota message. + * Verifies a FunnelBreakdown message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelBreakdown message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PropertyQuota + * @returns FunnelBreakdown */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.PropertyQuota; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelBreakdown; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. - * @param message PropertyQuota + * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. + * @param message FunnelBreakdown * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelBreakdown, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PropertyQuota to JSON. + * Converts this FunnelBreakdown to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a QuotaStatus. */ - interface IQuotaStatus { + /** Properties of a FunnelNextAction. */ + interface IFunnelNextAction { - /** QuotaStatus consumed */ - consumed?: (number|null); + /** FunnelNextAction nextActionDimension */ + nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); - /** QuotaStatus remaining */ - remaining?: (number|null); + /** FunnelNextAction limit */ + limit?: (number|Long|string|null); } - /** Represents a QuotaStatus. */ - class QuotaStatus implements IQuotaStatus { + /** Represents a FunnelNextAction. */ + class FunnelNextAction implements IFunnelNextAction { /** - * Constructs a new QuotaStatus. + * Constructs a new FunnelNextAction. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IQuotaStatus); + constructor(properties?: google.analytics.data.v1alpha.IFunnelNextAction); - /** QuotaStatus consumed. */ - public consumed: number; + /** FunnelNextAction nextActionDimension. */ + public nextActionDimension?: (google.analytics.data.v1alpha.IDimension|null); + + /** FunnelNextAction limit. */ + public limit?: (number|Long|string|null); - /** QuotaStatus remaining. */ - public remaining: number; + /** FunnelNextAction _limit. */ + public _limit?: "limit"; /** - * Creates a new QuotaStatus instance using the specified properties. + * Creates a new FunnelNextAction instance using the specified properties. * @param [properties] Properties to set - * @returns QuotaStatus instance + * @returns FunnelNextAction instance */ - public static create(properties?: google.analytics.data.v1alpha.IQuotaStatus): google.analytics.data.v1alpha.QuotaStatus; + public static create(properties?: google.analytics.data.v1alpha.IFunnelNextAction): google.analytics.data.v1alpha.FunnelNextAction; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @param message FunnelNextAction message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @param message FunnelNextAction message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelNextAction, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a FunnelNextAction message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns QuotaStatus + * @returns FunnelNextAction * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.QuotaStatus; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelNextAction; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns QuotaStatus + * @returns FunnelNextAction * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.QuotaStatus; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelNextAction; /** - * Verifies a QuotaStatus message. + * Verifies a FunnelNextAction message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelNextAction message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns QuotaStatus + * @returns FunnelNextAction */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.QuotaStatus; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelNextAction; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. - * @param message QuotaStatus + * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. + * @param message FunnelNextAction * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelNextAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this QuotaStatus to JSON. + * Converts this FunnelNextAction to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionMetadata. */ - interface IDimensionMetadata { - - /** DimensionMetadata apiName */ - apiName?: (string|null); - - /** DimensionMetadata uiName */ - uiName?: (string|null); - - /** DimensionMetadata description */ - description?: (string|null); + /** Properties of a Funnel. */ + interface IFunnel { - /** DimensionMetadata deprecatedApiNames */ - deprecatedApiNames?: (string[]|null); + /** Funnel isOpenFunnel */ + isOpenFunnel?: (boolean|null); - /** DimensionMetadata customDefinition */ - customDefinition?: (boolean|null); + /** Funnel steps */ + steps?: (google.analytics.data.v1alpha.IFunnelStep[]|null); } - /** Represents a DimensionMetadata. */ - class DimensionMetadata implements IDimensionMetadata { + /** Represents a Funnel. */ + class Funnel implements IFunnel { /** - * Constructs a new DimensionMetadata. + * Constructs a new Funnel. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IDimensionMetadata); - - /** DimensionMetadata apiName. */ - public apiName: string; - - /** DimensionMetadata uiName. */ - public uiName: string; - - /** DimensionMetadata description. */ - public description: string; + constructor(properties?: google.analytics.data.v1alpha.IFunnel); - /** DimensionMetadata deprecatedApiNames. */ - public deprecatedApiNames: string[]; + /** Funnel isOpenFunnel. */ + public isOpenFunnel: boolean; - /** DimensionMetadata customDefinition. */ - public customDefinition: boolean; + /** Funnel steps. */ + public steps: google.analytics.data.v1alpha.IFunnelStep[]; /** - * Creates a new DimensionMetadata instance using the specified properties. + * Creates a new Funnel instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionMetadata instance + * @returns Funnel instance */ - public static create(properties?: google.analytics.data.v1alpha.IDimensionMetadata): google.analytics.data.v1alpha.DimensionMetadata; + public static create(properties?: google.analytics.data.v1alpha.IFunnel): google.analytics.data.v1alpha.Funnel; /** - * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. - * @param message DimensionMetadata message or plain object to encode + * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * @param message Funnel message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. - * @param message DimensionMetadata message or plain object to encode + * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. + * @param message Funnel message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnel, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionMetadata message from the specified reader or buffer. + * Decodes a Funnel message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionMetadata + * @returns Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.DimensionMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Funnel; /** - * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * Decodes a Funnel message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionMetadata + * @returns Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.DimensionMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Funnel; /** - * Verifies a DimensionMetadata message. + * Verifies a Funnel message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a Funnel message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionMetadata + * @returns Funnel */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.DimensionMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Funnel; /** - * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. - * @param message DimensionMetadata + * Creates a plain object from a Funnel message. Also converts values to other types if specified. + * @param message Funnel * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.DimensionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Funnel, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionMetadata to JSON. + * Converts this Funnel to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricMetadata. */ - interface IMetricMetadata { - - /** MetricMetadata apiName */ - apiName?: (string|null); - - /** MetricMetadata uiName */ - uiName?: (string|null); - - /** MetricMetadata description */ - description?: (string|null); + /** Properties of a FunnelStep. */ + interface IFunnelStep { - /** MetricMetadata deprecatedApiNames */ - deprecatedApiNames?: (string[]|null); + /** FunnelStep name */ + name?: (string|null); - /** MetricMetadata type */ - type?: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType|null); + /** FunnelStep isDirectlyFollowedBy */ + isDirectlyFollowedBy?: (boolean|null); - /** MetricMetadata expression */ - expression?: (string|null); + /** FunnelStep withinDurationFromPriorStep */ + withinDurationFromPriorStep?: (google.protobuf.IDuration|null); - /** MetricMetadata customDefinition */ - customDefinition?: (boolean|null); + /** FunnelStep filterExpression */ + filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); } - /** Represents a MetricMetadata. */ - class MetricMetadata implements IMetricMetadata { + /** Represents a FunnelStep. */ + class FunnelStep implements IFunnelStep { /** - * Constructs a new MetricMetadata. + * Constructs a new FunnelStep. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1alpha.IMetricMetadata); - - /** MetricMetadata apiName. */ - public apiName: string; + constructor(properties?: google.analytics.data.v1alpha.IFunnelStep); - /** MetricMetadata uiName. */ - public uiName: string; - - /** MetricMetadata description. */ - public description: string; + /** FunnelStep name. */ + public name: string; - /** MetricMetadata deprecatedApiNames. */ - public deprecatedApiNames: string[]; + /** FunnelStep isDirectlyFollowedBy. */ + public isDirectlyFollowedBy: boolean; - /** MetricMetadata type. */ - public type: (google.analytics.data.v1alpha.MetricType|keyof typeof google.analytics.data.v1alpha.MetricType); + /** FunnelStep withinDurationFromPriorStep. */ + public withinDurationFromPriorStep?: (google.protobuf.IDuration|null); - /** MetricMetadata expression. */ - public expression: string; + /** FunnelStep filterExpression. */ + public filterExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); - /** MetricMetadata customDefinition. */ - public customDefinition: boolean; + /** FunnelStep _withinDurationFromPriorStep. */ + public _withinDurationFromPriorStep?: "withinDurationFromPriorStep"; /** - * Creates a new MetricMetadata instance using the specified properties. + * Creates a new FunnelStep instance using the specified properties. * @param [properties] Properties to set - * @returns MetricMetadata instance + * @returns FunnelStep instance */ - public static create(properties?: google.analytics.data.v1alpha.IMetricMetadata): google.analytics.data.v1alpha.MetricMetadata; + public static create(properties?: google.analytics.data.v1alpha.IFunnelStep): google.analytics.data.v1alpha.FunnelStep; /** - * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. - * @param message MetricMetadata message or plain object to encode + * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @param message FunnelStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1alpha.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. - * @param message MetricMetadata message or plain object to encode + * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @param message FunnelStep message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1alpha.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelStep, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricMetadata message from the specified reader or buffer. + * Decodes a FunnelStep message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricMetadata + * @returns FunnelStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.MetricMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelStep; /** - * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * Decodes a FunnelStep message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricMetadata + * @returns FunnelStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.MetricMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelStep; /** - * Verifies a MetricMetadata message. + * Verifies a FunnelStep message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelStep message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricMetadata + * @returns FunnelStep */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.MetricMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelStep; /** - * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. - * @param message MetricMetadata + * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. + * @param message FunnelStep * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1alpha.MetricMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricMetadata to JSON. + * Converts this FunnelStep to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** MetricAggregation enum. */ - enum MetricAggregation { - METRIC_AGGREGATION_UNSPECIFIED = 0, - TOTAL = 1, - MINIMUM = 5, - MAXIMUM = 6, - COUNT = 4 - } + /** Properties of a FunnelSubReport. */ + interface IFunnelSubReport { - /** MetricType enum. */ - enum MetricType { - METRIC_TYPE_UNSPECIFIED = 0, - TYPE_INTEGER = 1, - TYPE_FLOAT = 2, - TYPE_SECONDS = 4, - TYPE_MILLISECONDS = 5, - TYPE_MINUTES = 6, - TYPE_HOURS = 7, - TYPE_STANDARD = 8, - TYPE_CURRENCY = 9, - TYPE_FEET = 10, - TYPE_MILES = 11, - TYPE_METERS = 12, - TYPE_KILOMETERS = 13 - } - } + /** FunnelSubReport dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1alpha.IDimensionHeader[]|null); - /** Namespace v1beta. */ - namespace v1beta { + /** FunnelSubReport metricHeaders */ + metricHeaders?: (google.analytics.data.v1alpha.IMetricHeader[]|null); - /** Represents a BetaAnalyticsData */ - class BetaAnalyticsData extends $protobuf.rpc.Service { + /** FunnelSubReport rows */ + rows?: (google.analytics.data.v1alpha.IRow[]|null); - /** - * Constructs a new BetaAnalyticsData service. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + /** FunnelSubReport metadata */ + metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); + } - /** - * Creates new BetaAnalyticsData service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): BetaAnalyticsData; + /** Represents a FunnelSubReport. */ + class FunnelSubReport implements IFunnelSubReport { /** - * Calls RunReport. - * @param request RunReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunReportResponse + * Constructs a new FunnelSubReport. + * @param [properties] Properties to set */ - public runReport(request: google.analytics.data.v1beta.IRunReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunReportCallback): void; + constructor(properties?: google.analytics.data.v1alpha.IFunnelSubReport); - /** - * Calls RunReport. - * @param request RunReportRequest message or plain object - * @returns Promise - */ - public runReport(request: google.analytics.data.v1beta.IRunReportRequest): Promise; + /** FunnelSubReport dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1alpha.IDimensionHeader[]; + + /** FunnelSubReport metricHeaders. */ + public metricHeaders: google.analytics.data.v1alpha.IMetricHeader[]; + + /** FunnelSubReport rows. */ + public rows: google.analytics.data.v1alpha.IRow[]; + + /** FunnelSubReport metadata. */ + public metadata?: (google.analytics.data.v1alpha.IFunnelResponseMetadata|null); /** - * Calls RunPivotReport. - * @param request RunPivotReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunPivotReportResponse + * Creates a new FunnelSubReport instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelSubReport instance */ - public runPivotReport(request: google.analytics.data.v1beta.IRunPivotReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReportCallback): void; + public static create(properties?: google.analytics.data.v1alpha.IFunnelSubReport): google.analytics.data.v1alpha.FunnelSubReport; /** - * Calls RunPivotReport. - * @param request RunPivotReportRequest message or plain object - * @returns Promise + * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * @param message FunnelSubReport message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer */ - public runPivotReport(request: google.analytics.data.v1beta.IRunPivotReportRequest): Promise; + public static encode(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Calls BatchRunReports. - * @param request BatchRunReportsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchRunReportsResponse + * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. + * @param message FunnelSubReport message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer */ - public batchRunReports(request: google.analytics.data.v1beta.IBatchRunReportsRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReportsCallback): void; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelSubReport, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Calls BatchRunReports. - * @param request BatchRunReportsRequest message or plain object - * @returns Promise + * Decodes a FunnelSubReport message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FunnelSubReport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public batchRunReports(request: google.analytics.data.v1beta.IBatchRunReportsRequest): Promise; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelSubReport; /** - * Calls BatchRunPivotReports. - * @param request BatchRunPivotReportsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse + * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FunnelSubReport + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public batchRunPivotReports(request: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReportsCallback): void; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelSubReport; /** - * Calls BatchRunPivotReports. - * @param request BatchRunPivotReportsRequest message or plain object - * @returns Promise + * Verifies a FunnelSubReport message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not */ - public batchRunPivotReports(request: google.analytics.data.v1beta.IBatchRunPivotReportsRequest): Promise; + public static verify(message: { [k: string]: any }): (string|null); /** - * Calls GetMetadata. - * @param request GetMetadataRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Metadata + * Creates a FunnelSubReport message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FunnelSubReport */ - public getMetadata(request: google.analytics.data.v1beta.IGetMetadataRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.GetMetadataCallback): void; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelSubReport; /** - * Calls GetMetadata. - * @param request GetMetadataRequest message or plain object - * @returns Promise + * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. + * @param message FunnelSubReport + * @param [options] Conversion options + * @returns Plain object */ - public getMetadata(request: google.analytics.data.v1beta.IGetMetadataRequest): Promise; + public static toObject(message: google.analytics.data.v1alpha.FunnelSubReport, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Calls RunRealtimeReport. - * @param request RunRealtimeReportRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunRealtimeReportResponse + * Converts this FunnelSubReport to JSON. + * @returns JSON object */ - public runRealtimeReport(request: google.analytics.data.v1beta.IRunRealtimeReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReportCallback): void; + public toJSON(): { [k: string]: any }; + } + + /** Properties of a UserSegment. */ + interface IUserSegment { + + /** UserSegment userInclusionCriteria */ + userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + + /** UserSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); + } + + /** Represents a UserSegment. */ + class UserSegment implements IUserSegment { /** - * Calls RunRealtimeReport. - * @param request RunRealtimeReportRequest message or plain object - * @returns Promise + * Constructs a new UserSegment. + * @param [properties] Properties to set */ - public runRealtimeReport(request: google.analytics.data.v1beta.IRunRealtimeReportRequest): Promise; + constructor(properties?: google.analytics.data.v1alpha.IUserSegment); + + /** UserSegment userInclusionCriteria. */ + public userInclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + + /** UserSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.IUserSegmentExclusion|null); /** - * Calls CheckCompatibility. - * @param request CheckCompatibilityRequest message or plain object - * @param callback Node-style callback called with the error, if any, and CheckCompatibilityResponse + * Creates a new UserSegment instance using the specified properties. + * @param [properties] Properties to set + * @returns UserSegment instance */ - public checkCompatibility(request: google.analytics.data.v1beta.ICheckCompatibilityRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibilityCallback): void; + public static create(properties?: google.analytics.data.v1alpha.IUserSegment): google.analytics.data.v1alpha.UserSegment; /** - * Calls CheckCompatibility. - * @param request CheckCompatibilityRequest message or plain object - * @returns Promise + * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @param message UserSegment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer */ - public checkCompatibility(request: google.analytics.data.v1beta.ICheckCompatibilityRequest): Promise; - } - - namespace BetaAnalyticsData { + public static encode(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runReport}. - * @param error Error, if any - * @param [response] RunReportResponse + * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @param message UserSegment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer */ - type RunReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunReportResponse) => void; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runPivotReport}. - * @param error Error, if any - * @param [response] RunPivotReportResponse + * Decodes a UserSegment message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UserSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - type RunPivotReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunPivotReportResponse) => void; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegment; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunReports}. - * @param error Error, if any - * @param [response] BatchRunReportsResponse + * Decodes a UserSegment message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UserSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - type BatchRunReportsCallback = (error: (Error|null), response?: google.analytics.data.v1beta.BatchRunReportsResponse) => void; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegment; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunPivotReports}. - * @param error Error, if any - * @param [response] BatchRunPivotReportsResponse + * Verifies a UserSegment message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not */ - type BatchRunPivotReportsCallback = (error: (Error|null), response?: google.analytics.data.v1beta.BatchRunPivotReportsResponse) => void; + public static verify(message: { [k: string]: any }): (string|null); /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#getMetadata}. - * @param error Error, if any - * @param [response] Metadata + * Creates a UserSegment message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UserSegment */ - type GetMetadataCallback = (error: (Error|null), response?: google.analytics.data.v1beta.Metadata) => void; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegment; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runRealtimeReport}. - * @param error Error, if any - * @param [response] RunRealtimeReportResponse + * Creates a plain object from a UserSegment message. Also converts values to other types if specified. + * @param message UserSegment + * @param [options] Conversion options + * @returns Plain object */ - type RunRealtimeReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunRealtimeReportResponse) => void; + public static toObject(message: google.analytics.data.v1alpha.UserSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#checkCompatibility}. - * @param error Error, if any - * @param [response] CheckCompatibilityResponse + * Converts this UserSegment to JSON. + * @returns JSON object */ - type CheckCompatibilityCallback = (error: (Error|null), response?: google.analytics.data.v1beta.CheckCompatibilityResponse) => void; + public toJSON(): { [k: string]: any }; } - /** Properties of a CheckCompatibilityRequest. */ - interface ICheckCompatibilityRequest { - - /** CheckCompatibilityRequest property */ - property?: (string|null); - - /** CheckCompatibilityRequest dimensions */ - dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - - /** CheckCompatibilityRequest metrics */ - metrics?: (google.analytics.data.v1beta.IMetric[]|null); + /** Properties of a UserSegmentCriteria. */ + interface IUserSegmentCriteria { - /** CheckCompatibilityRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** CheckCompatibilityRequest metricFilter */ - metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** UserSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.IUserSegmentConditionGroup[]|null); - /** CheckCompatibilityRequest compatibilityFilter */ - compatibilityFilter?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + /** UserSegmentCriteria andSequenceGroups */ + andSequenceGroups?: (google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]|null); } - /** Represents a CheckCompatibilityRequest. */ - class CheckCompatibilityRequest implements ICheckCompatibilityRequest { + /** Represents a UserSegmentCriteria. */ + class UserSegmentCriteria implements IUserSegmentCriteria { /** - * Constructs a new CheckCompatibilityRequest. + * Constructs a new UserSegmentCriteria. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.ICheckCompatibilityRequest); - - /** CheckCompatibilityRequest property. */ - public property: string; - - /** CheckCompatibilityRequest dimensions. */ - public dimensions: google.analytics.data.v1beta.IDimension[]; - - /** CheckCompatibilityRequest metrics. */ - public metrics: google.analytics.data.v1beta.IMetric[]; + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria); - /** CheckCompatibilityRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** CheckCompatibilityRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** UserSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.IUserSegmentConditionGroup[]; - /** CheckCompatibilityRequest compatibilityFilter. */ - public compatibilityFilter: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility); + /** UserSegmentCriteria andSequenceGroups. */ + public andSequenceGroups: google.analytics.data.v1alpha.IUserSegmentSequenceGroup[]; /** - * Creates a new CheckCompatibilityRequest instance using the specified properties. + * Creates a new UserSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns CheckCompatibilityRequest instance + * @returns UserSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1beta.ICheckCompatibilityRequest): google.analytics.data.v1beta.CheckCompatibilityRequest; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentCriteria): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Encodes the specified CheckCompatibilityRequest message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. - * @param message CheckCompatibilityRequest message or plain object to encode + * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * @param message UserSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.ICheckCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CheckCompatibilityRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. - * @param message CheckCompatibilityRequest message or plain object to encode + * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. + * @param message UserSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICheckCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CheckCompatibilityRequest message from the specified reader or buffer. + * Decodes a UserSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CheckCompatibilityRequest + * @returns UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CheckCompatibilityRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Decodes a CheckCompatibilityRequest message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CheckCompatibilityRequest + * @returns UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CheckCompatibilityRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Verifies a CheckCompatibilityRequest message. + * Verifies a UserSegmentCriteria message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CheckCompatibilityRequest message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CheckCompatibilityRequest + * @returns UserSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CheckCompatibilityRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentCriteria; /** - * Creates a plain object from a CheckCompatibilityRequest message. Also converts values to other types if specified. - * @param message CheckCompatibilityRequest + * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. + * @param message UserSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.CheckCompatibilityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CheckCompatibilityRequest to JSON. + * Converts this UserSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a CheckCompatibilityResponse. */ - interface ICheckCompatibilityResponse { + /** UserCriteriaScoping enum. */ + enum UserCriteriaScoping { + USER_CRITERIA_SCOPING_UNSPECIFIED = 0, + USER_CRITERIA_WITHIN_SAME_EVENT = 1, + USER_CRITERIA_WITHIN_SAME_SESSION = 2, + USER_CRITERIA_ACROSS_ALL_SESSIONS = 3 + } - /** CheckCompatibilityResponse dimensionCompatibilities */ - dimensionCompatibilities?: (google.analytics.data.v1beta.IDimensionCompatibility[]|null); + /** Properties of a UserSegmentConditionGroup. */ + interface IUserSegmentConditionGroup { - /** CheckCompatibilityResponse metricCompatibilities */ - metricCompatibilities?: (google.analytics.data.v1beta.IMetricCompatibility[]|null); + /** UserSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); + + /** UserSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a CheckCompatibilityResponse. */ - class CheckCompatibilityResponse implements ICheckCompatibilityResponse { + /** Represents a UserSegmentConditionGroup. */ + class UserSegmentConditionGroup implements IUserSegmentConditionGroup { /** - * Constructs a new CheckCompatibilityResponse. + * Constructs a new UserSegmentConditionGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.ICheckCompatibilityResponse); + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup); - /** CheckCompatibilityResponse dimensionCompatibilities. */ - public dimensionCompatibilities: google.analytics.data.v1beta.IDimensionCompatibility[]; + /** UserSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** CheckCompatibilityResponse metricCompatibilities. */ - public metricCompatibilities: google.analytics.data.v1beta.IMetricCompatibility[]; + /** UserSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new CheckCompatibilityResponse instance using the specified properties. + * Creates a new UserSegmentConditionGroup instance using the specified properties. * @param [properties] Properties to set - * @returns CheckCompatibilityResponse instance + * @returns UserSegmentConditionGroup instance */ - public static create(properties?: google.analytics.data.v1beta.ICheckCompatibilityResponse): google.analytics.data.v1beta.CheckCompatibilityResponse; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentConditionGroup): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Encodes the specified CheckCompatibilityResponse message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. - * @param message CheckCompatibilityResponse message or plain object to encode + * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * @param message UserSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.ICheckCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CheckCompatibilityResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. - * @param message CheckCompatibilityResponse message or plain object to encode + * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. + * @param message UserSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICheckCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CheckCompatibilityResponse message from the specified reader or buffer. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CheckCompatibilityResponse + * @returns UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CheckCompatibilityResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Decodes a CheckCompatibilityResponse message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CheckCompatibilityResponse + * @returns UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CheckCompatibilityResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Verifies a CheckCompatibilityResponse message. + * Verifies a UserSegmentConditionGroup message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CheckCompatibilityResponse message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CheckCompatibilityResponse + * @returns UserSegmentConditionGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CheckCompatibilityResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentConditionGroup; /** - * Creates a plain object from a CheckCompatibilityResponse message. Also converts values to other types if specified. - * @param message CheckCompatibilityResponse + * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. + * @param message UserSegmentConditionGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.CheckCompatibilityResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CheckCompatibilityResponse to JSON. + * Converts this UserSegmentConditionGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Metadata. */ - interface IMetadata { + /** Properties of a UserSegmentSequenceGroup. */ + interface IUserSegmentSequenceGroup { - /** Metadata name */ - name?: (string|null); + /** UserSegmentSequenceGroup sequenceScoping */ + sequenceScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); - /** Metadata dimensions */ - dimensions?: (google.analytics.data.v1beta.IDimensionMetadata[]|null); + /** UserSegmentSequenceGroup sequenceMaximumDuration */ + sequenceMaximumDuration?: (google.protobuf.IDuration|null); - /** Metadata metrics */ - metrics?: (google.analytics.data.v1beta.IMetricMetadata[]|null); + /** UserSegmentSequenceGroup userSequenceSteps */ + userSequenceSteps?: (google.analytics.data.v1alpha.IUserSequenceStep[]|null); } - /** Represents a Metadata. */ - class Metadata implements IMetadata { + /** Represents a UserSegmentSequenceGroup. */ + class UserSegmentSequenceGroup implements IUserSegmentSequenceGroup { /** - * Constructs a new Metadata. + * Constructs a new UserSegmentSequenceGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetadata); + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup); - /** Metadata name. */ - public name: string; + /** UserSegmentSequenceGroup sequenceScoping. */ + public sequenceScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** Metadata dimensions. */ - public dimensions: google.analytics.data.v1beta.IDimensionMetadata[]; + /** UserSegmentSequenceGroup sequenceMaximumDuration. */ + public sequenceMaximumDuration?: (google.protobuf.IDuration|null); - /** Metadata metrics. */ - public metrics: google.analytics.data.v1beta.IMetricMetadata[]; + /** UserSegmentSequenceGroup userSequenceSteps. */ + public userSequenceSteps: google.analytics.data.v1alpha.IUserSequenceStep[]; /** - * Creates a new Metadata instance using the specified properties. + * Creates a new UserSegmentSequenceGroup instance using the specified properties. * @param [properties] Properties to set - * @returns Metadata instance + * @returns UserSegmentSequenceGroup instance */ - public static create(properties?: google.analytics.data.v1beta.IMetadata): google.analytics.data.v1beta.Metadata; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentSequenceGroup): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. - * @param message Metadata message or plain object to encode + * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * @param message UserSegmentSequenceGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. - * @param message Metadata message or plain object to encode + * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. + * @param message UserSegmentSequenceGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentSequenceGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Metadata message from the specified reader or buffer. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Metadata + * @returns UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Metadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Decodes a Metadata message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Metadata + * @returns UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Metadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Verifies a Metadata message. + * Verifies a UserSegmentSequenceGroup message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Metadata message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Metadata + * @returns UserSegmentSequenceGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Metadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentSequenceGroup; /** - * Creates a plain object from a Metadata message. Also converts values to other types if specified. - * @param message Metadata + * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. + * @param message UserSegmentSequenceGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentSequenceGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Metadata to JSON. + * Converts this UserSegmentSequenceGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunReportRequest. */ - interface IRunReportRequest { - - /** RunReportRequest property */ - property?: (string|null); - - /** RunReportRequest dimensions */ - dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - - /** RunReportRequest metrics */ - metrics?: (google.analytics.data.v1beta.IMetric[]|null); + /** Properties of a UserSequenceStep. */ + interface IUserSequenceStep { - /** RunReportRequest dateRanges */ - dateRanges?: (google.analytics.data.v1beta.IDateRange[]|null); + /** UserSequenceStep isDirectlyFollowedBy */ + isDirectlyFollowedBy?: (boolean|null); - /** RunReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** UserSequenceStep stepScoping */ + stepScoping?: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping|null); - /** RunReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** UserSequenceStep segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + } - /** RunReportRequest offset */ - offset?: (number|Long|string|null); + /** Represents a UserSequenceStep. */ + class UserSequenceStep implements IUserSequenceStep { - /** RunReportRequest limit */ - limit?: (number|Long|string|null); + /** + * Constructs a new UserSequenceStep. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IUserSequenceStep); - /** RunReportRequest metricAggregations */ - metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); + /** UserSequenceStep isDirectlyFollowedBy. */ + public isDirectlyFollowedBy: boolean; - /** RunReportRequest orderBys */ - orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); + /** UserSequenceStep stepScoping. */ + public stepScoping: (google.analytics.data.v1alpha.UserCriteriaScoping|keyof typeof google.analytics.data.v1alpha.UserCriteriaScoping); - /** RunReportRequest currencyCode */ - currencyCode?: (string|null); + /** UserSequenceStep segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); - /** RunReportRequest cohortSpec */ - cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + /** + * Creates a new UserSequenceStep instance using the specified properties. + * @param [properties] Properties to set + * @returns UserSequenceStep instance + */ + public static create(properties?: google.analytics.data.v1alpha.IUserSequenceStep): google.analytics.data.v1alpha.UserSequenceStep; - /** RunReportRequest keepEmptyRows */ - keepEmptyRows?: (boolean|null); + /** + * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * @param message UserSequenceStep message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); - } + /** + * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. + * @param message UserSequenceStep message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSequenceStep, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a RunReportRequest. */ - class RunReportRequest implements IRunReportRequest { + /** + * Decodes a UserSequenceStep message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns UserSequenceStep + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSequenceStep; /** - * Constructs a new RunReportRequest. - * @param [properties] Properties to set + * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns UserSequenceStep + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - constructor(properties?: google.analytics.data.v1beta.IRunReportRequest); - - /** RunReportRequest property. */ - public property: string; - - /** RunReportRequest dimensions. */ - public dimensions: google.analytics.data.v1beta.IDimension[]; - - /** RunReportRequest metrics. */ - public metrics: google.analytics.data.v1beta.IMetric[]; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSequenceStep; - /** RunReportRequest dateRanges. */ - public dateRanges: google.analytics.data.v1beta.IDateRange[]; + /** + * Verifies a UserSequenceStep message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** + * Creates a UserSequenceStep message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns UserSequenceStep + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSequenceStep; - /** RunReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** + * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. + * @param message UserSequenceStep + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.UserSequenceStep, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunReportRequest offset. */ - public offset: (number|Long|string); + /** + * Converts this UserSequenceStep to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunReportRequest limit. */ - public limit: (number|Long|string); + /** Properties of a UserSegmentExclusion. */ + interface IUserSegmentExclusion { - /** RunReportRequest metricAggregations. */ - public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; + /** UserSegmentExclusion userExclusionDuration */ + userExclusionDuration?: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration|null); - /** RunReportRequest orderBys. */ - public orderBys: google.analytics.data.v1beta.IOrderBy[]; + /** UserSegmentExclusion userExclusionCriteria */ + userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); + } - /** RunReportRequest currencyCode. */ - public currencyCode: string; + /** Represents a UserSegmentExclusion. */ + class UserSegmentExclusion implements IUserSegmentExclusion { - /** RunReportRequest cohortSpec. */ - public cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + /** + * Constructs a new UserSegmentExclusion. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion); - /** RunReportRequest keepEmptyRows. */ - public keepEmptyRows: boolean; + /** UserSegmentExclusion userExclusionDuration. */ + public userExclusionDuration: (google.analytics.data.v1alpha.UserExclusionDuration|keyof typeof google.analytics.data.v1alpha.UserExclusionDuration); - /** RunReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; + /** UserSegmentExclusion userExclusionCriteria. */ + public userExclusionCriteria?: (google.analytics.data.v1alpha.IUserSegmentCriteria|null); /** - * Creates a new RunReportRequest instance using the specified properties. + * Creates a new UserSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns RunReportRequest instance + * @returns UserSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1beta.IRunReportRequest): google.analytics.data.v1beta.RunReportRequest; + public static create(properties?: google.analytics.data.v1alpha.IUserSegmentExclusion): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. - * @param message RunReportRequest message or plain object to encode + * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * @param message UserSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. - * @param message RunReportRequest message or plain object to encode + * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. + * @param message UserSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IUserSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunReportRequest message from the specified reader or buffer. + * Decodes a UserSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunReportRequest + * @returns UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunReportRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunReportRequest + * @returns UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunReportRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Verifies a RunReportRequest message. + * Verifies a UserSegmentExclusion message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunReportRequest + * @returns UserSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunReportRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.UserSegmentExclusion; /** - * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. - * @param message RunReportRequest + * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. + * @param message UserSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.UserSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunReportRequest to JSON. + * Converts this UserSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunReportResponse. */ - interface IRunReportResponse { - - /** RunReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); + /** UserExclusionDuration enum. */ + enum UserExclusionDuration { + USER_EXCLUSION_DURATION_UNSPECIFIED = 0, + USER_EXCLUSION_TEMPORARY = 1, + USER_EXCLUSION_PERMANENT = 2 + } - /** RunReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); + /** Properties of a SessionSegment. */ + interface ISessionSegment { - /** RunReportResponse rows */ - rows?: (google.analytics.data.v1beta.IRow[]|null); + /** SessionSegment sessionInclusionCriteria */ + sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); - /** RunReportResponse totals */ - totals?: (google.analytics.data.v1beta.IRow[]|null); + /** SessionSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); + } - /** RunReportResponse maximums */ - maximums?: (google.analytics.data.v1beta.IRow[]|null); + /** Represents a SessionSegment. */ + class SessionSegment implements ISessionSegment { - /** RunReportResponse minimums */ - minimums?: (google.analytics.data.v1beta.IRow[]|null); + /** + * Constructs a new SessionSegment. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISessionSegment); - /** RunReportResponse rowCount */ - rowCount?: (number|null); + /** SessionSegment sessionInclusionCriteria. */ + public sessionInclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); - /** RunReportResponse metadata */ - metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); + /** SessionSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.ISessionSegmentExclusion|null); - /** RunReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** + * Creates a new SessionSegment instance using the specified properties. + * @param [properties] Properties to set + * @returns SessionSegment instance + */ + public static create(properties?: google.analytics.data.v1alpha.ISessionSegment): google.analytics.data.v1alpha.SessionSegment; - /** RunReportResponse kind */ - kind?: (string|null); - } + /** + * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * @param message SessionSegment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents a RunReportResponse. */ - class RunReportResponse implements IRunReportResponse { + /** + * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. + * @param message SessionSegment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Constructs a new RunReportResponse. - * @param [properties] Properties to set + * Decodes a SessionSegment message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SessionSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - constructor(properties?: google.analytics.data.v1beta.IRunReportResponse); + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegment; - /** RunReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; + /** + * Decodes a SessionSegment message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SessionSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegment; - /** RunReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; + /** + * Verifies a SessionSegment message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** RunReportResponse rows. */ - public rows: google.analytics.data.v1beta.IRow[]; + /** + * Creates a SessionSegment message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SessionSegment + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegment; - /** RunReportResponse totals. */ - public totals: google.analytics.data.v1beta.IRow[]; + /** + * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. + * @param message SessionSegment + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.SessionSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunReportResponse maximums. */ - public maximums: google.analytics.data.v1beta.IRow[]; + /** + * Converts this SessionSegment to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunReportResponse minimums. */ - public minimums: google.analytics.data.v1beta.IRow[]; + /** Properties of a SessionSegmentCriteria. */ + interface ISessionSegmentCriteria { - /** RunReportResponse rowCount. */ - public rowCount: number; + /** SessionSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]|null); + } - /** RunReportResponse metadata. */ - public metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); + /** Represents a SessionSegmentCriteria. */ + class SessionSegmentCriteria implements ISessionSegmentCriteria { - /** RunReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** + * Constructs a new SessionSegmentCriteria. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria); - /** RunReportResponse kind. */ - public kind: string; + /** SessionSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.ISessionSegmentConditionGroup[]; /** - * Creates a new RunReportResponse instance using the specified properties. + * Creates a new SessionSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns RunReportResponse instance + * @returns SessionSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1beta.IRunReportResponse): google.analytics.data.v1beta.RunReportResponse; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentCriteria): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. - * @param message RunReportResponse message or plain object to encode + * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * @param message SessionSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. - * @param message RunReportResponse message or plain object to encode + * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. + * @param message SessionSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunReportResponse message from the specified reader or buffer. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunReportResponse + * @returns SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunReportResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunReportResponse + * @returns SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunReportResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Verifies a RunReportResponse message. + * Verifies a SessionSegmentCriteria message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunReportResponse + * @returns SessionSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunReportResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentCriteria; /** - * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. - * @param message RunReportResponse + * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. + * @param message SessionSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunReportResponse to JSON. + * Converts this SessionSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunPivotReportRequest. */ - interface IRunPivotReportRequest { + /** SessionCriteriaScoping enum. */ + enum SessionCriteriaScoping { + SESSION_CRITERIA_SCOPING_UNSPECIFIED = 0, + SESSION_CRITERIA_WITHIN_SAME_EVENT = 1, + SESSION_CRITERIA_WITHIN_SAME_SESSION = 2 + } - /** RunPivotReportRequest property */ - property?: (string|null); + /** Properties of a SessionSegmentConditionGroup. */ + interface ISessionSegmentConditionGroup { - /** RunPivotReportRequest dimensions */ - dimensions?: (google.analytics.data.v1beta.IDimension[]|null); + /** SessionSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping|null); - /** RunPivotReportRequest metrics */ - metrics?: (google.analytics.data.v1beta.IMetric[]|null); + /** SessionSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + } - /** RunPivotReportRequest dateRanges */ - dateRanges?: (google.analytics.data.v1beta.IDateRange[]|null); + /** Represents a SessionSegmentConditionGroup. */ + class SessionSegmentConditionGroup implements ISessionSegmentConditionGroup { - /** RunPivotReportRequest pivots */ - pivots?: (google.analytics.data.v1beta.IPivot[]|null); + /** + * Constructs a new SessionSegmentConditionGroup. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup); - /** RunPivotReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** SessionSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.SessionCriteriaScoping|keyof typeof google.analytics.data.v1alpha.SessionCriteriaScoping); - /** RunPivotReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** SessionSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); - /** RunPivotReportRequest currencyCode */ - currencyCode?: (string|null); + /** + * Creates a new SessionSegmentConditionGroup instance using the specified properties. + * @param [properties] Properties to set + * @returns SessionSegmentConditionGroup instance + */ + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentConditionGroup): google.analytics.data.v1alpha.SessionSegmentConditionGroup; - /** RunPivotReportRequest cohortSpec */ - cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + /** + * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * @param message SessionSegmentConditionGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunPivotReportRequest keepEmptyRows */ - keepEmptyRows?: (boolean|null); + /** + * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. + * @param message SessionSegmentConditionGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; - /** RunPivotReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); - } + /** + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SessionSegmentConditionGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentConditionGroup; - /** Represents a RunPivotReportRequest. */ - class RunPivotReportRequest implements IRunPivotReportRequest { + /** + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SessionSegmentConditionGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentConditionGroup; /** - * Constructs a new RunPivotReportRequest. - * @param [properties] Properties to set + * Verifies a SessionSegmentConditionGroup message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not */ - constructor(properties?: google.analytics.data.v1beta.IRunPivotReportRequest); - - /** RunPivotReportRequest property. */ - public property: string; + public static verify(message: { [k: string]: any }): (string|null); - /** RunPivotReportRequest dimensions. */ - public dimensions: google.analytics.data.v1beta.IDimension[]; + /** + * Creates a SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SessionSegmentConditionGroup + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentConditionGroup; - /** RunPivotReportRequest metrics. */ - public metrics: google.analytics.data.v1beta.IMetric[]; + /** + * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. + * @param message SessionSegmentConditionGroup + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** RunPivotReportRequest dateRanges. */ - public dateRanges: google.analytics.data.v1beta.IDateRange[]; + /** + * Converts this SessionSegmentConditionGroup to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** RunPivotReportRequest pivots. */ - public pivots: google.analytics.data.v1beta.IPivot[]; + /** Properties of a SessionSegmentExclusion. */ + interface ISessionSegmentExclusion { - /** RunPivotReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** SessionSegmentExclusion sessionExclusionDuration */ + sessionExclusionDuration?: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration|null); - /** RunPivotReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + /** SessionSegmentExclusion sessionExclusionCriteria */ + sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); + } - /** RunPivotReportRequest currencyCode. */ - public currencyCode: string; + /** Represents a SessionSegmentExclusion. */ + class SessionSegmentExclusion implements ISessionSegmentExclusion { - /** RunPivotReportRequest cohortSpec. */ - public cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + /** + * Constructs a new SessionSegmentExclusion. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion); - /** RunPivotReportRequest keepEmptyRows. */ - public keepEmptyRows: boolean; + /** SessionSegmentExclusion sessionExclusionDuration. */ + public sessionExclusionDuration: (google.analytics.data.v1alpha.SessionExclusionDuration|keyof typeof google.analytics.data.v1alpha.SessionExclusionDuration); - /** RunPivotReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; + /** SessionSegmentExclusion sessionExclusionCriteria. */ + public sessionExclusionCriteria?: (google.analytics.data.v1alpha.ISessionSegmentCriteria|null); /** - * Creates a new RunPivotReportRequest instance using the specified properties. + * Creates a new SessionSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns RunPivotReportRequest instance + * @returns SessionSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1beta.IRunPivotReportRequest): google.analytics.data.v1beta.RunPivotReportRequest; + public static create(properties?: google.analytics.data.v1alpha.ISessionSegmentExclusion): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. - * @param message RunPivotReportRequest message or plain object to encode + * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @param message SessionSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. - * @param message RunPivotReportRequest message or plain object to encode + * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @param message SessionSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISessionSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunPivotReportRequest + * @returns SessionSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunPivotReportRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunPivotReportRequest + * @returns SessionSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunPivotReportRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Verifies a RunPivotReportRequest message. + * Verifies a SessionSegmentExclusion message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunPivotReportRequest + * @returns SessionSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunPivotReportRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SessionSegmentExclusion; /** - * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. - * @param message RunPivotReportRequest + * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. + * @param message SessionSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunPivotReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SessionSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunPivotReportRequest to JSON. + * Converts this SessionSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunPivotReportResponse. */ - interface IRunPivotReportResponse { - - /** RunPivotReportResponse pivotHeaders */ - pivotHeaders?: (google.analytics.data.v1beta.IPivotHeader[]|null); - - /** RunPivotReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); - - /** RunPivotReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); - - /** RunPivotReportResponse rows */ - rows?: (google.analytics.data.v1beta.IRow[]|null); - - /** RunPivotReportResponse aggregates */ - aggregates?: (google.analytics.data.v1beta.IRow[]|null); + /** SessionExclusionDuration enum. */ + enum SessionExclusionDuration { + SESSION_EXCLUSION_DURATION_UNSPECIFIED = 0, + SESSION_EXCLUSION_TEMPORARY = 1, + SESSION_EXCLUSION_PERMANENT = 2 + } - /** RunPivotReportResponse metadata */ - metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); + /** Properties of an EventSegment. */ + interface IEventSegment { - /** RunPivotReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** EventSegment eventInclusionCriteria */ + eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); - /** RunPivotReportResponse kind */ - kind?: (string|null); + /** EventSegment exclusion */ + exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); } - /** Represents a RunPivotReportResponse. */ - class RunPivotReportResponse implements IRunPivotReportResponse { + /** Represents an EventSegment. */ + class EventSegment implements IEventSegment { /** - * Constructs a new RunPivotReportResponse. + * Constructs a new EventSegment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IRunPivotReportResponse); + constructor(properties?: google.analytics.data.v1alpha.IEventSegment); - /** RunPivotReportResponse pivotHeaders. */ - public pivotHeaders: google.analytics.data.v1beta.IPivotHeader[]; - - /** RunPivotReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; - - /** RunPivotReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; - - /** RunPivotReportResponse rows. */ - public rows: google.analytics.data.v1beta.IRow[]; - - /** RunPivotReportResponse aggregates. */ - public aggregates: google.analytics.data.v1beta.IRow[]; - - /** RunPivotReportResponse metadata. */ - public metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); - - /** RunPivotReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** EventSegment eventInclusionCriteria. */ + public eventInclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); - /** RunPivotReportResponse kind. */ - public kind: string; + /** EventSegment exclusion. */ + public exclusion?: (google.analytics.data.v1alpha.IEventSegmentExclusion|null); /** - * Creates a new RunPivotReportResponse instance using the specified properties. + * Creates a new EventSegment instance using the specified properties. * @param [properties] Properties to set - * @returns RunPivotReportResponse instance + * @returns EventSegment instance */ - public static create(properties?: google.analytics.data.v1beta.IRunPivotReportResponse): google.analytics.data.v1beta.RunPivotReportResponse; + public static create(properties?: google.analytics.data.v1alpha.IEventSegment): google.analytics.data.v1alpha.EventSegment; /** - * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. - * @param message RunPivotReportResponse message or plain object to encode + * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * @param message EventSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. - * @param message RunPivotReportResponse message or plain object to encode + * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. + * @param message EventSegment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer. + * Decodes an EventSegment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunPivotReportResponse + * @returns EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunPivotReportResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegment; /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. + * Decodes an EventSegment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunPivotReportResponse + * @returns EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunPivotReportResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegment; /** - * Verifies a RunPivotReportResponse message. + * Verifies an EventSegment message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunPivotReportResponse + * @returns EventSegment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunPivotReportResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegment; /** - * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. - * @param message RunPivotReportResponse + * Creates a plain object from an EventSegment message. Also converts values to other types if specified. + * @param message EventSegment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunPivotReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunPivotReportResponse to JSON. + * Converts this EventSegment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a BatchRunReportsRequest. */ - interface IBatchRunReportsRequest { - - /** BatchRunReportsRequest property */ - property?: (string|null); + /** Properties of an EventSegmentCriteria. */ + interface IEventSegmentCriteria { - /** BatchRunReportsRequest requests */ - requests?: (google.analytics.data.v1beta.IRunReportRequest[]|null); + /** EventSegmentCriteria andConditionGroups */ + andConditionGroups?: (google.analytics.data.v1alpha.IEventSegmentConditionGroup[]|null); } - /** Represents a BatchRunReportsRequest. */ - class BatchRunReportsRequest implements IBatchRunReportsRequest { + /** Represents an EventSegmentCriteria. */ + class EventSegmentCriteria implements IEventSegmentCriteria { /** - * Constructs a new BatchRunReportsRequest. + * Constructs a new EventSegmentCriteria. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IBatchRunReportsRequest); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria); - /** BatchRunReportsRequest property. */ - public property: string; - - /** BatchRunReportsRequest requests. */ - public requests: google.analytics.data.v1beta.IRunReportRequest[]; + /** EventSegmentCriteria andConditionGroups. */ + public andConditionGroups: google.analytics.data.v1alpha.IEventSegmentConditionGroup[]; /** - * Creates a new BatchRunReportsRequest instance using the specified properties. + * Creates a new EventSegmentCriteria instance using the specified properties. * @param [properties] Properties to set - * @returns BatchRunReportsRequest instance + * @returns EventSegmentCriteria instance */ - public static create(properties?: google.analytics.data.v1beta.IBatchRunReportsRequest): google.analytics.data.v1beta.BatchRunReportsRequest; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentCriteria): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. - * @param message BatchRunReportsRequest message or plain object to encode + * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * @param message EventSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. - * @param message BatchRunReportsRequest message or plain object to encode + * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. + * @param message EventSegmentCriteria message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentCriteria, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer. + * Decodes an EventSegmentCriteria message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns BatchRunReportsRequest + * @returns EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunReportsRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns BatchRunReportsRequest + * @returns EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunReportsRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Verifies a BatchRunReportsRequest message. + * Verifies an EventSegmentCriteria message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns BatchRunReportsRequest + * @returns EventSegmentCriteria */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunReportsRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentCriteria; /** - * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. - * @param message BatchRunReportsRequest + * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. + * @param message EventSegmentCriteria * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.BatchRunReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentCriteria, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this BatchRunReportsRequest to JSON. + * Converts this EventSegmentCriteria to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a BatchRunReportsResponse. */ - interface IBatchRunReportsResponse { + /** EventCriteriaScoping enum. */ + enum EventCriteriaScoping { + EVENT_CRITERIA_SCOPING_UNSPECIFIED = 0, + EVENT_CRITERIA_WITHIN_SAME_EVENT = 1 + } - /** BatchRunReportsResponse reports */ - reports?: (google.analytics.data.v1beta.IRunReportResponse[]|null); + /** Properties of an EventSegmentConditionGroup. */ + interface IEventSegmentConditionGroup { - /** BatchRunReportsResponse kind */ - kind?: (string|null); + /** EventSegmentConditionGroup conditionScoping */ + conditionScoping?: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping|null); + + /** EventSegmentConditionGroup segmentFilterExpression */ + segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); } - /** Represents a BatchRunReportsResponse. */ - class BatchRunReportsResponse implements IBatchRunReportsResponse { + /** Represents an EventSegmentConditionGroup. */ + class EventSegmentConditionGroup implements IEventSegmentConditionGroup { /** - * Constructs a new BatchRunReportsResponse. + * Constructs a new EventSegmentConditionGroup. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IBatchRunReportsResponse); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup); - /** BatchRunReportsResponse reports. */ - public reports: google.analytics.data.v1beta.IRunReportResponse[]; + /** EventSegmentConditionGroup conditionScoping. */ + public conditionScoping: (google.analytics.data.v1alpha.EventCriteriaScoping|keyof typeof google.analytics.data.v1alpha.EventCriteriaScoping); - /** BatchRunReportsResponse kind. */ - public kind: string; + /** EventSegmentConditionGroup segmentFilterExpression. */ + public segmentFilterExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); /** - * Creates a new BatchRunReportsResponse instance using the specified properties. + * Creates a new EventSegmentConditionGroup instance using the specified properties. * @param [properties] Properties to set - * @returns BatchRunReportsResponse instance + * @returns EventSegmentConditionGroup instance */ - public static create(properties?: google.analytics.data.v1beta.IBatchRunReportsResponse): google.analytics.data.v1beta.BatchRunReportsResponse; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentConditionGroup): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. - * @param message BatchRunReportsResponse message or plain object to encode + * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * @param message EventSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. - * @param message BatchRunReportsResponse message or plain object to encode + * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. + * @param message EventSegmentConditionGroup message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentConditionGroup, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns BatchRunReportsResponse + * @returns EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunReportsResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns BatchRunReportsResponse + * @returns EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunReportsResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Verifies a BatchRunReportsResponse message. + * Verifies an EventSegmentConditionGroup message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns BatchRunReportsResponse + * @returns EventSegmentConditionGroup */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunReportsResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentConditionGroup; /** - * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. - * @param message BatchRunReportsResponse + * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. + * @param message EventSegmentConditionGroup * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.BatchRunReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentConditionGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this BatchRunReportsResponse to JSON. + * Converts this EventSegmentConditionGroup to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a BatchRunPivotReportsRequest. */ - interface IBatchRunPivotReportsRequest { + /** Properties of an EventSegmentExclusion. */ + interface IEventSegmentExclusion { - /** BatchRunPivotReportsRequest property */ - property?: (string|null); + /** EventSegmentExclusion eventExclusionDuration */ + eventExclusionDuration?: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration|null); - /** BatchRunPivotReportsRequest requests */ - requests?: (google.analytics.data.v1beta.IRunPivotReportRequest[]|null); + /** EventSegmentExclusion eventExclusionCriteria */ + eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); } - /** Represents a BatchRunPivotReportsRequest. */ - class BatchRunPivotReportsRequest implements IBatchRunPivotReportsRequest { + /** Represents an EventSegmentExclusion. */ + class EventSegmentExclusion implements IEventSegmentExclusion { /** - * Constructs a new BatchRunPivotReportsRequest. + * Constructs a new EventSegmentExclusion. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsRequest); + constructor(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion); - /** BatchRunPivotReportsRequest property. */ - public property: string; + /** EventSegmentExclusion eventExclusionDuration. */ + public eventExclusionDuration: (google.analytics.data.v1alpha.EventExclusionDuration|keyof typeof google.analytics.data.v1alpha.EventExclusionDuration); - /** BatchRunPivotReportsRequest requests. */ - public requests: google.analytics.data.v1beta.IRunPivotReportRequest[]; + /** EventSegmentExclusion eventExclusionCriteria. */ + public eventExclusionCriteria?: (google.analytics.data.v1alpha.IEventSegmentCriteria|null); /** - * Creates a new BatchRunPivotReportsRequest instance using the specified properties. + * Creates a new EventSegmentExclusion instance using the specified properties. * @param [properties] Properties to set - * @returns BatchRunPivotReportsRequest instance + * @returns EventSegmentExclusion instance */ - public static create(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsRequest): google.analytics.data.v1beta.BatchRunPivotReportsRequest; + public static create(properties?: google.analytics.data.v1alpha.IEventSegmentExclusion): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. - * @param message BatchRunPivotReportsRequest message or plain object to encode + * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * @param message EventSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. - * @param message BatchRunPivotReportsRequest message or plain object to encode + * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. + * @param message EventSegmentExclusion message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IEventSegmentExclusion, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. + * Decodes an EventSegmentExclusion message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns BatchRunPivotReportsRequest + * @returns EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunPivotReportsRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns BatchRunPivotReportsRequest + * @returns EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunPivotReportsRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Verifies a BatchRunPivotReportsRequest message. + * Verifies an EventSegmentExclusion message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns BatchRunPivotReportsRequest + * @returns EventSegmentExclusion */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunPivotReportsRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.EventSegmentExclusion; /** - * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. - * @param message BatchRunPivotReportsRequest + * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. + * @param message EventSegmentExclusion * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.BatchRunPivotReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.EventSegmentExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this BatchRunPivotReportsRequest to JSON. + * Converts this EventSegmentExclusion to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a BatchRunPivotReportsResponse. */ - interface IBatchRunPivotReportsResponse { + /** EventExclusionDuration enum. */ + enum EventExclusionDuration { + EVENT_EXCLUSION_DURATION_UNSPECIFIED = 0, + EVENT_EXCLUSION_PERMANENT = 1 + } - /** BatchRunPivotReportsResponse pivotReports */ - pivotReports?: (google.analytics.data.v1beta.IRunPivotReportResponse[]|null); + /** Properties of a Segment. */ + interface ISegment { - /** BatchRunPivotReportsResponse kind */ - kind?: (string|null); + /** Segment name */ + name?: (string|null); + + /** Segment userSegment */ + userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); + + /** Segment sessionSegment */ + sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + + /** Segment eventSegment */ + eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); } - /** Represents a BatchRunPivotReportsResponse. */ - class BatchRunPivotReportsResponse implements IBatchRunPivotReportsResponse { + /** Represents a Segment. */ + class Segment implements ISegment { /** - * Constructs a new BatchRunPivotReportsResponse. + * Constructs a new Segment. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsResponse); + constructor(properties?: google.analytics.data.v1alpha.ISegment); - /** BatchRunPivotReportsResponse pivotReports. */ - public pivotReports: google.analytics.data.v1beta.IRunPivotReportResponse[]; + /** Segment name. */ + public name: string; - /** BatchRunPivotReportsResponse kind. */ - public kind: string; + /** Segment userSegment. */ + public userSegment?: (google.analytics.data.v1alpha.IUserSegment|null); + + /** Segment sessionSegment. */ + public sessionSegment?: (google.analytics.data.v1alpha.ISessionSegment|null); + + /** Segment eventSegment. */ + public eventSegment?: (google.analytics.data.v1alpha.IEventSegment|null); + + /** Segment oneSegmentScope. */ + public oneSegmentScope?: ("userSegment"|"sessionSegment"|"eventSegment"); /** - * Creates a new BatchRunPivotReportsResponse instance using the specified properties. + * Creates a new Segment instance using the specified properties. * @param [properties] Properties to set - * @returns BatchRunPivotReportsResponse instance + * @returns Segment instance */ - public static create(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsResponse): google.analytics.data.v1beta.BatchRunPivotReportsResponse; + public static create(properties?: google.analytics.data.v1alpha.ISegment): google.analytics.data.v1alpha.Segment; /** - * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. - * @param message BatchRunPivotReportsResponse message or plain object to encode + * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * @param message Segment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. - * @param message BatchRunPivotReportsResponse message or plain object to encode + * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. + * @param message Segment message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegment, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. + * Decodes a Segment message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns BatchRunPivotReportsResponse + * @returns Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunPivotReportsResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.Segment; /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. + * Decodes a Segment message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns BatchRunPivotReportsResponse + * @returns Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunPivotReportsResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.Segment; /** - * Verifies a BatchRunPivotReportsResponse message. + * Verifies a Segment message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a Segment message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns BatchRunPivotReportsResponse + * @returns Segment */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunPivotReportsResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.Segment; /** - * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. - * @param message BatchRunPivotReportsResponse + * Creates a plain object from a Segment message. Also converts values to other types if specified. + * @param message Segment * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.BatchRunPivotReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.Segment, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this BatchRunPivotReportsResponse to JSON. + * Converts this Segment to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a GetMetadataRequest. */ - interface IGetMetadataRequest { + /** Properties of a SegmentFilterExpression. */ + interface ISegmentFilterExpression { - /** GetMetadataRequest name */ - name?: (string|null); + /** SegmentFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + + /** SegmentFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + + /** SegmentFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + + /** SegmentFilterExpression segmentFilter */ + segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + + /** SegmentFilterExpression segmentEventFilter */ + segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); } - /** Represents a GetMetadataRequest. */ - class GetMetadataRequest implements IGetMetadataRequest { + /** Represents a SegmentFilterExpression. */ + class SegmentFilterExpression implements ISegmentFilterExpression { /** - * Constructs a new GetMetadataRequest. + * Constructs a new SegmentFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IGetMetadataRequest); + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression); - /** GetMetadataRequest name. */ - public name: string; + /** SegmentFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + + /** SegmentFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.ISegmentFilterExpressionList|null); + + /** SegmentFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.ISegmentFilterExpression|null); + + /** SegmentFilterExpression segmentFilter. */ + public segmentFilter?: (google.analytics.data.v1alpha.ISegmentFilter|null); + + /** SegmentFilterExpression segmentEventFilter. */ + public segmentEventFilter?: (google.analytics.data.v1alpha.ISegmentEventFilter|null); + + /** SegmentFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"); /** - * Creates a new GetMetadataRequest instance using the specified properties. + * Creates a new SegmentFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns GetMetadataRequest instance + * @returns SegmentFilterExpression instance */ - public static create(properties?: google.analytics.data.v1beta.IGetMetadataRequest): google.analytics.data.v1beta.GetMetadataRequest; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpression): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. - * @param message GetMetadataRequest message or plain object to encode + * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @param message SegmentFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. - * @param message GetMetadataRequest message or plain object to encode + * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @param message SegmentFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a GetMetadataRequest message from the specified reader or buffer. + * Decodes a SegmentFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns GetMetadataRequest + * @returns SegmentFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.GetMetadataRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns GetMetadataRequest + * @returns SegmentFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.GetMetadataRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Verifies a GetMetadataRequest message. + * Verifies a SegmentFilterExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns GetMetadataRequest + * @returns SegmentFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.GetMetadataRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpression; /** - * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. - * @param message GetMetadataRequest + * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. + * @param message SegmentFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.GetMetadataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this GetMetadataRequest to JSON. + * Converts this SegmentFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunRealtimeReportRequest. */ - interface IRunRealtimeReportRequest { - - /** RunRealtimeReportRequest property */ - property?: (string|null); - - /** RunRealtimeReportRequest dimensions */ - dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - - /** RunRealtimeReportRequest metrics */ - metrics?: (google.analytics.data.v1beta.IMetric[]|null); - - /** RunRealtimeReportRequest dimensionFilter */ - dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** RunRealtimeReportRequest metricFilter */ - metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** RunRealtimeReportRequest limit */ - limit?: (number|Long|string|null); - - /** RunRealtimeReportRequest metricAggregations */ - metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); - - /** RunRealtimeReportRequest orderBys */ - orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); - - /** RunRealtimeReportRequest returnPropertyQuota */ - returnPropertyQuota?: (boolean|null); + /** Properties of a SegmentFilterExpressionList. */ + interface ISegmentFilterExpressionList { - /** RunRealtimeReportRequest minuteRanges */ - minuteRanges?: (google.analytics.data.v1beta.IMinuteRange[]|null); + /** SegmentFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.ISegmentFilterExpression[]|null); } - /** Represents a RunRealtimeReportRequest. */ - class RunRealtimeReportRequest implements IRunRealtimeReportRequest { + /** Represents a SegmentFilterExpressionList. */ + class SegmentFilterExpressionList implements ISegmentFilterExpressionList { /** - * Constructs a new RunRealtimeReportRequest. + * Constructs a new SegmentFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IRunRealtimeReportRequest); - - /** RunRealtimeReportRequest property. */ - public property: string; - - /** RunRealtimeReportRequest dimensions. */ - public dimensions: google.analytics.data.v1beta.IDimension[]; - - /** RunRealtimeReportRequest metrics. */ - public metrics: google.analytics.data.v1beta.IMetric[]; - - /** RunRealtimeReportRequest dimensionFilter. */ - public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** RunRealtimeReportRequest metricFilter. */ - public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - - /** RunRealtimeReportRequest limit. */ - public limit: (number|Long|string); - - /** RunRealtimeReportRequest metricAggregations. */ - public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList); - /** RunRealtimeReportRequest orderBys. */ - public orderBys: google.analytics.data.v1beta.IOrderBy[]; - - /** RunRealtimeReportRequest returnPropertyQuota. */ - public returnPropertyQuota: boolean; - - /** RunRealtimeReportRequest minuteRanges. */ - public minuteRanges: google.analytics.data.v1beta.IMinuteRange[]; + /** SegmentFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.ISegmentFilterExpression[]; /** - * Creates a new RunRealtimeReportRequest instance using the specified properties. + * Creates a new SegmentFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns RunRealtimeReportRequest instance + * @returns SegmentFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1beta.IRunRealtimeReportRequest): google.analytics.data.v1beta.RunRealtimeReportRequest; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterExpressionList): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. - * @param message RunRealtimeReportRequest message or plain object to encode + * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * @param message SegmentFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. - * @param message RunRealtimeReportRequest message or plain object to encode + * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. + * @param message SegmentFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunRealtimeReportRequest + * @returns SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunRealtimeReportRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunRealtimeReportRequest + * @returns SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunRealtimeReportRequest; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Verifies a RunRealtimeReportRequest message. + * Verifies a SegmentFilterExpressionList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunRealtimeReportRequest + * @returns SegmentFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunRealtimeReportRequest; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterExpressionList; /** - * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. - * @param message RunRealtimeReportRequest + * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. + * @param message SegmentFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunRealtimeReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunRealtimeReportRequest to JSON. + * Converts this SegmentFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a RunRealtimeReportResponse. */ - interface IRunRealtimeReportResponse { - - /** RunRealtimeReportResponse dimensionHeaders */ - dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); - - /** RunRealtimeReportResponse metricHeaders */ - metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); - - /** RunRealtimeReportResponse rows */ - rows?: (google.analytics.data.v1beta.IRow[]|null); + /** Properties of a SegmentFilter. */ + interface ISegmentFilter { - /** RunRealtimeReportResponse totals */ - totals?: (google.analytics.data.v1beta.IRow[]|null); + /** SegmentFilter fieldName */ + fieldName?: (string|null); - /** RunRealtimeReportResponse maximums */ - maximums?: (google.analytics.data.v1beta.IRow[]|null); + /** SegmentFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** RunRealtimeReportResponse minimums */ - minimums?: (google.analytics.data.v1beta.IRow[]|null); + /** SegmentFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** RunRealtimeReportResponse rowCount */ - rowCount?: (number|null); + /** SegmentFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** RunRealtimeReportResponse propertyQuota */ - propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** SegmentFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** RunRealtimeReportResponse kind */ - kind?: (string|null); + /** SegmentFilter filterScoping */ + filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); } - /** Represents a RunRealtimeReportResponse. */ - class RunRealtimeReportResponse implements IRunRealtimeReportResponse { + /** Represents a SegmentFilter. */ + class SegmentFilter implements ISegmentFilter { /** - * Constructs a new RunRealtimeReportResponse. + * Constructs a new SegmentFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IRunRealtimeReportResponse); - - /** RunRealtimeReportResponse dimensionHeaders. */ - public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; - - /** RunRealtimeReportResponse metricHeaders. */ - public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilter); - /** RunRealtimeReportResponse rows. */ - public rows: google.analytics.data.v1beta.IRow[]; + /** SegmentFilter fieldName. */ + public fieldName: string; - /** RunRealtimeReportResponse totals. */ - public totals: google.analytics.data.v1beta.IRow[]; + /** SegmentFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** RunRealtimeReportResponse maximums. */ - public maximums: google.analytics.data.v1beta.IRow[]; + /** SegmentFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** RunRealtimeReportResponse minimums. */ - public minimums: google.analytics.data.v1beta.IRow[]; + /** SegmentFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** RunRealtimeReportResponse rowCount. */ - public rowCount: number; + /** SegmentFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** RunRealtimeReportResponse propertyQuota. */ - public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + /** SegmentFilter filterScoping. */ + public filterScoping?: (google.analytics.data.v1alpha.ISegmentFilterScoping|null); - /** RunRealtimeReportResponse kind. */ - public kind: string; + /** SegmentFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new RunRealtimeReportResponse instance using the specified properties. + * Creates a new SegmentFilter instance using the specified properties. * @param [properties] Properties to set - * @returns RunRealtimeReportResponse instance + * @returns SegmentFilter instance */ - public static create(properties?: google.analytics.data.v1beta.IRunRealtimeReportResponse): google.analytics.data.v1beta.RunRealtimeReportResponse; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilter): google.analytics.data.v1alpha.SegmentFilter; /** - * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. - * @param message RunRealtimeReportResponse message or plain object to encode + * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * @param message SegmentFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. - * @param message RunRealtimeReportResponse message or plain object to encode + * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. + * @param message SegmentFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. + * Decodes a SegmentFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RunRealtimeReportResponse + * @returns SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunRealtimeReportResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilter; /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RunRealtimeReportResponse + * @returns SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunRealtimeReportResponse; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilter; /** - * Verifies a RunRealtimeReportResponse message. + * Verifies a SegmentFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RunRealtimeReportResponse + * @returns SegmentFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunRealtimeReportResponse; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilter; /** - * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. - * @param message RunRealtimeReportResponse + * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. + * @param message SegmentFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.RunRealtimeReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RunRealtimeReportResponse to JSON. + * Converts this SegmentFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DateRange. */ - interface IDateRange { - - /** DateRange startDate */ - startDate?: (string|null); - - /** DateRange endDate */ - endDate?: (string|null); + /** Properties of a SegmentFilterScoping. */ + interface ISegmentFilterScoping { - /** DateRange name */ - name?: (string|null); + /** SegmentFilterScoping atAnyPointInTime */ + atAnyPointInTime?: (boolean|null); } - /** Represents a DateRange. */ - class DateRange implements IDateRange { + /** Represents a SegmentFilterScoping. */ + class SegmentFilterScoping implements ISegmentFilterScoping { /** - * Constructs a new DateRange. + * Constructs a new SegmentFilterScoping. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDateRange); - - /** DateRange startDate. */ - public startDate: string; + constructor(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping); - /** DateRange endDate. */ - public endDate: string; + /** SegmentFilterScoping atAnyPointInTime. */ + public atAnyPointInTime?: (boolean|null); - /** DateRange name. */ - public name: string; + /** SegmentFilterScoping _atAnyPointInTime. */ + public _atAnyPointInTime?: "atAnyPointInTime"; /** - * Creates a new DateRange instance using the specified properties. + * Creates a new SegmentFilterScoping instance using the specified properties. * @param [properties] Properties to set - * @returns DateRange instance + * @returns SegmentFilterScoping instance */ - public static create(properties?: google.analytics.data.v1beta.IDateRange): google.analytics.data.v1beta.DateRange; + public static create(properties?: google.analytics.data.v1alpha.ISegmentFilterScoping): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode + * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * @param message SegmentFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. - * @param message DateRange message or plain object to encode + * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. + * @param message SegmentFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DateRange message from the specified reader or buffer. + * Decodes a SegmentFilterScoping message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DateRange + * @returns SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DateRange; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DateRange + * @returns SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DateRange; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Verifies a DateRange message. + * Verifies a SegmentFilterScoping message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DateRange message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DateRange + * @returns SegmentFilterScoping */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DateRange; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentFilterScoping; /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. - * @param message DateRange + * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. + * @param message SegmentFilterScoping * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DateRange to JSON. + * Converts this SegmentFilterScoping to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MinuteRange. */ - interface IMinuteRange { - - /** MinuteRange startMinutesAgo */ - startMinutesAgo?: (number|null); + /** Properties of a SegmentEventFilter. */ + interface ISegmentEventFilter { - /** MinuteRange endMinutesAgo */ - endMinutesAgo?: (number|null); + /** SegmentEventFilter eventName */ + eventName?: (string|null); - /** MinuteRange name */ - name?: (string|null); + /** SegmentEventFilter segmentParameterFilterExpression */ + segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); } - /** Represents a MinuteRange. */ - class MinuteRange implements IMinuteRange { + /** Represents a SegmentEventFilter. */ + class SegmentEventFilter implements ISegmentEventFilter { /** - * Constructs a new MinuteRange. + * Constructs a new SegmentEventFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMinuteRange); - - /** MinuteRange startMinutesAgo. */ - public startMinutesAgo?: (number|null); + constructor(properties?: google.analytics.data.v1alpha.ISegmentEventFilter); - /** MinuteRange endMinutesAgo. */ - public endMinutesAgo?: (number|null); + /** SegmentEventFilter eventName. */ + public eventName?: (string|null); - /** MinuteRange name. */ - public name: string; + /** SegmentEventFilter segmentParameterFilterExpression. */ + public segmentParameterFilterExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); - /** MinuteRange _startMinutesAgo. */ - public _startMinutesAgo?: "startMinutesAgo"; + /** SegmentEventFilter _eventName. */ + public _eventName?: "eventName"; - /** MinuteRange _endMinutesAgo. */ - public _endMinutesAgo?: "endMinutesAgo"; + /** SegmentEventFilter _segmentParameterFilterExpression. */ + public _segmentParameterFilterExpression?: "segmentParameterFilterExpression"; /** - * Creates a new MinuteRange instance using the specified properties. + * Creates a new SegmentEventFilter instance using the specified properties. * @param [properties] Properties to set - * @returns MinuteRange instance + * @returns SegmentEventFilter instance */ - public static create(properties?: google.analytics.data.v1beta.IMinuteRange): google.analytics.data.v1beta.MinuteRange; + public static create(properties?: google.analytics.data.v1alpha.ISegmentEventFilter): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Encodes the specified MinuteRange message. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. - * @param message MinuteRange message or plain object to encode + * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @param message SegmentEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMinuteRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MinuteRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. - * @param message MinuteRange message or plain object to encode + * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @param message SegmentEventFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMinuteRange, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MinuteRange message from the specified reader or buffer. + * Decodes a SegmentEventFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MinuteRange + * @returns SegmentEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MinuteRange; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Decodes a MinuteRange message from the specified reader or buffer, length delimited. + * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MinuteRange + * @returns SegmentEventFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MinuteRange; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Verifies a MinuteRange message. + * Verifies a SegmentEventFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MinuteRange message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentEventFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MinuteRange + * @returns SegmentEventFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MinuteRange; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentEventFilter; /** - * Creates a plain object from a MinuteRange message. Also converts values to other types if specified. - * @param message MinuteRange + * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. + * @param message SegmentEventFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.MinuteRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MinuteRange to JSON. + * Converts this SegmentEventFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Dimension. */ - interface IDimension { + /** Properties of a SegmentParameterFilterExpression. */ + interface ISegmentParameterFilterExpression { - /** Dimension name */ - name?: (string|null); + /** SegmentParameterFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** Dimension dimensionExpression */ - dimensionExpression?: (google.analytics.data.v1beta.IDimensionExpression|null); + /** SegmentParameterFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); + + /** SegmentParameterFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); + + /** SegmentParameterFilterExpression segmentParameterFilter */ + segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); } - /** Represents a Dimension. */ - class Dimension implements IDimension { + /** Represents a SegmentParameterFilterExpression. */ + class SegmentParameterFilterExpression implements ISegmentParameterFilterExpression { /** - * Constructs a new Dimension. + * Constructs a new SegmentParameterFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimension); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression); - /** Dimension name. */ - public name: string; + /** SegmentParameterFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); - /** Dimension dimensionExpression. */ - public dimensionExpression?: (google.analytics.data.v1beta.IDimensionExpression|null); + /** SegmentParameterFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null); + + /** SegmentParameterFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null); + + /** SegmentParameterFilterExpression segmentParameterFilter. */ + public segmentParameterFilter?: (google.analytics.data.v1alpha.ISegmentParameterFilter|null); + + /** SegmentParameterFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"); /** - * Creates a new Dimension instance using the specified properties. + * Creates a new SegmentParameterFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns Dimension instance + * @returns SegmentParameterFilterExpression instance */ - public static create(properties?: google.analytics.data.v1beta.IDimension): google.analytics.data.v1beta.Dimension; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpression): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode + * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * @param message SegmentParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. - * @param message Dimension message or plain object to encode + * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. + * @param message SegmentParameterFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Dimension message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Dimension + * @returns SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Dimension; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Dimension + * @returns SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Dimension; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Verifies a Dimension message. + * Verifies a SegmentParameterFilterExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Dimension message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Dimension + * @returns SegmentParameterFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Dimension; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpression; /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. - * @param message Dimension + * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. + * @param message SegmentParameterFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Dimension to JSON. + * Converts this SegmentParameterFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionExpression. */ - interface IDimensionExpression { - - /** DimensionExpression lowerCase */ - lowerCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - - /** DimensionExpression upperCase */ - upperCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); + /** Properties of a SegmentParameterFilterExpressionList. */ + interface ISegmentParameterFilterExpressionList { - /** DimensionExpression concatenate */ - concatenate?: (google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null); + /** SegmentParameterFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]|null); } - /** Represents a DimensionExpression. */ - class DimensionExpression implements IDimensionExpression { + /** Represents a SegmentParameterFilterExpressionList. */ + class SegmentParameterFilterExpressionList implements ISegmentParameterFilterExpressionList { /** - * Constructs a new DimensionExpression. + * Constructs a new SegmentParameterFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimensionExpression); - - /** DimensionExpression lowerCase. */ - public lowerCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - - /** DimensionExpression upperCase. */ - public upperCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - - /** DimensionExpression concatenate. */ - public concatenate?: (google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList); - /** DimensionExpression oneExpression. */ - public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); + /** SegmentParameterFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.ISegmentParameterFilterExpression[]; /** - * Creates a new DimensionExpression instance using the specified properties. + * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionExpression instance + * @returns SegmentParameterFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1beta.IDimensionExpression): google.analytics.data.v1beta.DimensionExpression; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode + * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @param message SegmentParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. - * @param message DimensionExpression message or plain object to encode + * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @param message SegmentParameterFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionExpression message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionExpression + * @returns SegmentParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionExpression + * @returns SegmentParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Verifies a DimensionExpression message. + * Verifies a SegmentParameterFilterExpressionList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionExpression + * @returns SegmentParameterFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterExpressionList; /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. - * @param message DimensionExpression + * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. + * @param message SegmentParameterFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionExpression to JSON. + * Converts this SegmentParameterFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace DimensionExpression { - - /** Properties of a CaseExpression. */ - interface ICaseExpression { - - /** CaseExpression dimensionName */ - dimensionName?: (string|null); - } - - /** Represents a CaseExpression. */ - class CaseExpression implements ICaseExpression { - - /** - * Constructs a new CaseExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.DimensionExpression.ICaseExpression); - - /** CaseExpression dimensionName. */ - public dimensionName: string; + /** Properties of a SegmentParameterFilter. */ + interface ISegmentParameterFilter { - /** - * Creates a new CaseExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns CaseExpression instance - */ - public static create(properties?: google.analytics.data.v1beta.DimensionExpression.ICaseExpression): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + /** SegmentParameterFilter eventParameterName */ + eventParameterName?: (string|null); - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** SegmentParameterFilter itemParameterName */ + itemParameterName?: (string|null); - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. - * @param message CaseExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** SegmentParameterFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + /** SegmentParameterFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + /** SegmentParameterFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** - * Verifies a CaseExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** SegmentParameterFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CaseExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + /** SegmentParameterFilter filterScoping */ + filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); + } - /** - * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. - * @param message CaseExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Represents a SegmentParameterFilter. */ + class SegmentParameterFilter implements ISegmentParameterFilter { - /** - * Converts this CaseExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Constructs a new SegmentParameterFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter); - /** Properties of a ConcatenateExpression. */ - interface IConcatenateExpression { + /** SegmentParameterFilter eventParameterName. */ + public eventParameterName?: (string|null); - /** ConcatenateExpression dimensionNames */ - dimensionNames?: (string[]|null); + /** SegmentParameterFilter itemParameterName. */ + public itemParameterName?: (string|null); - /** ConcatenateExpression delimiter */ - delimiter?: (string|null); - } + /** SegmentParameterFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Represents a ConcatenateExpression. */ - class ConcatenateExpression implements IConcatenateExpression { + /** SegmentParameterFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** - * Constructs a new ConcatenateExpression. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression); + /** SegmentParameterFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** ConcatenateExpression dimensionNames. */ - public dimensionNames: string[]; + /** SegmentParameterFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** ConcatenateExpression delimiter. */ - public delimiter: string; + /** SegmentParameterFilter filterScoping. */ + public filterScoping?: (google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null); - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @param [properties] Properties to set - * @returns ConcatenateExpression instance - */ - public static create(properties?: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + /** SegmentParameterFilter oneParameter. */ + public oneParameter?: ("eventParameterName"|"itemParameterName"); - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** SegmentParameterFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @param message ConcatenateExpression message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new SegmentParameterFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns SegmentParameterFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilter): google.analytics.data.v1alpha.SegmentParameterFilter; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + /** + * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @param message SegmentParameterFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + /** + * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @param message SegmentParameterFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies a ConcatenateExpression message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a SegmentParameterFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SegmentParameterFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilter; - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ConcatenateExpression - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + /** + * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SegmentParameterFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilter; - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @param message ConcatenateExpression - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies a SegmentParameterFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Converts this ConcatenateExpression to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Creates a SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SegmentParameterFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilter; - /** Properties of a Metric. */ - interface IMetric { + /** + * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. + * @param message SegmentParameterFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Metric name */ - name?: (string|null); + /** + * Converts this SegmentParameterFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Metric expression */ - expression?: (string|null); + /** Properties of a SegmentParameterFilterScoping. */ + interface ISegmentParameterFilterScoping { - /** Metric invisible */ - invisible?: (boolean|null); + /** SegmentParameterFilterScoping inAnyNDayPeriod */ + inAnyNDayPeriod?: (number|Long|string|null); } - /** Represents a Metric. */ - class Metric implements IMetric { + /** Represents a SegmentParameterFilterScoping. */ + class SegmentParameterFilterScoping implements ISegmentParameterFilterScoping { /** - * Constructs a new Metric. + * Constructs a new SegmentParameterFilterScoping. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetric); + constructor(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping); - /** Metric name. */ - public name: string; - - /** Metric expression. */ - public expression: string; + /** SegmentParameterFilterScoping inAnyNDayPeriod. */ + public inAnyNDayPeriod?: (number|Long|string|null); - /** Metric invisible. */ - public invisible: boolean; + /** SegmentParameterFilterScoping _inAnyNDayPeriod. */ + public _inAnyNDayPeriod?: "inAnyNDayPeriod"; /** - * Creates a new Metric instance using the specified properties. + * Creates a new SegmentParameterFilterScoping instance using the specified properties. * @param [properties] Properties to set - * @returns Metric instance + * @returns SegmentParameterFilterScoping instance */ - public static create(properties?: google.analytics.data.v1beta.IMetric): google.analytics.data.v1beta.Metric; + public static create(properties?: google.analytics.data.v1alpha.ISegmentParameterFilterScoping): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode + * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @param message SegmentParameterFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. - * @param message Metric message or plain object to encode + * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @param message SegmentParameterFilterScoping message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.ISegmentParameterFilterScoping, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Metric message from the specified reader or buffer. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Metric + * @returns SegmentParameterFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Metric; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Decodes a Metric message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Metric + * @returns SegmentParameterFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Metric; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Verifies a Metric message. + * Verifies a SegmentParameterFilterScoping message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Metric message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Metric + * @returns SegmentParameterFilterScoping */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Metric; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SegmentParameterFilterScoping; /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. - * @param message Metric + * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. + * @param message SegmentParameterFilterScoping * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.SegmentParameterFilterScoping, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Metric to JSON. + * Converts this SegmentParameterFilterScoping to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a FilterExpression. */ - interface IFilterExpression { + /** Properties of a FunnelFilterExpression. */ + interface IFunnelFilterExpression { - /** FilterExpression andGroup */ - andGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); + /** FunnelFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** FilterExpression orGroup */ - orGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); + /** FunnelFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** FilterExpression notExpression */ - notExpression?: (google.analytics.data.v1beta.IFilterExpression|null); + /** FunnelFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); - /** FilterExpression filter */ - filter?: (google.analytics.data.v1beta.IFilter|null); + /** FunnelFilterExpression funnelFilter */ + funnelFilter?: (google.analytics.data.v1alpha.IFunnelFilter|null); + + /** FunnelFilterExpression funnelEventFilter */ + funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); } - /** Represents a FilterExpression. */ - class FilterExpression implements IFilterExpression { + /** Represents a FunnelFilterExpression. */ + class FunnelFilterExpression implements IFunnelFilterExpression { /** - * Constructs a new FilterExpression. + * Constructs a new FunnelFilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IFilterExpression); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression); - /** FilterExpression andGroup. */ - public andGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); + /** FunnelFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** FilterExpression orGroup. */ - public orGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); + /** FunnelFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFunnelFilterExpressionList|null); - /** FilterExpression notExpression. */ - public notExpression?: (google.analytics.data.v1beta.IFilterExpression|null); + /** FunnelFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFunnelFilterExpression|null); - /** FilterExpression filter. */ - public filter?: (google.analytics.data.v1beta.IFilter|null); + /** FunnelFilterExpression funnelFilter. */ + public funnelFilter?: (google.analytics.data.v1alpha.IFunnelFilter|null); - /** FilterExpression expr. */ - public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); + /** FunnelFilterExpression funnelEventFilter. */ + public funnelEventFilter?: (google.analytics.data.v1alpha.IFunnelEventFilter|null); + + /** FunnelFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelFilter"|"funnelEventFilter"); /** - * Creates a new FilterExpression instance using the specified properties. + * Creates a new FunnelFilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns FilterExpression instance + * @returns FunnelFilterExpression instance */ - public static create(properties?: google.analytics.data.v1beta.IFilterExpression): google.analytics.data.v1beta.FilterExpression; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpression): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode + * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * @param message FunnelFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. - * @param message FilterExpression message or plain object to encode + * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. + * @param message FunnelFilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FilterExpression message from the specified reader or buffer. + * Decodes a FunnelFilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FilterExpression + * @returns FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.FilterExpression; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FilterExpression + * @returns FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.FilterExpression; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Verifies a FilterExpression message. + * Verifies a FunnelFilterExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FilterExpression + * @returns FunnelFilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.FilterExpression; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpression; /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. - * @param message FilterExpression + * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. + * @param message FunnelFilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FilterExpression to JSON. + * Converts this FunnelFilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a FilterExpressionList. */ - interface IFilterExpressionList { + /** Properties of a FunnelFilterExpressionList. */ + interface IFunnelFilterExpressionList { - /** FilterExpressionList expressions */ - expressions?: (google.analytics.data.v1beta.IFilterExpression[]|null); + /** FunnelFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFunnelFilterExpression[]|null); } - /** Represents a FilterExpressionList. */ - class FilterExpressionList implements IFilterExpressionList { + /** Represents a FunnelFilterExpressionList. */ + class FunnelFilterExpressionList implements IFunnelFilterExpressionList { /** - * Constructs a new FilterExpressionList. + * Constructs a new FunnelFilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IFilterExpressionList); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList); - /** FilterExpressionList expressions. */ - public expressions: google.analytics.data.v1beta.IFilterExpression[]; + /** FunnelFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFunnelFilterExpression[]; /** - * Creates a new FilterExpressionList instance using the specified properties. + * Creates a new FunnelFilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns FilterExpressionList instance + * @returns FunnelFilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1beta.IFilterExpressionList): google.analytics.data.v1beta.FilterExpressionList; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFilterExpressionList): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode + * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @param message FunnelFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. - * @param message FilterExpressionList message or plain object to encode + * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @param message FunnelFilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FilterExpressionList message from the specified reader or buffer. + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FilterExpressionList + * @returns FunnelFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.FilterExpressionList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns FilterExpressionList + * @returns FunnelFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.FilterExpressionList; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Verifies a FilterExpressionList message. + * Verifies a FunnelFilterExpressionList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns FilterExpressionList + * @returns FunnelFilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.FilterExpressionList; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilterExpressionList; /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. - * @param message FilterExpressionList + * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. + * @param message FunnelFilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this FilterExpressionList to JSON. + * Converts this FunnelFilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Filter. */ - interface IFilter { + /** Properties of a FunnelFilter. */ + interface IFunnelFilter { - /** Filter fieldName */ + /** FunnelFilter fieldName */ fieldName?: (string|null); - /** Filter stringFilter */ - stringFilter?: (google.analytics.data.v1beta.Filter.IStringFilter|null); - - /** Filter inListFilter */ - inListFilter?: (google.analytics.data.v1beta.Filter.IInListFilter|null); + /** FunnelFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Filter numericFilter */ - numericFilter?: (google.analytics.data.v1beta.Filter.INumericFilter|null); + /** FunnelFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** Filter betweenFilter */ - betweenFilter?: (google.analytics.data.v1beta.Filter.IBetweenFilter|null); + /** FunnelFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); } - /** Represents a Filter. */ - class Filter implements IFilter { + /** Represents a FunnelFilter. */ + class FunnelFilter implements IFunnelFilter { /** - * Constructs a new Filter. + * Constructs a new FunnelFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IFilter); + constructor(properties?: google.analytics.data.v1alpha.IFunnelFilter); - /** Filter fieldName. */ + /** FunnelFilter fieldName. */ public fieldName: string; - /** Filter stringFilter. */ - public stringFilter?: (google.analytics.data.v1beta.Filter.IStringFilter|null); + /** FunnelFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** Filter inListFilter. */ - public inListFilter?: (google.analytics.data.v1beta.Filter.IInListFilter|null); + /** FunnelFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** Filter numericFilter. */ - public numericFilter?: (google.analytics.data.v1beta.Filter.INumericFilter|null); + /** FunnelFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); - /** Filter betweenFilter. */ - public betweenFilter?: (google.analytics.data.v1beta.Filter.IBetweenFilter|null); + /** FunnelFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); - /** Filter oneFilter. */ + /** FunnelFilter oneFilter. */ public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new Filter instance using the specified properties. + * Creates a new FunnelFilter instance using the specified properties. * @param [properties] Properties to set - * @returns Filter instance + * @returns FunnelFilter instance */ - public static create(properties?: google.analytics.data.v1beta.IFilter): google.analytics.data.v1beta.Filter; + public static create(properties?: google.analytics.data.v1alpha.IFunnelFilter): google.analytics.data.v1alpha.FunnelFilter; /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode + * Encodes the specified FunnelFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilter.verify|verify} messages. + * @param message FunnelFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode + * Encodes the specified FunnelFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilter.verify|verify} messages. + * @param message FunnelFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Filter message from the specified reader or buffer. + * Decodes a FunnelFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Filter + * @returns FunnelFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelFilter; /** - * Decodes a Filter message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Filter + * @returns FunnelFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelFilter; /** - * Verifies a Filter message. + * Verifies a FunnelFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Filter + * @returns FunnelFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelFilter; /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. - * @param message Filter + * Creates a plain object from a FunnelFilter message. Also converts values to other types if specified. + * @param message FunnelFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Filter to JSON. + * Converts this FunnelFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace Filter { - - /** Properties of a StringFilter. */ - interface IStringFilter { - - /** StringFilter matchType */ - matchType?: (google.analytics.data.v1beta.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1beta.Filter.StringFilter.MatchType|null); - - /** StringFilter value */ - value?: (string|null); - - /** StringFilter caseSensitive */ - caseSensitive?: (boolean|null); - } - - /** Represents a StringFilter. */ - class StringFilter implements IStringFilter { - - /** - * Constructs a new StringFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.Filter.IStringFilter); - - /** StringFilter matchType. */ - public matchType: (google.analytics.data.v1beta.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1beta.Filter.StringFilter.MatchType); - - /** StringFilter value. */ - public value: string; - - /** StringFilter caseSensitive. */ - public caseSensitive: boolean; - - /** - * Creates a new StringFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns StringFilter instance - */ - public static create(properties?: google.analytics.data.v1beta.Filter.IStringFilter): google.analytics.data.v1beta.Filter.StringFilter; - - /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. - * @param message StringFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a StringFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.StringFilter; - - /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.StringFilter; - - /** - * Verifies a StringFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns StringFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.StringFilter; - - /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @param message StringFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.Filter.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this StringFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - - namespace StringFilter { + /** Properties of a FunnelEventFilter. */ + interface IFunnelEventFilter { - /** MatchType enum. */ - enum MatchType { - MATCH_TYPE_UNSPECIFIED = 0, - EXACT = 1, - BEGINS_WITH = 2, - ENDS_WITH = 3, - CONTAINS = 4, - FULL_REGEXP = 5, - PARTIAL_REGEXP = 6 - } - } + /** FunnelEventFilter eventName */ + eventName?: (string|null); - /** Properties of an InListFilter. */ - interface IInListFilter { + /** FunnelEventFilter funnelParameterFilterExpression */ + funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); + } - /** InListFilter values */ - values?: (string[]|null); + /** Represents a FunnelEventFilter. */ + class FunnelEventFilter implements IFunnelEventFilter { - /** InListFilter caseSensitive */ - caseSensitive?: (boolean|null); - } + /** + * Constructs a new FunnelEventFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFunnelEventFilter); - /** Represents an InListFilter. */ - class InListFilter implements IInListFilter { + /** FunnelEventFilter eventName. */ + public eventName?: (string|null); - /** - * Constructs a new InListFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.Filter.IInListFilter); + /** FunnelEventFilter funnelParameterFilterExpression. */ + public funnelParameterFilterExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); - /** InListFilter values. */ - public values: string[]; + /** FunnelEventFilter _eventName. */ + public _eventName?: "eventName"; - /** InListFilter caseSensitive. */ - public caseSensitive: boolean; + /** FunnelEventFilter _funnelParameterFilterExpression. */ + public _funnelParameterFilterExpression?: "funnelParameterFilterExpression"; - /** - * Creates a new InListFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns InListFilter instance - */ - public static create(properties?: google.analytics.data.v1beta.Filter.IInListFilter): google.analytics.data.v1beta.Filter.InListFilter; + /** + * Creates a new FunnelEventFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelEventFilter instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFunnelEventFilter): google.analytics.data.v1alpha.FunnelEventFilter; - /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @param message FunnelEventFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. - * @param message InListFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @param message FunnelEventFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelEventFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an InListFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.InListFilter; + /** + * Decodes a FunnelEventFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FunnelEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelEventFilter; - /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.InListFilter; + /** + * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FunnelEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelEventFilter; - /** - * Verifies an InListFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Verifies a FunnelEventFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns InListFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.InListFilter; + /** + * Creates a FunnelEventFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FunnelEventFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelEventFilter; - /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @param message InListFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.Filter.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. + * @param message FunnelEventFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.FunnelEventFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this InListFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Converts this FunnelEventFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Properties of a NumericFilter. */ - interface INumericFilter { + /** Properties of a FunnelParameterFilterExpression. */ + interface IFunnelParameterFilterExpression { - /** NumericFilter operation */ - operation?: (google.analytics.data.v1beta.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1beta.Filter.NumericFilter.Operation|null); + /** FunnelParameterFilterExpression andGroup */ + andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - /** NumericFilter value */ - value?: (google.analytics.data.v1beta.INumericValue|null); - } + /** FunnelParameterFilterExpression orGroup */ + orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - /** Represents a NumericFilter. */ - class NumericFilter implements INumericFilter { + /** FunnelParameterFilterExpression notExpression */ + notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); - /** - * Constructs a new NumericFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.Filter.INumericFilter); + /** FunnelParameterFilterExpression funnelParameterFilter */ + funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); + } - /** NumericFilter operation. */ - public operation: (google.analytics.data.v1beta.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1beta.Filter.NumericFilter.Operation); + /** Represents a FunnelParameterFilterExpression. */ + class FunnelParameterFilterExpression implements IFunnelParameterFilterExpression { - /** NumericFilter value. */ - public value?: (google.analytics.data.v1beta.INumericValue|null); + /** + * Constructs a new FunnelParameterFilterExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression); - /** - * Creates a new NumericFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns NumericFilter instance - */ - public static create(properties?: google.analytics.data.v1beta.Filter.INumericFilter): google.analytics.data.v1beta.Filter.NumericFilter; + /** FunnelParameterFilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** FunnelParameterFilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null); - /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. - * @param message NumericFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** FunnelParameterFilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null); - /** - * Decodes a NumericFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.NumericFilter; + /** FunnelParameterFilterExpression funnelParameterFilter. */ + public funnelParameterFilter?: (google.analytics.data.v1alpha.IFunnelParameterFilter|null); - /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.NumericFilter; + /** FunnelParameterFilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"); - /** - * Verifies a NumericFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a new FunnelParameterFilterExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelParameterFilterExpression instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpression): google.analytics.data.v1alpha.FunnelParameterFilterExpression; - /** - * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns NumericFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.NumericFilter; + /** + * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * @param message FunnelParameterFilterExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. - * @param message NumericFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.Filter.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. + * @param message FunnelParameterFilterExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this NumericFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FunnelParameterFilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilterExpression; - namespace NumericFilter { + /** + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FunnelParameterFilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilterExpression; - /** Operation enum. */ - enum Operation { - OPERATION_UNSPECIFIED = 0, - EQUAL = 1, - LESS_THAN = 2, - LESS_THAN_OR_EQUAL = 3, - GREATER_THAN = 4, - GREATER_THAN_OR_EQUAL = 5 - } - } + /** + * Verifies a FunnelParameterFilterExpression message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Properties of a BetweenFilter. */ - interface IBetweenFilter { + /** + * Creates a FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FunnelParameterFilterExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpression; - /** BetweenFilter fromValue */ - fromValue?: (google.analytics.data.v1beta.INumericValue|null); + /** + * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. + * @param message FunnelParameterFilterExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** BetweenFilter toValue */ - toValue?: (google.analytics.data.v1beta.INumericValue|null); - } + /** + * Converts this FunnelParameterFilterExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Represents a BetweenFilter. */ - class BetweenFilter implements IBetweenFilter { + /** Properties of a FunnelParameterFilterExpressionList. */ + interface IFunnelParameterFilterExpressionList { - /** - * Constructs a new BetweenFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.Filter.IBetweenFilter); + /** FunnelParameterFilterExpressionList expressions */ + expressions?: (google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]|null); + } - /** BetweenFilter fromValue. */ - public fromValue?: (google.analytics.data.v1beta.INumericValue|null); + /** Represents a FunnelParameterFilterExpressionList. */ + class FunnelParameterFilterExpressionList implements IFunnelParameterFilterExpressionList { - /** BetweenFilter toValue. */ - public toValue?: (google.analytics.data.v1beta.INumericValue|null); + /** + * Constructs a new FunnelParameterFilterExpressionList. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList); - /** - * Creates a new BetweenFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns BetweenFilter instance - */ - public static create(properties?: google.analytics.data.v1beta.Filter.IBetweenFilter): google.analytics.data.v1beta.Filter.BetweenFilter; + /** FunnelParameterFilterExpressionList expressions. */ + public expressions: google.analytics.data.v1alpha.IFunnelParameterFilterExpression[]; - /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelParameterFilterExpressionList instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; - /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. - * @param message BetweenFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * @param message FunnelParameterFilterExpressionList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a BetweenFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.BetweenFilter; + /** + * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. + * @param message FunnelParameterFilterExpressionList message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.BetweenFilter; + /** + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FunnelParameterFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; - /** - * Verifies a BetweenFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FunnelParameterFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; - /** - * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BetweenFilter - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.BetweenFilter; + /** + * Verifies a FunnelParameterFilterExpressionList message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. - * @param message BetweenFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.Filter.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FunnelParameterFilterExpressionList + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilterExpressionList; - /** - * Converts this BetweenFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. + * @param message FunnelParameterFilterExpressionList + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FunnelParameterFilterExpressionList to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; } - /** Properties of an OrderBy. */ - interface IOrderBy { + /** Properties of a FunnelParameterFilter. */ + interface IFunnelParameterFilter { - /** OrderBy metric */ - metric?: (google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null); + /** FunnelParameterFilter eventParameterName */ + eventParameterName?: (string|null); - /** OrderBy dimension */ - dimension?: (google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null); + /** FunnelParameterFilter itemParameterName */ + itemParameterName?: (string|null); - /** OrderBy pivot */ - pivot?: (google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null); + /** FunnelParameterFilter stringFilter */ + stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** OrderBy desc */ - desc?: (boolean|null); + /** FunnelParameterFilter inListFilter */ + inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); + + /** FunnelParameterFilter numericFilter */ + numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelParameterFilter betweenFilter */ + betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); } - /** Represents an OrderBy. */ - class OrderBy implements IOrderBy { + /** Represents a FunnelParameterFilter. */ + class FunnelParameterFilter implements IFunnelParameterFilter { /** - * Constructs a new OrderBy. + * Constructs a new FunnelParameterFilter. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IOrderBy); + constructor(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter); - /** OrderBy metric. */ - public metric?: (google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null); + /** FunnelParameterFilter eventParameterName. */ + public eventParameterName?: (string|null); - /** OrderBy dimension. */ - public dimension?: (google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null); + /** FunnelParameterFilter itemParameterName. */ + public itemParameterName?: (string|null); - /** OrderBy pivot. */ - public pivot?: (google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null); + /** FunnelParameterFilter stringFilter. */ + public stringFilter?: (google.analytics.data.v1alpha.IStringFilter|null); - /** OrderBy desc. */ - public desc: boolean; + /** FunnelParameterFilter inListFilter. */ + public inListFilter?: (google.analytics.data.v1alpha.IInListFilter|null); - /** OrderBy oneOrderBy. */ - public oneOrderBy?: ("metric"|"dimension"|"pivot"); + /** FunnelParameterFilter numericFilter. */ + public numericFilter?: (google.analytics.data.v1alpha.INumericFilter|null); + + /** FunnelParameterFilter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1alpha.IBetweenFilter|null); + + /** FunnelParameterFilter oneParameter. */ + public oneParameter?: ("eventParameterName"|"itemParameterName"); + + /** FunnelParameterFilter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); /** - * Creates a new OrderBy instance using the specified properties. + * Creates a new FunnelParameterFilter instance using the specified properties. * @param [properties] Properties to set - * @returns OrderBy instance + * @returns FunnelParameterFilter instance */ - public static create(properties?: google.analytics.data.v1beta.IOrderBy): google.analytics.data.v1beta.OrderBy; + public static create(properties?: google.analytics.data.v1alpha.IFunnelParameterFilter): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * @param message FunnelParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. - * @param message OrderBy message or plain object to encode + * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. + * @param message FunnelParameterFilter message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelParameterFilter, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an OrderBy message from the specified reader or buffer. + * Decodes a FunnelParameterFilter message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns OrderBy + * @returns FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns OrderBy + * @returns FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Verifies an OrderBy message. + * Verifies a FunnelParameterFilter message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns OrderBy + * @returns FunnelParameterFilter */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelParameterFilter; /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. - * @param message OrderBy + * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. + * @param message FunnelParameterFilter * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.OrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1alpha.FunnelParameterFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this OrderBy to JSON. + * Converts this FunnelParameterFilter to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace OrderBy { + /** Properties of a FunnelResponseMetadata. */ + interface IFunnelResponseMetadata { - /** Properties of a MetricOrderBy. */ - interface IMetricOrderBy { + /** FunnelResponseMetadata samplingMetadatas */ + samplingMetadatas?: (google.analytics.data.v1alpha.ISamplingMetadata[]|null); + } - /** MetricOrderBy metricName */ - metricName?: (string|null); - } + /** Represents a FunnelResponseMetadata. */ + class FunnelResponseMetadata implements IFunnelResponseMetadata { - /** Represents a MetricOrderBy. */ - class MetricOrderBy implements IMetricOrderBy { + /** + * Constructs a new FunnelResponseMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata); - /** - * Constructs a new MetricOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.OrderBy.IMetricOrderBy); + /** FunnelResponseMetadata samplingMetadatas. */ + public samplingMetadatas: google.analytics.data.v1alpha.ISamplingMetadata[]; - /** MetricOrderBy metricName. */ - public metricName: string; + /** + * Creates a new FunnelResponseMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns FunnelResponseMetadata instance + */ + public static create(properties?: google.analytics.data.v1alpha.IFunnelResponseMetadata): google.analytics.data.v1alpha.FunnelResponseMetadata; - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns MetricOrderBy instance - */ - public static create(properties?: google.analytics.data.v1beta.OrderBy.IMetricOrderBy): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + /** + * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * @param message FunnelResponseMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. + * @param message FunnelResponseMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.IFunnelResponseMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. - * @param message MetricOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a FunnelResponseMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FunnelResponseMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.FunnelResponseMetadata; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + /** + * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FunnelResponseMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.FunnelResponseMetadata; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + /** + * Verifies a FunnelResponseMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Verifies a MetricOrderBy message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FunnelResponseMetadata + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.FunnelResponseMetadata; - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MetricOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + /** + * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. + * @param message FunnelResponseMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.FunnelResponseMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @param message MetricOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.OrderBy.MetricOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Converts this FunnelResponseMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Converts this MetricOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Properties of a SamplingMetadata. */ + interface ISamplingMetadata { - /** Properties of a DimensionOrderBy. */ - interface IDimensionOrderBy { + /** SamplingMetadata samplesReadCount */ + samplesReadCount?: (number|Long|string|null); - /** DimensionOrderBy dimensionName */ - dimensionName?: (string|null); + /** SamplingMetadata samplingSpaceSize */ + samplingSpaceSize?: (number|Long|string|null); + } - /** DimensionOrderBy orderType */ - orderType?: (google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|null); - } + /** Represents a SamplingMetadata. */ + class SamplingMetadata implements ISamplingMetadata { - /** Represents a DimensionOrderBy. */ - class DimensionOrderBy implements IDimensionOrderBy { + /** + * Constructs a new SamplingMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1alpha.ISamplingMetadata); + + /** SamplingMetadata samplesReadCount. */ + public samplesReadCount: (number|Long|string); + + /** SamplingMetadata samplingSpaceSize. */ + public samplingSpaceSize: (number|Long|string); + + /** + * Creates a new SamplingMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns SamplingMetadata instance + */ + public static create(properties?: google.analytics.data.v1alpha.ISamplingMetadata): google.analytics.data.v1alpha.SamplingMetadata; + + /** + * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * @param message SamplingMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. + * @param message SamplingMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1alpha.ISamplingMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SamplingMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SamplingMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1alpha.SamplingMetadata; + + /** + * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SamplingMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1alpha.SamplingMetadata; + + /** + * Verifies a SamplingMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SamplingMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SamplingMetadata + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1alpha.SamplingMetadata; + + /** + * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. + * @param message SamplingMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1alpha.SamplingMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Constructs a new DimensionOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy); + /** + * Converts this SamplingMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** DimensionOrderBy dimensionName. */ - public dimensionName: string; + /** MetricType enum. */ + enum MetricType { + METRIC_TYPE_UNSPECIFIED = 0, + TYPE_INTEGER = 1, + TYPE_FLOAT = 2, + TYPE_SECONDS = 4, + TYPE_MILLISECONDS = 5, + TYPE_MINUTES = 6, + TYPE_HOURS = 7, + TYPE_STANDARD = 8, + TYPE_CURRENCY = 9, + TYPE_FEET = 10, + TYPE_MILES = 11, + TYPE_METERS = 12, + TYPE_KILOMETERS = 13 + } + } - /** DimensionOrderBy orderType. */ - public orderType: (google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType); + /** Namespace v1beta. */ + namespace v1beta { - /** - * Creates a new DimensionOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns DimensionOrderBy instance - */ - public static create(properties?: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; + /** Represents a BetaAnalyticsData */ + class BetaAnalyticsData extends $protobuf.rpc.Service { - /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new BetaAnalyticsData service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); - /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. - * @param message DimensionOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates new BetaAnalyticsData service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): BetaAnalyticsData; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; + /** + * Calls RunReport. + * @param request RunReportRequest message or plain object + * @param callback Node-style callback called with the error, if any, and RunReportResponse + */ + public runReport(request: google.analytics.data.v1beta.IRunReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunReportCallback): void; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; + /** + * Calls RunReport. + * @param request RunReportRequest message or plain object + * @returns Promise + */ + public runReport(request: google.analytics.data.v1beta.IRunReportRequest): Promise; - /** - * Verifies a DimensionOrderBy message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Calls RunPivotReport. + * @param request RunPivotReportRequest message or plain object + * @param callback Node-style callback called with the error, if any, and RunPivotReportResponse + */ + public runPivotReport(request: google.analytics.data.v1beta.IRunPivotReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReportCallback): void; - /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DimensionOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; + /** + * Calls RunPivotReport. + * @param request RunPivotReportRequest message or plain object + * @returns Promise + */ + public runPivotReport(request: google.analytics.data.v1beta.IRunPivotReportRequest): Promise; - /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @param message DimensionOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.OrderBy.DimensionOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Calls BatchRunReports. + * @param request BatchRunReportsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and BatchRunReportsResponse + */ + public batchRunReports(request: google.analytics.data.v1beta.IBatchRunReportsRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReportsCallback): void; - /** - * Converts this DimensionOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Calls BatchRunReports. + * @param request BatchRunReportsRequest message or plain object + * @returns Promise + */ + public batchRunReports(request: google.analytics.data.v1beta.IBatchRunReportsRequest): Promise; - namespace DimensionOrderBy { + /** + * Calls BatchRunPivotReports. + * @param request BatchRunPivotReportsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse + */ + public batchRunPivotReports(request: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReportsCallback): void; - /** OrderType enum. */ - enum OrderType { - ORDER_TYPE_UNSPECIFIED = 0, - ALPHANUMERIC = 1, - CASE_INSENSITIVE_ALPHANUMERIC = 2, - NUMERIC = 3 - } - } + /** + * Calls BatchRunPivotReports. + * @param request BatchRunPivotReportsRequest message or plain object + * @returns Promise + */ + public batchRunPivotReports(request: google.analytics.data.v1beta.IBatchRunPivotReportsRequest): Promise; - /** Properties of a PivotOrderBy. */ - interface IPivotOrderBy { + /** + * Calls GetMetadata. + * @param request GetMetadataRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Metadata + */ + public getMetadata(request: google.analytics.data.v1beta.IGetMetadataRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.GetMetadataCallback): void; - /** PivotOrderBy metricName */ - metricName?: (string|null); + /** + * Calls GetMetadata. + * @param request GetMetadataRequest message or plain object + * @returns Promise + */ + public getMetadata(request: google.analytics.data.v1beta.IGetMetadataRequest): Promise; - /** PivotOrderBy pivotSelections */ - pivotSelections?: (google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection[]|null); - } + /** + * Calls RunRealtimeReport. + * @param request RunRealtimeReportRequest message or plain object + * @param callback Node-style callback called with the error, if any, and RunRealtimeReportResponse + */ + public runRealtimeReport(request: google.analytics.data.v1beta.IRunRealtimeReportRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReportCallback): void; - /** Represents a PivotOrderBy. */ - class PivotOrderBy implements IPivotOrderBy { + /** + * Calls RunRealtimeReport. + * @param request RunRealtimeReportRequest message or plain object + * @returns Promise + */ + public runRealtimeReport(request: google.analytics.data.v1beta.IRunRealtimeReportRequest): Promise; - /** - * Constructs a new PivotOrderBy. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.OrderBy.IPivotOrderBy); + /** + * Calls CheckCompatibility. + * @param request CheckCompatibilityRequest message or plain object + * @param callback Node-style callback called with the error, if any, and CheckCompatibilityResponse + */ + public checkCompatibility(request: google.analytics.data.v1beta.ICheckCompatibilityRequest, callback: google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibilityCallback): void; - /** PivotOrderBy metricName. */ - public metricName: string; + /** + * Calls CheckCompatibility. + * @param request CheckCompatibilityRequest message or plain object + * @returns Promise + */ + public checkCompatibility(request: google.analytics.data.v1beta.ICheckCompatibilityRequest): Promise; + } - /** PivotOrderBy pivotSelections. */ - public pivotSelections: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection[]; + namespace BetaAnalyticsData { - /** - * Creates a new PivotOrderBy instance using the specified properties. - * @param [properties] Properties to set - * @returns PivotOrderBy instance - */ - public static create(properties?: google.analytics.data.v1beta.OrderBy.IPivotOrderBy): google.analytics.data.v1beta.OrderBy.PivotOrderBy; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runReport}. + * @param error Error, if any + * @param [response] RunReportResponse + */ + type RunReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunReportResponse) => void; - /** - * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. - * @param message PivotOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runPivotReport}. + * @param error Error, if any + * @param [response] RunPivotReportResponse + */ + type RunPivotReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunPivotReportResponse) => void; + + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunReports}. + * @param error Error, if any + * @param [response] BatchRunReportsResponse + */ + type BatchRunReportsCallback = (error: (Error|null), response?: google.analytics.data.v1beta.BatchRunReportsResponse) => void; - /** - * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. - * @param message PivotOrderBy message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunPivotReports}. + * @param error Error, if any + * @param [response] BatchRunPivotReportsResponse + */ + type BatchRunPivotReportsCallback = (error: (Error|null), response?: google.analytics.data.v1beta.BatchRunPivotReportsResponse) => void; - /** - * Decodes a PivotOrderBy message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.PivotOrderBy; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#getMetadata}. + * @param error Error, if any + * @param [response] Metadata + */ + type GetMetadataCallback = (error: (Error|null), response?: google.analytics.data.v1beta.Metadata) => void; - /** - * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.PivotOrderBy; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runRealtimeReport}. + * @param error Error, if any + * @param [response] RunRealtimeReportResponse + */ + type RunRealtimeReportCallback = (error: (Error|null), response?: google.analytics.data.v1beta.RunRealtimeReportResponse) => void; - /** - * Verifies a PivotOrderBy message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#checkCompatibility}. + * @param error Error, if any + * @param [response] CheckCompatibilityResponse + */ + type CheckCompatibilityCallback = (error: (Error|null), response?: google.analytics.data.v1beta.CheckCompatibilityResponse) => void; + } - /** - * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PivotOrderBy - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.PivotOrderBy; + /** Properties of a CheckCompatibilityRequest. */ + interface ICheckCompatibilityRequest { - /** - * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. - * @param message PivotOrderBy - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** CheckCompatibilityRequest property */ + property?: (string|null); - /** - * Converts this PivotOrderBy to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** CheckCompatibilityRequest dimensions */ + dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - namespace PivotOrderBy { + /** CheckCompatibilityRequest metrics */ + metrics?: (google.analytics.data.v1beta.IMetric[]|null); - /** Properties of a PivotSelection. */ - interface IPivotSelection { + /** CheckCompatibilityRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** PivotSelection dimensionName */ - dimensionName?: (string|null); + /** CheckCompatibilityRequest metricFilter */ + metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** PivotSelection dimensionValue */ - dimensionValue?: (string|null); - } + /** CheckCompatibilityRequest compatibilityFilter */ + compatibilityFilter?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + } - /** Represents a PivotSelection. */ - class PivotSelection implements IPivotSelection { + /** Represents a CheckCompatibilityRequest. */ + class CheckCompatibilityRequest implements ICheckCompatibilityRequest { - /** - * Constructs a new PivotSelection. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection); + /** + * Constructs a new CheckCompatibilityRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ICheckCompatibilityRequest); - /** PivotSelection dimensionName. */ - public dimensionName: string; + /** CheckCompatibilityRequest property. */ + public property: string; - /** PivotSelection dimensionValue. */ - public dimensionValue: string; + /** CheckCompatibilityRequest dimensions. */ + public dimensions: google.analytics.data.v1beta.IDimension[]; - /** - * Creates a new PivotSelection instance using the specified properties. - * @param [properties] Properties to set - * @returns PivotSelection instance - */ - public static create(properties?: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; + /** CheckCompatibilityRequest metrics. */ + public metrics: google.analytics.data.v1beta.IMetric[]; - /** - * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @param message PivotSelection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; + /** CheckCompatibilityRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** - * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @param message PivotSelection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; + /** CheckCompatibilityRequest metricFilter. */ + public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** - * Decodes a PivotSelection message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; + /** CheckCompatibilityRequest compatibilityFilter. */ + public compatibilityFilter: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility); - /** - * Decodes a PivotSelection message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; + /** + * Creates a new CheckCompatibilityRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns CheckCompatibilityRequest instance + */ + public static create(properties?: google.analytics.data.v1beta.ICheckCompatibilityRequest): google.analytics.data.v1beta.CheckCompatibilityRequest; - /** - * Verifies a PivotSelection message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified CheckCompatibilityRequest message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * @param message CheckCompatibilityRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ICheckCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PivotSelection - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; + /** + * Encodes the specified CheckCompatibilityRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * @param message CheckCompatibilityRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ICheckCompatibilityRequest, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. - * @param message PivotSelection - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a CheckCompatibilityRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CheckCompatibilityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CheckCompatibilityRequest; - /** - * Converts this PivotSelection to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } - } + /** + * Decodes a CheckCompatibilityRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CheckCompatibilityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CheckCompatibilityRequest; - /** Properties of a Pivot. */ - interface IPivot { + /** + * Verifies a CheckCompatibilityRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Pivot fieldNames */ - fieldNames?: (string[]|null); + /** + * Creates a CheckCompatibilityRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CheckCompatibilityRequest + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CheckCompatibilityRequest; - /** Pivot orderBys */ - orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); + /** + * Creates a plain object from a CheckCompatibilityRequest message. Also converts values to other types if specified. + * @param message CheckCompatibilityRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.CheckCompatibilityRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CheckCompatibilityRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Pivot offset */ - offset?: (number|Long|string|null); + /** Properties of a CheckCompatibilityResponse. */ + interface ICheckCompatibilityResponse { - /** Pivot limit */ - limit?: (number|Long|string|null); + /** CheckCompatibilityResponse dimensionCompatibilities */ + dimensionCompatibilities?: (google.analytics.data.v1beta.IDimensionCompatibility[]|null); - /** Pivot metricAggregations */ - metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); + /** CheckCompatibilityResponse metricCompatibilities */ + metricCompatibilities?: (google.analytics.data.v1beta.IMetricCompatibility[]|null); } - /** Represents a Pivot. */ - class Pivot implements IPivot { + /** Represents a CheckCompatibilityResponse. */ + class CheckCompatibilityResponse implements ICheckCompatibilityResponse { /** - * Constructs a new Pivot. + * Constructs a new CheckCompatibilityResponse. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IPivot); - - /** Pivot fieldNames. */ - public fieldNames: string[]; - - /** Pivot orderBys. */ - public orderBys: google.analytics.data.v1beta.IOrderBy[]; - - /** Pivot offset. */ - public offset: (number|Long|string); + constructor(properties?: google.analytics.data.v1beta.ICheckCompatibilityResponse); - /** Pivot limit. */ - public limit: (number|Long|string); + /** CheckCompatibilityResponse dimensionCompatibilities. */ + public dimensionCompatibilities: google.analytics.data.v1beta.IDimensionCompatibility[]; - /** Pivot metricAggregations. */ - public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; + /** CheckCompatibilityResponse metricCompatibilities. */ + public metricCompatibilities: google.analytics.data.v1beta.IMetricCompatibility[]; /** - * Creates a new Pivot instance using the specified properties. + * Creates a new CheckCompatibilityResponse instance using the specified properties. * @param [properties] Properties to set - * @returns Pivot instance + * @returns CheckCompatibilityResponse instance */ - public static create(properties?: google.analytics.data.v1beta.IPivot): google.analytics.data.v1beta.Pivot; + public static create(properties?: google.analytics.data.v1beta.ICheckCompatibilityResponse): google.analytics.data.v1beta.CheckCompatibilityResponse; /** - * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. - * @param message Pivot message or plain object to encode + * Encodes the specified CheckCompatibilityResponse message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. + * @param message CheckCompatibilityResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.ICheckCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. - * @param message Pivot message or plain object to encode + * Encodes the specified CheckCompatibilityResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. + * @param message CheckCompatibilityResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.ICheckCompatibilityResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Pivot message from the specified reader or buffer. + * Decodes a CheckCompatibilityResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Pivot + * @returns CheckCompatibilityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Pivot; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CheckCompatibilityResponse; /** - * Decodes a Pivot message from the specified reader or buffer, length delimited. + * Decodes a CheckCompatibilityResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Pivot + * @returns CheckCompatibilityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Pivot; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CheckCompatibilityResponse; /** - * Verifies a Pivot message. + * Verifies a CheckCompatibilityResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * Creates a CheckCompatibilityResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Pivot + * @returns CheckCompatibilityResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Pivot; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CheckCompatibilityResponse; /** - * Creates a plain object from a Pivot message. Also converts values to other types if specified. - * @param message Pivot + * Creates a plain object from a CheckCompatibilityResponse message. Also converts values to other types if specified. + * @param message CheckCompatibilityResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Pivot, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.CheckCompatibilityResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Pivot to JSON. + * Converts this CheckCompatibilityResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a CohortSpec. */ - interface ICohortSpec { + /** Properties of a Metadata. */ + interface IMetadata { - /** CohortSpec cohorts */ - cohorts?: (google.analytics.data.v1beta.ICohort[]|null); + /** Metadata name */ + name?: (string|null); - /** CohortSpec cohortsRange */ - cohortsRange?: (google.analytics.data.v1beta.ICohortsRange|null); + /** Metadata dimensions */ + dimensions?: (google.analytics.data.v1beta.IDimensionMetadata[]|null); - /** CohortSpec cohortReportSettings */ - cohortReportSettings?: (google.analytics.data.v1beta.ICohortReportSettings|null); + /** Metadata metrics */ + metrics?: (google.analytics.data.v1beta.IMetricMetadata[]|null); } - /** Represents a CohortSpec. */ - class CohortSpec implements ICohortSpec { + /** Represents a Metadata. */ + class Metadata implements IMetadata { /** - * Constructs a new CohortSpec. + * Constructs a new Metadata. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.ICohortSpec); + constructor(properties?: google.analytics.data.v1beta.IMetadata); - /** CohortSpec cohorts. */ - public cohorts: google.analytics.data.v1beta.ICohort[]; + /** Metadata name. */ + public name: string; - /** CohortSpec cohortsRange. */ - public cohortsRange?: (google.analytics.data.v1beta.ICohortsRange|null); + /** Metadata dimensions. */ + public dimensions: google.analytics.data.v1beta.IDimensionMetadata[]; - /** CohortSpec cohortReportSettings. */ - public cohortReportSettings?: (google.analytics.data.v1beta.ICohortReportSettings|null); + /** Metadata metrics. */ + public metrics: google.analytics.data.v1beta.IMetricMetadata[]; /** - * Creates a new CohortSpec instance using the specified properties. + * Creates a new Metadata instance using the specified properties. * @param [properties] Properties to set - * @returns CohortSpec instance + * @returns Metadata instance */ - public static create(properties?: google.analytics.data.v1beta.ICohortSpec): google.analytics.data.v1beta.CohortSpec; + public static create(properties?: google.analytics.data.v1beta.IMetadata): google.analytics.data.v1beta.Metadata; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. + * @param message Metadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. - * @param message CohortSpec message or plain object to encode + * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. + * @param message Metadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes a Metadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortSpec + * @returns Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortSpec; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Metadata; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes a Metadata message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortSpec + * @returns Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortSpec; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Metadata; /** - * Verifies a CohortSpec message. + * Verifies a Metadata message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates a Metadata message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortSpec + * @returns Metadata */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortSpec; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Metadata; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. - * @param message CohortSpec + * Creates a plain object from a Metadata message. Also converts values to other types if specified. + * @param message Metadata * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.CohortSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortSpec to JSON. + * Converts this Metadata to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Cohort. */ - interface ICohort { + /** Properties of a RunReportRequest. */ + interface IRunReportRequest { - /** Cohort name */ - name?: (string|null); + /** RunReportRequest property */ + property?: (string|null); - /** Cohort dimension */ - dimension?: (string|null); + /** RunReportRequest dimensions */ + dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - /** Cohort dateRange */ - dateRange?: (google.analytics.data.v1beta.IDateRange|null); + /** RunReportRequest metrics */ + metrics?: (google.analytics.data.v1beta.IMetric[]|null); + + /** RunReportRequest dateRanges */ + dateRanges?: (google.analytics.data.v1beta.IDateRange[]|null); + + /** RunReportRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunReportRequest metricFilter */ + metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunReportRequest offset */ + offset?: (number|Long|string|null); + + /** RunReportRequest limit */ + limit?: (number|Long|string|null); + + /** RunReportRequest metricAggregations */ + metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); + + /** RunReportRequest orderBys */ + orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); + + /** RunReportRequest currencyCode */ + currencyCode?: (string|null); + + /** RunReportRequest cohortSpec */ + cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + + /** RunReportRequest keepEmptyRows */ + keepEmptyRows?: (boolean|null); + + /** RunReportRequest returnPropertyQuota */ + returnPropertyQuota?: (boolean|null); } - /** Represents a Cohort. */ - class Cohort implements ICohort { + /** Represents a RunReportRequest. */ + class RunReportRequest implements IRunReportRequest { + + /** + * Constructs a new RunReportRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IRunReportRequest); + + /** RunReportRequest property. */ + public property: string; + + /** RunReportRequest dimensions. */ + public dimensions: google.analytics.data.v1beta.IDimension[]; + + /** RunReportRequest metrics. */ + public metrics: google.analytics.data.v1beta.IMetric[]; + + /** RunReportRequest dateRanges. */ + public dateRanges: google.analytics.data.v1beta.IDateRange[]; + + /** RunReportRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunReportRequest metricFilter. */ + public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunReportRequest offset. */ + public offset: (number|Long|string); + + /** RunReportRequest limit. */ + public limit: (number|Long|string); + + /** RunReportRequest metricAggregations. */ + public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; - /** - * Constructs a new Cohort. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.ICohort); + /** RunReportRequest orderBys. */ + public orderBys: google.analytics.data.v1beta.IOrderBy[]; - /** Cohort name. */ - public name: string; + /** RunReportRequest currencyCode. */ + public currencyCode: string; - /** Cohort dimension. */ - public dimension: string; + /** RunReportRequest cohortSpec. */ + public cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); - /** Cohort dateRange. */ - public dateRange?: (google.analytics.data.v1beta.IDateRange|null); + /** RunReportRequest keepEmptyRows. */ + public keepEmptyRows: boolean; + + /** RunReportRequest returnPropertyQuota. */ + public returnPropertyQuota: boolean; /** - * Creates a new Cohort instance using the specified properties. + * Creates a new RunReportRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Cohort instance + * @returns RunReportRequest instance */ - public static create(properties?: google.analytics.data.v1beta.ICohort): google.analytics.data.v1beta.Cohort; + public static create(properties?: google.analytics.data.v1beta.IRunReportRequest): google.analytics.data.v1beta.RunReportRequest; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. + * @param message RunReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. - * @param message Cohort message or plain object to encode + * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. + * @param message RunReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a RunReportRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cohort + * @returns RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Cohort; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunReportRequest; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cohort + * @returns RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Cohort; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunReportRequest; /** - * Verifies a Cohort message. + * Verifies a RunReportRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cohort + * @returns RunReportRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Cohort; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunReportRequest; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. - * @param message Cohort + * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. + * @param message RunReportRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Cohort, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.RunReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cohort to JSON. + * Converts this RunReportRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a CohortsRange. */ - interface ICohortsRange { - - /** CohortsRange granularity */ - granularity?: (google.analytics.data.v1beta.CohortsRange.Granularity|keyof typeof google.analytics.data.v1beta.CohortsRange.Granularity|null); - - /** CohortsRange startOffset */ - startOffset?: (number|null); + /** Properties of a RunReportResponse. */ + interface IRunReportResponse { - /** CohortsRange endOffset */ - endOffset?: (number|null); - } + /** RunReportResponse dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); - /** Represents a CohortsRange. */ - class CohortsRange implements ICohortsRange { + /** RunReportResponse metricHeaders */ + metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); - /** - * Constructs a new CohortsRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.ICohortsRange); + /** RunReportResponse rows */ + rows?: (google.analytics.data.v1beta.IRow[]|null); - /** CohortsRange granularity. */ - public granularity: (google.analytics.data.v1beta.CohortsRange.Granularity|keyof typeof google.analytics.data.v1beta.CohortsRange.Granularity); + /** RunReportResponse totals */ + totals?: (google.analytics.data.v1beta.IRow[]|null); - /** CohortsRange startOffset. */ - public startOffset: number; + /** RunReportResponse maximums */ + maximums?: (google.analytics.data.v1beta.IRow[]|null); - /** CohortsRange endOffset. */ - public endOffset: number; + /** RunReportResponse minimums */ + minimums?: (google.analytics.data.v1beta.IRow[]|null); - /** - * Creates a new CohortsRange instance using the specified properties. - * @param [properties] Properties to set - * @returns CohortsRange instance - */ - public static create(properties?: google.analytics.data.v1beta.ICohortsRange): google.analytics.data.v1beta.CohortsRange; + /** RunReportResponse rowCount */ + rowCount?: (number|null); - /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunReportResponse metadata */ + metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); - /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. - * @param message CohortsRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunReportResponse propertyQuota */ + propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); - /** - * Decodes a CohortsRange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CohortsRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortsRange; + /** RunReportResponse kind */ + kind?: (string|null); + } - /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CohortsRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortsRange; + /** Represents a RunReportResponse. */ + class RunReportResponse implements IRunReportResponse { /** - * Verifies a CohortsRange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not + * Constructs a new RunReportResponse. + * @param [properties] Properties to set */ - public static verify(message: { [k: string]: any }): (string|null); + constructor(properties?: google.analytics.data.v1beta.IRunReportResponse); - /** - * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CohortsRange - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortsRange; + /** RunReportResponse dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; - /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. - * @param message CohortsRange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.CohortsRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** RunReportResponse metricHeaders. */ + public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; - /** - * Converts this CohortsRange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** RunReportResponse rows. */ + public rows: google.analytics.data.v1beta.IRow[]; - namespace CohortsRange { + /** RunReportResponse totals. */ + public totals: google.analytics.data.v1beta.IRow[]; - /** Granularity enum. */ - enum Granularity { - GRANULARITY_UNSPECIFIED = 0, - DAILY = 1, - WEEKLY = 2, - MONTHLY = 3 - } - } + /** RunReportResponse maximums. */ + public maximums: google.analytics.data.v1beta.IRow[]; - /** Properties of a CohortReportSettings. */ - interface ICohortReportSettings { + /** RunReportResponse minimums. */ + public minimums: google.analytics.data.v1beta.IRow[]; - /** CohortReportSettings accumulate */ - accumulate?: (boolean|null); - } + /** RunReportResponse rowCount. */ + public rowCount: number; - /** Represents a CohortReportSettings. */ - class CohortReportSettings implements ICohortReportSettings { + /** RunReportResponse metadata. */ + public metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); - /** - * Constructs a new CohortReportSettings. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.ICohortReportSettings); + /** RunReportResponse propertyQuota. */ + public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); - /** CohortReportSettings accumulate. */ - public accumulate: boolean; + /** RunReportResponse kind. */ + public kind: string; /** - * Creates a new CohortReportSettings instance using the specified properties. + * Creates a new RunReportResponse instance using the specified properties. * @param [properties] Properties to set - * @returns CohortReportSettings instance + * @returns RunReportResponse instance */ - public static create(properties?: google.analytics.data.v1beta.ICohortReportSettings): google.analytics.data.v1beta.CohortReportSettings; + public static create(properties?: google.analytics.data.v1beta.IRunReportResponse): google.analytics.data.v1beta.RunReportResponse; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. + * @param message RunReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. - * @param message CohortReportSettings message or plain object to encode + * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. + * @param message RunReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * Decodes a RunReportResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CohortReportSettings + * @returns RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortReportSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunReportResponse; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CohortReportSettings + * @returns RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortReportSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunReportResponse; /** - * Verifies a CohortReportSettings message. + * Verifies a RunReportResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CohortReportSettings + * @returns RunReportResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortReportSettings; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunReportResponse; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. - * @param message CohortReportSettings + * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. + * @param message RunReportResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.CohortReportSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.RunReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CohortReportSettings to JSON. + * Converts this RunReportResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a ResponseMetaData. */ - interface IResponseMetaData { + /** Properties of a RunPivotReportRequest. */ + interface IRunPivotReportRequest { - /** ResponseMetaData dataLossFromOtherRow */ - dataLossFromOtherRow?: (boolean|null); + /** RunPivotReportRequest property */ + property?: (string|null); - /** ResponseMetaData schemaRestrictionResponse */ - schemaRestrictionResponse?: (google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null); + /** RunPivotReportRequest dimensions */ + dimensions?: (google.analytics.data.v1beta.IDimension[]|null); - /** ResponseMetaData currencyCode */ + /** RunPivotReportRequest metrics */ + metrics?: (google.analytics.data.v1beta.IMetric[]|null); + + /** RunPivotReportRequest dateRanges */ + dateRanges?: (google.analytics.data.v1beta.IDateRange[]|null); + + /** RunPivotReportRequest pivots */ + pivots?: (google.analytics.data.v1beta.IPivot[]|null); + + /** RunPivotReportRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunPivotReportRequest metricFilter */ + metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunPivotReportRequest currencyCode */ currencyCode?: (string|null); - /** ResponseMetaData timeZone */ - timeZone?: (string|null); + /** RunPivotReportRequest cohortSpec */ + cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); - /** ResponseMetaData emptyReason */ - emptyReason?: (string|null); + /** RunPivotReportRequest keepEmptyRows */ + keepEmptyRows?: (boolean|null); + + /** RunPivotReportRequest returnPropertyQuota */ + returnPropertyQuota?: (boolean|null); } - /** Represents a ResponseMetaData. */ - class ResponseMetaData implements IResponseMetaData { + /** Represents a RunPivotReportRequest. */ + class RunPivotReportRequest implements IRunPivotReportRequest { /** - * Constructs a new ResponseMetaData. + * Constructs a new RunPivotReportRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IResponseMetaData); + constructor(properties?: google.analytics.data.v1beta.IRunPivotReportRequest); - /** ResponseMetaData dataLossFromOtherRow. */ - public dataLossFromOtherRow: boolean; + /** RunPivotReportRequest property. */ + public property: string; - /** ResponseMetaData schemaRestrictionResponse. */ - public schemaRestrictionResponse?: (google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null); + /** RunPivotReportRequest dimensions. */ + public dimensions: google.analytics.data.v1beta.IDimension[]; - /** ResponseMetaData currencyCode. */ - public currencyCode?: (string|null); + /** RunPivotReportRequest metrics. */ + public metrics: google.analytics.data.v1beta.IMetric[]; - /** ResponseMetaData timeZone. */ - public timeZone?: (string|null); + /** RunPivotReportRequest dateRanges. */ + public dateRanges: google.analytics.data.v1beta.IDateRange[]; - /** ResponseMetaData emptyReason. */ - public emptyReason?: (string|null); + /** RunPivotReportRequest pivots. */ + public pivots: google.analytics.data.v1beta.IPivot[]; - /** ResponseMetaData _schemaRestrictionResponse. */ - public _schemaRestrictionResponse?: "schemaRestrictionResponse"; + /** RunPivotReportRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** ResponseMetaData _currencyCode. */ - public _currencyCode?: "currencyCode"; + /** RunPivotReportRequest metricFilter. */ + public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); - /** ResponseMetaData _timeZone. */ - public _timeZone?: "timeZone"; + /** RunPivotReportRequest currencyCode. */ + public currencyCode: string; - /** ResponseMetaData _emptyReason. */ - public _emptyReason?: "emptyReason"; + /** RunPivotReportRequest cohortSpec. */ + public cohortSpec?: (google.analytics.data.v1beta.ICohortSpec|null); + + /** RunPivotReportRequest keepEmptyRows. */ + public keepEmptyRows: boolean; + + /** RunPivotReportRequest returnPropertyQuota. */ + public returnPropertyQuota: boolean; /** - * Creates a new ResponseMetaData instance using the specified properties. + * Creates a new RunPivotReportRequest instance using the specified properties. * @param [properties] Properties to set - * @returns ResponseMetaData instance + * @returns RunPivotReportRequest instance */ - public static create(properties?: google.analytics.data.v1beta.IResponseMetaData): google.analytics.data.v1beta.ResponseMetaData; + public static create(properties?: google.analytics.data.v1beta.IRunPivotReportRequest): google.analytics.data.v1beta.RunPivotReportRequest; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. + * @param message RunPivotReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. - * @param message ResponseMetaData message or plain object to encode + * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. + * @param message RunPivotReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IRunPivotReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Decodes a RunPivotReportRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ResponseMetaData + * @returns RunPivotReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunPivotReportRequest; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ResponseMetaData + * @returns RunPivotReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunPivotReportRequest; /** - * Verifies a ResponseMetaData message. + * Verifies a RunPivotReportRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ResponseMetaData + * @returns RunPivotReportRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunPivotReportRequest; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. - * @param message ResponseMetaData + * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. + * @param message RunPivotReportRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.ResponseMetaData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.RunPivotReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ResponseMetaData to JSON. + * Converts this RunPivotReportRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace ResponseMetaData { - - /** Properties of a SchemaRestrictionResponse. */ - interface ISchemaRestrictionResponse { - - /** SchemaRestrictionResponse activeMetricRestrictions */ - activeMetricRestrictions?: (google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]|null); - } - - /** Represents a SchemaRestrictionResponse. */ - class SchemaRestrictionResponse implements ISchemaRestrictionResponse { - - /** - * Constructs a new SchemaRestrictionResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse); - - /** SchemaRestrictionResponse activeMetricRestrictions. */ - public activeMetricRestrictions: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]; + /** Properties of a RunPivotReportResponse. */ + interface IRunPivotReportResponse { - /** - * Creates a new SchemaRestrictionResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns SchemaRestrictionResponse instance - */ - public static create(properties?: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; + /** RunPivotReportResponse pivotHeaders */ + pivotHeaders?: (google.analytics.data.v1beta.IPivotHeader[]|null); - /** - * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @param message SchemaRestrictionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunPivotReportResponse dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); - /** - * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @param message SchemaRestrictionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; + /** RunPivotReportResponse metricHeaders */ + metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; + /** RunPivotReportResponse rows */ + rows?: (google.analytics.data.v1beta.IRow[]|null); - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; + /** RunPivotReportResponse aggregates */ + aggregates?: (google.analytics.data.v1beta.IRow[]|null); - /** - * Verifies a SchemaRestrictionResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** RunPivotReportResponse metadata */ + metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); - /** - * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns SchemaRestrictionResponse - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; + /** RunPivotReportResponse propertyQuota */ + propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); - /** - * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. - * @param message SchemaRestrictionResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** RunPivotReportResponse kind */ + kind?: (string|null); + } - /** - * Converts this SchemaRestrictionResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Represents a RunPivotReportResponse. */ + class RunPivotReportResponse implements IRunPivotReportResponse { - namespace SchemaRestrictionResponse { + /** + * Constructs a new RunPivotReportResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IRunPivotReportResponse); - /** Properties of an ActiveMetricRestriction. */ - interface IActiveMetricRestriction { + /** RunPivotReportResponse pivotHeaders. */ + public pivotHeaders: google.analytics.data.v1beta.IPivotHeader[]; - /** ActiveMetricRestriction metricName */ - metricName?: (string|null); + /** RunPivotReportResponse dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; - /** ActiveMetricRestriction restrictedMetricTypes */ - restrictedMetricTypes?: (google.analytics.data.v1beta.RestrictedMetricType[]|null); - } + /** RunPivotReportResponse metricHeaders. */ + public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; - /** Represents an ActiveMetricRestriction. */ - class ActiveMetricRestriction implements IActiveMetricRestriction { + /** RunPivotReportResponse rows. */ + public rows: google.analytics.data.v1beta.IRow[]; - /** - * Constructs a new ActiveMetricRestriction. - * @param [properties] Properties to set - */ - constructor(properties?: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction); + /** RunPivotReportResponse aggregates. */ + public aggregates: google.analytics.data.v1beta.IRow[]; - /** ActiveMetricRestriction metricName. */ - public metricName?: (string|null); + /** RunPivotReportResponse metadata. */ + public metadata?: (google.analytics.data.v1beta.IResponseMetaData|null); - /** ActiveMetricRestriction restrictedMetricTypes. */ - public restrictedMetricTypes: google.analytics.data.v1beta.RestrictedMetricType[]; + /** RunPivotReportResponse propertyQuota. */ + public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); - /** ActiveMetricRestriction _metricName. */ - public _metricName?: "metricName"; + /** RunPivotReportResponse kind. */ + public kind: string; - /** - * Creates a new ActiveMetricRestriction instance using the specified properties. - * @param [properties] Properties to set - * @returns ActiveMetricRestriction instance - */ - public static create(properties?: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Creates a new RunPivotReportResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns RunPivotReportResponse instance + */ + public static create(properties?: google.analytics.data.v1beta.IRunPivotReportResponse): google.analytics.data.v1beta.RunPivotReportResponse; - /** - * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @param message ActiveMetricRestriction message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. + * @param message RunPivotReportResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @param message ActiveMetricRestriction message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. + * @param message RunPivotReportResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IRunPivotReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Decodes a RunPivotReportResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RunPivotReportResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunPivotReportResponse; - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RunPivotReportResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunPivotReportResponse; - /** - * Verifies an ActiveMetricRestriction message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Verifies a RunPivotReportResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ActiveMetricRestriction - */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + /** + * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RunPivotReportResponse + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunPivotReportResponse; - /** - * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. - * @param message ActiveMetricRestriction - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. + * @param message RunPivotReportResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.RunPivotReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this ActiveMetricRestriction to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Converts this RunPivotReportResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionHeader. */ - interface IDimensionHeader { + /** Properties of a BatchRunReportsRequest. */ + interface IBatchRunReportsRequest { - /** DimensionHeader name */ - name?: (string|null); + /** BatchRunReportsRequest property */ + property?: (string|null); + + /** BatchRunReportsRequest requests */ + requests?: (google.analytics.data.v1beta.IRunReportRequest[]|null); } - /** Represents a DimensionHeader. */ - class DimensionHeader implements IDimensionHeader { + /** Represents a BatchRunReportsRequest. */ + class BatchRunReportsRequest implements IBatchRunReportsRequest { /** - * Constructs a new DimensionHeader. + * Constructs a new BatchRunReportsRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimensionHeader); + constructor(properties?: google.analytics.data.v1beta.IBatchRunReportsRequest); - /** DimensionHeader name. */ - public name: string; + /** BatchRunReportsRequest property. */ + public property: string; + + /** BatchRunReportsRequest requests. */ + public requests: google.analytics.data.v1beta.IRunReportRequest[]; /** - * Creates a new DimensionHeader instance using the specified properties. + * Creates a new BatchRunReportsRequest instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionHeader instance + * @returns BatchRunReportsRequest instance */ - public static create(properties?: google.analytics.data.v1beta.IDimensionHeader): google.analytics.data.v1beta.DimensionHeader; + public static create(properties?: google.analytics.data.v1beta.IBatchRunReportsRequest): google.analytics.data.v1beta.BatchRunReportsRequest; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. + * @param message BatchRunReportsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. - * @param message DimensionHeader message or plain object to encode + * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. + * @param message BatchRunReportsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a BatchRunReportsRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionHeader + * @returns BatchRunReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunReportsRequest; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionHeader + * @returns BatchRunReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunReportsRequest; /** - * Verifies a DimensionHeader message. + * Verifies a BatchRunReportsRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionHeader + * @returns BatchRunReportsRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunReportsRequest; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. - * @param message DimensionHeader + * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. + * @param message BatchRunReportsRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.BatchRunReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionHeader to JSON. + * Converts this BatchRunReportsRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricHeader. */ - interface IMetricHeader { + /** Properties of a BatchRunReportsResponse. */ + interface IBatchRunReportsResponse { - /** MetricHeader name */ - name?: (string|null); + /** BatchRunReportsResponse reports */ + reports?: (google.analytics.data.v1beta.IRunReportResponse[]|null); - /** MetricHeader type */ - type?: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType|null); + /** BatchRunReportsResponse kind */ + kind?: (string|null); } - /** Represents a MetricHeader. */ - class MetricHeader implements IMetricHeader { + /** Represents a BatchRunReportsResponse. */ + class BatchRunReportsResponse implements IBatchRunReportsResponse { /** - * Constructs a new MetricHeader. + * Constructs a new BatchRunReportsResponse. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetricHeader); + constructor(properties?: google.analytics.data.v1beta.IBatchRunReportsResponse); - /** MetricHeader name. */ - public name: string; + /** BatchRunReportsResponse reports. */ + public reports: google.analytics.data.v1beta.IRunReportResponse[]; - /** MetricHeader type. */ - public type: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType); + /** BatchRunReportsResponse kind. */ + public kind: string; /** - * Creates a new MetricHeader instance using the specified properties. + * Creates a new BatchRunReportsResponse instance using the specified properties. * @param [properties] Properties to set - * @returns MetricHeader instance + * @returns BatchRunReportsResponse instance */ - public static create(properties?: google.analytics.data.v1beta.IMetricHeader): google.analytics.data.v1beta.MetricHeader; + public static create(properties?: google.analytics.data.v1beta.IBatchRunReportsResponse): google.analytics.data.v1beta.BatchRunReportsResponse; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. + * @param message BatchRunReportsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. - * @param message MetricHeader message or plain object to encode + * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. + * @param message BatchRunReportsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a BatchRunReportsResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricHeader + * @returns BatchRunReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunReportsResponse; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricHeader + * @returns BatchRunReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunReportsResponse; /** - * Verifies a MetricHeader message. + * Verifies a BatchRunReportsResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricHeader + * @returns BatchRunReportsResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunReportsResponse; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. - * @param message MetricHeader + * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. + * @param message BatchRunReportsResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.BatchRunReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricHeader to JSON. + * Converts this BatchRunReportsResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PivotHeader. */ - interface IPivotHeader { + /** Properties of a BatchRunPivotReportsRequest. */ + interface IBatchRunPivotReportsRequest { - /** PivotHeader pivotDimensionHeaders */ - pivotDimensionHeaders?: (google.analytics.data.v1beta.IPivotDimensionHeader[]|null); + /** BatchRunPivotReportsRequest property */ + property?: (string|null); - /** PivotHeader rowCount */ - rowCount?: (number|null); + /** BatchRunPivotReportsRequest requests */ + requests?: (google.analytics.data.v1beta.IRunPivotReportRequest[]|null); } - /** Represents a PivotHeader. */ - class PivotHeader implements IPivotHeader { + /** Represents a BatchRunPivotReportsRequest. */ + class BatchRunPivotReportsRequest implements IBatchRunPivotReportsRequest { /** - * Constructs a new PivotHeader. + * Constructs a new BatchRunPivotReportsRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IPivotHeader); + constructor(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsRequest); - /** PivotHeader pivotDimensionHeaders. */ - public pivotDimensionHeaders: google.analytics.data.v1beta.IPivotDimensionHeader[]; + /** BatchRunPivotReportsRequest property. */ + public property: string; - /** PivotHeader rowCount. */ - public rowCount: number; + /** BatchRunPivotReportsRequest requests. */ + public requests: google.analytics.data.v1beta.IRunPivotReportRequest[]; /** - * Creates a new PivotHeader instance using the specified properties. + * Creates a new BatchRunPivotReportsRequest instance using the specified properties. * @param [properties] Properties to set - * @returns PivotHeader instance + * @returns BatchRunPivotReportsRequest instance */ - public static create(properties?: google.analytics.data.v1beta.IPivotHeader): google.analytics.data.v1beta.PivotHeader; + public static create(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsRequest): google.analytics.data.v1beta.BatchRunPivotReportsRequest; /** - * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. - * @param message PivotHeader message or plain object to encode + * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. + * @param message BatchRunPivotReportsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. - * @param message PivotHeader message or plain object to encode + * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. + * @param message BatchRunPivotReportsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunPivotReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PivotHeader message from the specified reader or buffer. + * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PivotHeader + * @returns BatchRunPivotReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PivotHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunPivotReportsRequest; /** - * Decodes a PivotHeader message from the specified reader or buffer, length delimited. + * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PivotHeader + * @returns BatchRunPivotReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PivotHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunPivotReportsRequest; /** - * Verifies a PivotHeader message. + * Verifies a BatchRunPivotReportsRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PivotHeader + * @returns BatchRunPivotReportsRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PivotHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunPivotReportsRequest; /** - * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. - * @param message PivotHeader + * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. + * @param message BatchRunPivotReportsRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.PivotHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.BatchRunPivotReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PivotHeader to JSON. + * Converts this BatchRunPivotReportsRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PivotDimensionHeader. */ - interface IPivotDimensionHeader { + /** Properties of a BatchRunPivotReportsResponse. */ + interface IBatchRunPivotReportsResponse { - /** PivotDimensionHeader dimensionValues */ - dimensionValues?: (google.analytics.data.v1beta.IDimensionValue[]|null); + /** BatchRunPivotReportsResponse pivotReports */ + pivotReports?: (google.analytics.data.v1beta.IRunPivotReportResponse[]|null); + + /** BatchRunPivotReportsResponse kind */ + kind?: (string|null); } - /** Represents a PivotDimensionHeader. */ - class PivotDimensionHeader implements IPivotDimensionHeader { + /** Represents a BatchRunPivotReportsResponse. */ + class BatchRunPivotReportsResponse implements IBatchRunPivotReportsResponse { /** - * Constructs a new PivotDimensionHeader. + * Constructs a new BatchRunPivotReportsResponse. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IPivotDimensionHeader); + constructor(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsResponse); - /** PivotDimensionHeader dimensionValues. */ - public dimensionValues: google.analytics.data.v1beta.IDimensionValue[]; + /** BatchRunPivotReportsResponse pivotReports. */ + public pivotReports: google.analytics.data.v1beta.IRunPivotReportResponse[]; + + /** BatchRunPivotReportsResponse kind. */ + public kind: string; /** - * Creates a new PivotDimensionHeader instance using the specified properties. + * Creates a new BatchRunPivotReportsResponse instance using the specified properties. * @param [properties] Properties to set - * @returns PivotDimensionHeader instance + * @returns BatchRunPivotReportsResponse instance */ - public static create(properties?: google.analytics.data.v1beta.IPivotDimensionHeader): google.analytics.data.v1beta.PivotDimensionHeader; + public static create(properties?: google.analytics.data.v1beta.IBatchRunPivotReportsResponse): google.analytics.data.v1beta.BatchRunPivotReportsResponse; /** - * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. - * @param message PivotDimensionHeader message or plain object to encode + * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. + * @param message BatchRunPivotReportsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. - * @param message PivotDimensionHeader message or plain object to encode + * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. + * @param message BatchRunPivotReportsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IBatchRunPivotReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PivotDimensionHeader + * @returns BatchRunPivotReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PivotDimensionHeader; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.BatchRunPivotReportsResponse; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PivotDimensionHeader + * @returns BatchRunPivotReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PivotDimensionHeader; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.BatchRunPivotReportsResponse; /** - * Verifies a PivotDimensionHeader message. + * Verifies a BatchRunPivotReportsResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PivotDimensionHeader + * @returns BatchRunPivotReportsResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PivotDimensionHeader; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.BatchRunPivotReportsResponse; /** - * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. - * @param message PivotDimensionHeader + * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. + * @param message BatchRunPivotReportsResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.PivotDimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.BatchRunPivotReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PivotDimensionHeader to JSON. + * Converts this BatchRunPivotReportsResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a Row. */ - interface IRow { - - /** Row dimensionValues */ - dimensionValues?: (google.analytics.data.v1beta.IDimensionValue[]|null); + /** Properties of a GetMetadataRequest. */ + interface IGetMetadataRequest { - /** Row metricValues */ - metricValues?: (google.analytics.data.v1beta.IMetricValue[]|null); + /** GetMetadataRequest name */ + name?: (string|null); } - /** Represents a Row. */ - class Row implements IRow { + /** Represents a GetMetadataRequest. */ + class GetMetadataRequest implements IGetMetadataRequest { /** - * Constructs a new Row. + * Constructs a new GetMetadataRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IRow); - - /** Row dimensionValues. */ - public dimensionValues: google.analytics.data.v1beta.IDimensionValue[]; + constructor(properties?: google.analytics.data.v1beta.IGetMetadataRequest); - /** Row metricValues. */ - public metricValues: google.analytics.data.v1beta.IMetricValue[]; + /** GetMetadataRequest name. */ + public name: string; /** - * Creates a new Row instance using the specified properties. + * Creates a new GetMetadataRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Row instance + * @returns GetMetadataRequest instance */ - public static create(properties?: google.analytics.data.v1beta.IRow): google.analytics.data.v1beta.Row; + public static create(properties?: google.analytics.data.v1beta.IGetMetadataRequest): google.analytics.data.v1beta.GetMetadataRequest; /** - * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. + * @param message GetMetadataRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. + * @param message GetMetadataRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IGetMetadataRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a GetMetadataRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Row + * @returns GetMetadataRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Row; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.GetMetadataRequest; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Row + * @returns GetMetadataRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Row; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.GetMetadataRequest; /** - * Verifies a Row message. + * Verifies a GetMetadataRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Row message from a plain object. Also converts values to their respective internal types. + * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Row + * @returns GetMetadataRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Row; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.GetMetadataRequest; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. - * @param message Row + * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. + * @param message GetMetadataRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.GetMetadataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Row to JSON. + * Converts this GetMetadataRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionValue. */ - interface IDimensionValue { + /** Properties of a RunRealtimeReportRequest. */ + interface IRunRealtimeReportRequest { - /** DimensionValue value */ - value?: (string|null); + /** RunRealtimeReportRequest property */ + property?: (string|null); + + /** RunRealtimeReportRequest dimensions */ + dimensions?: (google.analytics.data.v1beta.IDimension[]|null); + + /** RunRealtimeReportRequest metrics */ + metrics?: (google.analytics.data.v1beta.IMetric[]|null); + + /** RunRealtimeReportRequest dimensionFilter */ + dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunRealtimeReportRequest metricFilter */ + metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunRealtimeReportRequest limit */ + limit?: (number|Long|string|null); + + /** RunRealtimeReportRequest metricAggregations */ + metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); + + /** RunRealtimeReportRequest orderBys */ + orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); + + /** RunRealtimeReportRequest returnPropertyQuota */ + returnPropertyQuota?: (boolean|null); + + /** RunRealtimeReportRequest minuteRanges */ + minuteRanges?: (google.analytics.data.v1beta.IMinuteRange[]|null); } - /** Represents a DimensionValue. */ - class DimensionValue implements IDimensionValue { + /** Represents a RunRealtimeReportRequest. */ + class RunRealtimeReportRequest implements IRunRealtimeReportRequest { /** - * Constructs a new DimensionValue. + * Constructs a new RunRealtimeReportRequest. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimensionValue); + constructor(properties?: google.analytics.data.v1beta.IRunRealtimeReportRequest); - /** DimensionValue value. */ - public value?: (string|null); + /** RunRealtimeReportRequest property. */ + public property: string; - /** DimensionValue oneValue. */ - public oneValue?: "value"; + /** RunRealtimeReportRequest dimensions. */ + public dimensions: google.analytics.data.v1beta.IDimension[]; + + /** RunRealtimeReportRequest metrics. */ + public metrics: google.analytics.data.v1beta.IMetric[]; + + /** RunRealtimeReportRequest dimensionFilter. */ + public dimensionFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunRealtimeReportRequest metricFilter. */ + public metricFilter?: (google.analytics.data.v1beta.IFilterExpression|null); + + /** RunRealtimeReportRequest limit. */ + public limit: (number|Long|string); + + /** RunRealtimeReportRequest metricAggregations. */ + public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; + + /** RunRealtimeReportRequest orderBys. */ + public orderBys: google.analytics.data.v1beta.IOrderBy[]; + + /** RunRealtimeReportRequest returnPropertyQuota. */ + public returnPropertyQuota: boolean; + + /** RunRealtimeReportRequest minuteRanges. */ + public minuteRanges: google.analytics.data.v1beta.IMinuteRange[]; /** - * Creates a new DimensionValue instance using the specified properties. + * Creates a new RunRealtimeReportRequest instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionValue instance + * @returns RunRealtimeReportRequest instance */ - public static create(properties?: google.analytics.data.v1beta.IDimensionValue): google.analytics.data.v1beta.DimensionValue; + public static create(properties?: google.analytics.data.v1beta.IRunRealtimeReportRequest): google.analytics.data.v1beta.RunRealtimeReportRequest; /** - * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. - * @param message DimensionValue message or plain object to encode + * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. + * @param message RunRealtimeReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. - * @param message DimensionValue message or plain object to encode + * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. + * @param message RunRealtimeReportRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IRunRealtimeReportRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionValue message from the specified reader or buffer. + * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionValue + * @returns RunRealtimeReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunRealtimeReportRequest; /** - * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionValue + * @returns RunRealtimeReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunRealtimeReportRequest; /** - * Verifies a DimensionValue message. + * Verifies a RunRealtimeReportRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionValue + * @returns RunRealtimeReportRequest */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunRealtimeReportRequest; /** - * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. - * @param message DimensionValue + * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. + * @param message RunRealtimeReportRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DimensionValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.RunRealtimeReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionValue to JSON. + * Converts this RunRealtimeReportRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricValue. */ - interface IMetricValue { + /** Properties of a RunRealtimeReportResponse. */ + interface IRunRealtimeReportResponse { - /** MetricValue value */ - value?: (string|null); + /** RunRealtimeReportResponse dimensionHeaders */ + dimensionHeaders?: (google.analytics.data.v1beta.IDimensionHeader[]|null); + + /** RunRealtimeReportResponse metricHeaders */ + metricHeaders?: (google.analytics.data.v1beta.IMetricHeader[]|null); + + /** RunRealtimeReportResponse rows */ + rows?: (google.analytics.data.v1beta.IRow[]|null); + + /** RunRealtimeReportResponse totals */ + totals?: (google.analytics.data.v1beta.IRow[]|null); + + /** RunRealtimeReportResponse maximums */ + maximums?: (google.analytics.data.v1beta.IRow[]|null); + + /** RunRealtimeReportResponse minimums */ + minimums?: (google.analytics.data.v1beta.IRow[]|null); + + /** RunRealtimeReportResponse rowCount */ + rowCount?: (number|null); + + /** RunRealtimeReportResponse propertyQuota */ + propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + + /** RunRealtimeReportResponse kind */ + kind?: (string|null); } - /** Represents a MetricValue. */ - class MetricValue implements IMetricValue { + /** Represents a RunRealtimeReportResponse. */ + class RunRealtimeReportResponse implements IRunRealtimeReportResponse { /** - * Constructs a new MetricValue. + * Constructs a new RunRealtimeReportResponse. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetricValue); + constructor(properties?: google.analytics.data.v1beta.IRunRealtimeReportResponse); - /** MetricValue value. */ - public value?: (string|null); + /** RunRealtimeReportResponse dimensionHeaders. */ + public dimensionHeaders: google.analytics.data.v1beta.IDimensionHeader[]; - /** MetricValue oneValue. */ - public oneValue?: "value"; + /** RunRealtimeReportResponse metricHeaders. */ + public metricHeaders: google.analytics.data.v1beta.IMetricHeader[]; + + /** RunRealtimeReportResponse rows. */ + public rows: google.analytics.data.v1beta.IRow[]; + + /** RunRealtimeReportResponse totals. */ + public totals: google.analytics.data.v1beta.IRow[]; + + /** RunRealtimeReportResponse maximums. */ + public maximums: google.analytics.data.v1beta.IRow[]; + + /** RunRealtimeReportResponse minimums. */ + public minimums: google.analytics.data.v1beta.IRow[]; + + /** RunRealtimeReportResponse rowCount. */ + public rowCount: number; + + /** RunRealtimeReportResponse propertyQuota. */ + public propertyQuota?: (google.analytics.data.v1beta.IPropertyQuota|null); + + /** RunRealtimeReportResponse kind. */ + public kind: string; /** - * Creates a new MetricValue instance using the specified properties. + * Creates a new RunRealtimeReportResponse instance using the specified properties. * @param [properties] Properties to set - * @returns MetricValue instance + * @returns RunRealtimeReportResponse instance */ - public static create(properties?: google.analytics.data.v1beta.IMetricValue): google.analytics.data.v1beta.MetricValue; + public static create(properties?: google.analytics.data.v1beta.IRunRealtimeReportResponse): google.analytics.data.v1beta.RunRealtimeReportResponse; /** - * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. - * @param message MetricValue message or plain object to encode + * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. + * @param message RunRealtimeReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. - * @param message MetricValue message or plain object to encode + * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. + * @param message RunRealtimeReportResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IRunRealtimeReportResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricValue message from the specified reader or buffer. + * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricValue + * @returns RunRealtimeReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.RunRealtimeReportResponse; /** - * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricValue + * @returns RunRealtimeReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.RunRealtimeReportResponse; /** - * Verifies a MetricValue message. + * Verifies a RunRealtimeReportResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricValue + * @returns RunRealtimeReportResponse */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.RunRealtimeReportResponse; /** - * Creates a plain object from a MetricValue message. Also converts values to other types if specified. - * @param message MetricValue + * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. + * @param message RunRealtimeReportResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.MetricValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.RunRealtimeReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricValue to JSON. + * Converts this RunRealtimeReportResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a NumericValue. */ - interface INumericValue { + /** Properties of a DateRange. */ + interface IDateRange { + + /** DateRange startDate */ + startDate?: (string|null); - /** NumericValue int64Value */ - int64Value?: (number|Long|string|null); + /** DateRange endDate */ + endDate?: (string|null); - /** NumericValue doubleValue */ - doubleValue?: (number|null); + /** DateRange name */ + name?: (string|null); } - /** Represents a NumericValue. */ - class NumericValue implements INumericValue { + /** Represents a DateRange. */ + class DateRange implements IDateRange { /** - * Constructs a new NumericValue. + * Constructs a new DateRange. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.INumericValue); + constructor(properties?: google.analytics.data.v1beta.IDateRange); - /** NumericValue int64Value. */ - public int64Value?: (number|Long|string|null); + /** DateRange startDate. */ + public startDate: string; - /** NumericValue doubleValue. */ - public doubleValue?: (number|null); + /** DateRange endDate. */ + public endDate: string; - /** NumericValue oneValue. */ - public oneValue?: ("int64Value"|"doubleValue"); + /** DateRange name. */ + public name: string; /** - * Creates a new NumericValue instance using the specified properties. + * Creates a new DateRange instance using the specified properties. * @param [properties] Properties to set - * @returns NumericValue instance + * @returns DateRange instance */ - public static create(properties?: google.analytics.data.v1beta.INumericValue): google.analytics.data.v1beta.NumericValue; + public static create(properties?: google.analytics.data.v1beta.IDateRange): google.analytics.data.v1beta.DateRange; /** - * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. - * @param message NumericValue message or plain object to encode + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * @param message DateRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a NumericValue message from the specified reader or buffer. + * Decodes a DateRange message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns NumericValue + * @returns DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.NumericValue; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DateRange; /** - * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * Decodes a DateRange message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns NumericValue + * @returns DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.NumericValue; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DateRange; /** - * Verifies a NumericValue message. + * Verifies a DateRange message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns NumericValue + * @returns DateRange */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.NumericValue; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DateRange; /** - * Creates a plain object from a NumericValue message. Also converts values to other types if specified. - * @param message NumericValue + * Creates a plain object from a DateRange message. Also converts values to other types if specified. + * @param message DateRange * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this NumericValue to JSON. + * Converts this DateRange to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a PropertyQuota. */ - interface IPropertyQuota { - - /** PropertyQuota tokensPerDay */ - tokensPerDay?: (google.analytics.data.v1beta.IQuotaStatus|null); - - /** PropertyQuota tokensPerHour */ - tokensPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** Properties of a MinuteRange. */ + interface IMinuteRange { - /** PropertyQuota concurrentRequests */ - concurrentRequests?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange startMinutesAgo */ + startMinutesAgo?: (number|null); - /** PropertyQuota serverErrorsPerProjectPerHour */ - serverErrorsPerProjectPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange endMinutesAgo */ + endMinutesAgo?: (number|null); - /** PropertyQuota potentiallyThresholdedRequestsPerHour */ - potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange name */ + name?: (string|null); } - /** Represents a PropertyQuota. */ - class PropertyQuota implements IPropertyQuota { + /** Represents a MinuteRange. */ + class MinuteRange implements IMinuteRange { /** - * Constructs a new PropertyQuota. + * Constructs a new MinuteRange. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IPropertyQuota); + constructor(properties?: google.analytics.data.v1beta.IMinuteRange); - /** PropertyQuota tokensPerDay. */ - public tokensPerDay?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange startMinutesAgo. */ + public startMinutesAgo?: (number|null); - /** PropertyQuota tokensPerHour. */ - public tokensPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange endMinutesAgo. */ + public endMinutesAgo?: (number|null); - /** PropertyQuota concurrentRequests. */ - public concurrentRequests?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange name. */ + public name: string; - /** PropertyQuota serverErrorsPerProjectPerHour. */ - public serverErrorsPerProjectPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange _startMinutesAgo. */ + public _startMinutesAgo?: "startMinutesAgo"; - /** PropertyQuota potentiallyThresholdedRequestsPerHour. */ - public potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + /** MinuteRange _endMinutesAgo. */ + public _endMinutesAgo?: "endMinutesAgo"; /** - * Creates a new PropertyQuota instance using the specified properties. + * Creates a new MinuteRange instance using the specified properties. * @param [properties] Properties to set - * @returns PropertyQuota instance + * @returns MinuteRange instance */ - public static create(properties?: google.analytics.data.v1beta.IPropertyQuota): google.analytics.data.v1beta.PropertyQuota; + public static create(properties?: google.analytics.data.v1beta.IMinuteRange): google.analytics.data.v1beta.MinuteRange; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Encodes the specified MinuteRange message. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * @param message MinuteRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IMinuteRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. - * @param message PropertyQuota message or plain object to encode + * Encodes the specified MinuteRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * @param message MinuteRange message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IMinuteRange, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a MinuteRange message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PropertyQuota + * @returns MinuteRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PropertyQuota; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MinuteRange; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a MinuteRange message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PropertyQuota + * @returns MinuteRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PropertyQuota; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MinuteRange; /** - * Verifies a PropertyQuota message. + * Verifies a MinuteRange message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a MinuteRange message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PropertyQuota + * @returns MinuteRange */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PropertyQuota; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MinuteRange; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. - * @param message PropertyQuota + * Creates a plain object from a MinuteRange message. Also converts values to other types if specified. + * @param message MinuteRange * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.MinuteRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PropertyQuota to JSON. + * Converts this MinuteRange to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a QuotaStatus. */ - interface IQuotaStatus { + /** Properties of a Dimension. */ + interface IDimension { - /** QuotaStatus consumed */ - consumed?: (number|null); + /** Dimension name */ + name?: (string|null); - /** QuotaStatus remaining */ - remaining?: (number|null); + /** Dimension dimensionExpression */ + dimensionExpression?: (google.analytics.data.v1beta.IDimensionExpression|null); } - /** Represents a QuotaStatus. */ - class QuotaStatus implements IQuotaStatus { + /** Represents a Dimension. */ + class Dimension implements IDimension { /** - * Constructs a new QuotaStatus. + * Constructs a new Dimension. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IQuotaStatus); + constructor(properties?: google.analytics.data.v1beta.IDimension); - /** QuotaStatus consumed. */ - public consumed: number; + /** Dimension name. */ + public name: string; - /** QuotaStatus remaining. */ - public remaining: number; + /** Dimension dimensionExpression. */ + public dimensionExpression?: (google.analytics.data.v1beta.IDimensionExpression|null); /** - * Creates a new QuotaStatus instance using the specified properties. + * Creates a new Dimension instance using the specified properties. * @param [properties] Properties to set - * @returns QuotaStatus instance + * @returns Dimension instance */ - public static create(properties?: google.analytics.data.v1beta.IQuotaStatus): google.analytics.data.v1beta.QuotaStatus; + public static create(properties?: google.analytics.data.v1beta.IDimension): google.analytics.data.v1beta.Dimension; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. - * @param message QuotaStatus message or plain object to encode + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * @param message Dimension message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IDimension, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a Dimension message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns QuotaStatus + * @returns Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.QuotaStatus; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Dimension; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a Dimension message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns QuotaStatus + * @returns Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.QuotaStatus; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Dimension; /** - * Verifies a QuotaStatus message. + * Verifies a Dimension message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns QuotaStatus + * @returns Dimension */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.QuotaStatus; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Dimension; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. - * @param message QuotaStatus + * Creates a plain object from a Dimension message. Also converts values to other types if specified. + * @param message Dimension * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.Dimension, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this QuotaStatus to JSON. + * Converts this Dimension to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a DimensionMetadata. */ - interface IDimensionMetadata { - - /** DimensionMetadata apiName */ - apiName?: (string|null); - - /** DimensionMetadata uiName */ - uiName?: (string|null); - - /** DimensionMetadata description */ - description?: (string|null); + /** Properties of a DimensionExpression. */ + interface IDimensionExpression { - /** DimensionMetadata deprecatedApiNames */ - deprecatedApiNames?: (string[]|null); + /** DimensionExpression lowerCase */ + lowerCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - /** DimensionMetadata customDefinition */ - customDefinition?: (boolean|null); + /** DimensionExpression upperCase */ + upperCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - /** DimensionMetadata category */ - category?: (string|null); + /** DimensionExpression concatenate */ + concatenate?: (google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null); } - /** Represents a DimensionMetadata. */ - class DimensionMetadata implements IDimensionMetadata { + /** Represents a DimensionExpression. */ + class DimensionExpression implements IDimensionExpression { /** - * Constructs a new DimensionMetadata. + * Constructs a new DimensionExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimensionMetadata); - - /** DimensionMetadata apiName. */ - public apiName: string; - - /** DimensionMetadata uiName. */ - public uiName: string; + constructor(properties?: google.analytics.data.v1beta.IDimensionExpression); - /** DimensionMetadata description. */ - public description: string; + /** DimensionExpression lowerCase. */ + public lowerCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - /** DimensionMetadata deprecatedApiNames. */ - public deprecatedApiNames: string[]; + /** DimensionExpression upperCase. */ + public upperCase?: (google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null); - /** DimensionMetadata customDefinition. */ - public customDefinition: boolean; + /** DimensionExpression concatenate. */ + public concatenate?: (google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null); - /** DimensionMetadata category. */ - public category: string; + /** DimensionExpression oneExpression. */ + public oneExpression?: ("lowerCase"|"upperCase"|"concatenate"); /** - * Creates a new DimensionMetadata instance using the specified properties. + * Creates a new DimensionExpression instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionMetadata instance + * @returns DimensionExpression instance */ - public static create(properties?: google.analytics.data.v1beta.IDimensionMetadata): google.analytics.data.v1beta.DimensionMetadata; + public static create(properties?: google.analytics.data.v1beta.IDimensionExpression): google.analytics.data.v1beta.DimensionExpression; /** - * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. - * @param message DimensionMetadata message or plain object to encode + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. - * @param message DimensionMetadata message or plain object to encode + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * @param message DimensionExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionMetadata message from the specified reader or buffer. + * Decodes a DimensionExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionMetadata + * @returns DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression; /** - * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionMetadata + * @returns DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression; /** - * Verifies a DimensionMetadata message. + * Verifies a DimensionExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionMetadata + * @returns DimensionExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression; /** - * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. - * @param message DimensionMetadata + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * @param message DimensionExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DimensionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.DimensionExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionMetadata to JSON. + * Converts this DimensionExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricMetadata. */ - interface IMetricMetadata { + namespace DimensionExpression { + + /** Properties of a CaseExpression. */ + interface ICaseExpression { + + /** CaseExpression dimensionName */ + dimensionName?: (string|null); + } + + /** Represents a CaseExpression. */ + class CaseExpression implements ICaseExpression { + + /** + * Constructs a new CaseExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.DimensionExpression.ICaseExpression); + + /** CaseExpression dimensionName. */ + public dimensionName: string; + + /** + * Creates a new CaseExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns CaseExpression instance + */ + public static create(properties?: google.analytics.data.v1beta.DimensionExpression.ICaseExpression): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + + /** + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. + * @param message CaseExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.DimensionExpression.ICaseExpression, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CaseExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + + /** + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + + /** + * Verifies a CaseExpression message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CaseExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression.CaseExpression; + + /** + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @param message CaseExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionExpression.CaseExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CaseExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ConcatenateExpression. */ + interface IConcatenateExpression { + + /** ConcatenateExpression dimensionNames */ + dimensionNames?: (string[]|null); + + /** ConcatenateExpression delimiter */ + delimiter?: (string|null); + } + + /** Represents a ConcatenateExpression. */ + class ConcatenateExpression implements IConcatenateExpression { + + /** + * Constructs a new ConcatenateExpression. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression); + + /** ConcatenateExpression dimensionNames. */ + public dimensionNames: string[]; + + /** ConcatenateExpression delimiter. */ + public delimiter: string; + + /** + * Creates a new ConcatenateExpression instance using the specified properties. + * @param [properties] Properties to set + * @returns ConcatenateExpression instance + */ + public static create(properties?: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + + /** + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @param message ConcatenateExpression message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; + + /** + * Verifies a ConcatenateExpression message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** MetricMetadata apiName */ - apiName?: (string|null); + /** + * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ConcatenateExpression + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression; - /** MetricMetadata uiName */ - uiName?: (string|null); + /** + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @param message ConcatenateExpression + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** MetricMetadata description */ - description?: (string|null); + /** + * Converts this ConcatenateExpression to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } - /** MetricMetadata deprecatedApiNames */ - deprecatedApiNames?: (string[]|null); + /** Properties of a Metric. */ + interface IMetric { - /** MetricMetadata type */ - type?: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType|null); + /** Metric name */ + name?: (string|null); - /** MetricMetadata expression */ + /** Metric expression */ expression?: (string|null); - /** MetricMetadata customDefinition */ - customDefinition?: (boolean|null); - - /** MetricMetadata blockedReasons */ - blockedReasons?: (google.analytics.data.v1beta.MetricMetadata.BlockedReason[]|null); - - /** MetricMetadata category */ - category?: (string|null); + /** Metric invisible */ + invisible?: (boolean|null); } - /** Represents a MetricMetadata. */ - class MetricMetadata implements IMetricMetadata { + /** Represents a Metric. */ + class Metric implements IMetric { /** - * Constructs a new MetricMetadata. + * Constructs a new Metric. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetricMetadata); - - /** MetricMetadata apiName. */ - public apiName: string; - - /** MetricMetadata uiName. */ - public uiName: string; - - /** MetricMetadata description. */ - public description: string; - - /** MetricMetadata deprecatedApiNames. */ - public deprecatedApiNames: string[]; + constructor(properties?: google.analytics.data.v1beta.IMetric); - /** MetricMetadata type. */ - public type: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType); + /** Metric name. */ + public name: string; - /** MetricMetadata expression. */ + /** Metric expression. */ public expression: string; - /** MetricMetadata customDefinition. */ - public customDefinition: boolean; - - /** MetricMetadata blockedReasons. */ - public blockedReasons: google.analytics.data.v1beta.MetricMetadata.BlockedReason[]; - - /** MetricMetadata category. */ - public category: string; + /** Metric invisible. */ + public invisible: boolean; /** - * Creates a new MetricMetadata instance using the specified properties. + * Creates a new Metric instance using the specified properties. * @param [properties] Properties to set - * @returns MetricMetadata instance + * @returns Metric instance */ - public static create(properties?: google.analytics.data.v1beta.IMetricMetadata): google.analytics.data.v1beta.MetricMetadata; + public static create(properties?: google.analytics.data.v1beta.IMetric): google.analytics.data.v1beta.Metric; /** - * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. - * @param message MetricMetadata message or plain object to encode + * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * @param message Metric message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. - * @param message MetricMetadata message or plain object to encode + * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * @param message Metric message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IMetric, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricMetadata message from the specified reader or buffer. + * Decodes a Metric message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricMetadata + * @returns Metric * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Metric; /** - * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * Decodes a Metric message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricMetadata + * @returns Metric * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricMetadata; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Metric; /** - * Verifies a MetricMetadata message. + * Verifies a Metric message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a Metric message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricMetadata + * @returns Metric */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricMetadata; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Metric; /** - * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. - * @param message MetricMetadata + * Creates a plain object from a Metric message. Also converts values to other types if specified. + * @param message Metric * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.MetricMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.Metric, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricMetadata to JSON. + * Converts this Metric to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace MetricMetadata { + /** Properties of a FilterExpression. */ + interface IFilterExpression { - /** BlockedReason enum. */ - enum BlockedReason { - BLOCKED_REASON_UNSPECIFIED = 0, - NO_REVENUE_METRICS = 1, - NO_COST_METRICS = 2 - } - } + /** FilterExpression andGroup */ + andGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); - /** Properties of a DimensionCompatibility. */ - interface IDimensionCompatibility { + /** FilterExpression orGroup */ + orGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); - /** DimensionCompatibility dimensionMetadata */ - dimensionMetadata?: (google.analytics.data.v1beta.IDimensionMetadata|null); + /** FilterExpression notExpression */ + notExpression?: (google.analytics.data.v1beta.IFilterExpression|null); - /** DimensionCompatibility compatibility */ - compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + /** FilterExpression filter */ + filter?: (google.analytics.data.v1beta.IFilter|null); } - /** Represents a DimensionCompatibility. */ - class DimensionCompatibility implements IDimensionCompatibility { + /** Represents a FilterExpression. */ + class FilterExpression implements IFilterExpression { /** - * Constructs a new DimensionCompatibility. + * Constructs a new FilterExpression. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IDimensionCompatibility); + constructor(properties?: google.analytics.data.v1beta.IFilterExpression); - /** DimensionCompatibility dimensionMetadata. */ - public dimensionMetadata?: (google.analytics.data.v1beta.IDimensionMetadata|null); + /** FilterExpression andGroup. */ + public andGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); - /** DimensionCompatibility compatibility. */ - public compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + /** FilterExpression orGroup. */ + public orGroup?: (google.analytics.data.v1beta.IFilterExpressionList|null); - /** DimensionCompatibility _dimensionMetadata. */ - public _dimensionMetadata?: "dimensionMetadata"; + /** FilterExpression notExpression. */ + public notExpression?: (google.analytics.data.v1beta.IFilterExpression|null); - /** DimensionCompatibility _compatibility. */ - public _compatibility?: "compatibility"; + /** FilterExpression filter. */ + public filter?: (google.analytics.data.v1beta.IFilter|null); + + /** FilterExpression expr. */ + public expr?: ("andGroup"|"orGroup"|"notExpression"|"filter"); /** - * Creates a new DimensionCompatibility instance using the specified properties. + * Creates a new FilterExpression instance using the specified properties. * @param [properties] Properties to set - * @returns DimensionCompatibility instance + * @returns FilterExpression instance */ - public static create(properties?: google.analytics.data.v1beta.IDimensionCompatibility): google.analytics.data.v1beta.DimensionCompatibility; + public static create(properties?: google.analytics.data.v1beta.IFilterExpression): google.analytics.data.v1beta.FilterExpression; /** - * Encodes the specified DimensionCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. - * @param message DimensionCompatibility message or plain object to encode + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IDimensionCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DimensionCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. - * @param message DimensionCompatibility message or plain object to encode + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * @param message FilterExpression message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IFilterExpression, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a DimensionCompatibility message from the specified reader or buffer. + * Decodes a FilterExpression message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns DimensionCompatibility + * @returns FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionCompatibility; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.FilterExpression; /** - * Decodes a DimensionCompatibility message from the specified reader or buffer, length delimited. + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns DimensionCompatibility + * @returns FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionCompatibility; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.FilterExpression; /** - * Verifies a DimensionCompatibility message. + * Verifies a FilterExpression message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a DimensionCompatibility message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns DimensionCompatibility + * @returns FilterExpression */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionCompatibility; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.FilterExpression; /** - * Creates a plain object from a DimensionCompatibility message. Also converts values to other types if specified. - * @param message DimensionCompatibility + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * @param message FilterExpression * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.DimensionCompatibility, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.FilterExpression, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this DimensionCompatibility to JSON. + * Converts this FilterExpression to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** Properties of a MetricCompatibility. */ - interface IMetricCompatibility { - - /** MetricCompatibility metricMetadata */ - metricMetadata?: (google.analytics.data.v1beta.IMetricMetadata|null); + /** Properties of a FilterExpressionList. */ + interface IFilterExpressionList { - /** MetricCompatibility compatibility */ - compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + /** FilterExpressionList expressions */ + expressions?: (google.analytics.data.v1beta.IFilterExpression[]|null); } - /** Represents a MetricCompatibility. */ - class MetricCompatibility implements IMetricCompatibility { + /** Represents a FilterExpressionList. */ + class FilterExpressionList implements IFilterExpressionList { /** - * Constructs a new MetricCompatibility. + * Constructs a new FilterExpressionList. * @param [properties] Properties to set */ - constructor(properties?: google.analytics.data.v1beta.IMetricCompatibility); - - /** MetricCompatibility metricMetadata. */ - public metricMetadata?: (google.analytics.data.v1beta.IMetricMetadata|null); - - /** MetricCompatibility compatibility. */ - public compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); - - /** MetricCompatibility _metricMetadata. */ - public _metricMetadata?: "metricMetadata"; + constructor(properties?: google.analytics.data.v1beta.IFilterExpressionList); - /** MetricCompatibility _compatibility. */ - public _compatibility?: "compatibility"; + /** FilterExpressionList expressions. */ + public expressions: google.analytics.data.v1beta.IFilterExpression[]; /** - * Creates a new MetricCompatibility instance using the specified properties. + * Creates a new FilterExpressionList instance using the specified properties. * @param [properties] Properties to set - * @returns MetricCompatibility instance + * @returns FilterExpressionList instance */ - public static create(properties?: google.analytics.data.v1beta.IMetricCompatibility): google.analytics.data.v1beta.MetricCompatibility; + public static create(properties?: google.analytics.data.v1beta.IFilterExpressionList): google.analytics.data.v1beta.FilterExpressionList; /** - * Encodes the specified MetricCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. - * @param message MetricCompatibility message or plain object to encode + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.analytics.data.v1beta.IMetricCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.analytics.data.v1beta.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MetricCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. - * @param message MetricCompatibility message or plain object to encode + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * @param message FilterExpressionList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.analytics.data.v1beta.IMetricCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.analytics.data.v1beta.IFilterExpressionList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MetricCompatibility message from the specified reader or buffer. + * Decodes a FilterExpressionList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MetricCompatibility + * @returns FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricCompatibility; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.FilterExpressionList; /** - * Decodes a MetricCompatibility message from the specified reader or buffer, length delimited. + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MetricCompatibility + * @returns FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricCompatibility; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.FilterExpressionList; /** - * Verifies a MetricCompatibility message. + * Verifies a FilterExpressionList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MetricCompatibility message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MetricCompatibility + * @returns FilterExpressionList */ - public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricCompatibility; + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.FilterExpressionList; /** - * Creates a plain object from a MetricCompatibility message. Also converts values to other types if specified. - * @param message MetricCompatibility + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * @param message FilterExpressionList * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.analytics.data.v1beta.MetricCompatibility, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.analytics.data.v1beta.FilterExpressionList, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MetricCompatibility to JSON. + * Converts this FilterExpressionList to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - /** MetricAggregation enum. */ - enum MetricAggregation { - METRIC_AGGREGATION_UNSPECIFIED = 0, - TOTAL = 1, - MINIMUM = 5, - MAXIMUM = 6, - COUNT = 4 - } - - /** MetricType enum. */ - enum MetricType { - METRIC_TYPE_UNSPECIFIED = 0, - TYPE_INTEGER = 1, - TYPE_FLOAT = 2, - TYPE_SECONDS = 4, - TYPE_MILLISECONDS = 5, - TYPE_MINUTES = 6, - TYPE_HOURS = 7, - TYPE_STANDARD = 8, - TYPE_CURRENCY = 9, - TYPE_FEET = 10, - TYPE_MILES = 11, - TYPE_METERS = 12, - TYPE_KILOMETERS = 13 - } - - /** RestrictedMetricType enum. */ - enum RestrictedMetricType { - RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0, - COST_DATA = 1, - REVENUE_DATA = 2 - } - - /** Compatibility enum. */ - enum Compatibility { - COMPATIBILITY_UNSPECIFIED = 0, - COMPATIBLE = 1, - INCOMPATIBLE = 2 - } - } - } - } - - /** Namespace api. */ - namespace api { - - /** Properties of a Http. */ - interface IHttp { - - /** Http rules */ - rules?: (google.api.IHttpRule[]|null); - - /** Http fullyDecodeReservedExpansion */ - fullyDecodeReservedExpansion?: (boolean|null); - } - - /** Represents a Http. */ - class Http implements IHttp { - - /** - * Constructs a new Http. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IHttp); - - /** Http rules. */ - public rules: google.api.IHttpRule[]; - - /** Http fullyDecodeReservedExpansion. */ - public fullyDecodeReservedExpansion: boolean; - - /** - * Creates a new Http instance using the specified properties. - * @param [properties] Properties to set - * @returns Http instance - */ - public static create(properties?: google.api.IHttp): google.api.Http; - - /** - * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @param message Http message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @param message Http message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Http message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Http - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http; - - /** - * Decodes a Http message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Http - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http; - - /** - * Verifies a Http message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Http message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Http - */ - public static fromObject(object: { [k: string]: any }): google.api.Http; - - /** - * Creates a plain object from a Http message. Also converts values to other types if specified. - * @param message Http - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Properties of a Filter. */ + interface IFilter { - /** - * Converts this Http to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Filter fieldName */ + fieldName?: (string|null); - /** Properties of a HttpRule. */ - interface IHttpRule { + /** Filter stringFilter */ + stringFilter?: (google.analytics.data.v1beta.Filter.IStringFilter|null); - /** HttpRule selector */ - selector?: (string|null); + /** Filter inListFilter */ + inListFilter?: (google.analytics.data.v1beta.Filter.IInListFilter|null); - /** HttpRule get */ - get?: (string|null); + /** Filter numericFilter */ + numericFilter?: (google.analytics.data.v1beta.Filter.INumericFilter|null); - /** HttpRule put */ - put?: (string|null); + /** Filter betweenFilter */ + betweenFilter?: (google.analytics.data.v1beta.Filter.IBetweenFilter|null); + } - /** HttpRule post */ - post?: (string|null); + /** Represents a Filter. */ + class Filter implements IFilter { - /** HttpRule delete */ - "delete"?: (string|null); + /** + * Constructs a new Filter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IFilter); - /** HttpRule patch */ - patch?: (string|null); + /** Filter fieldName. */ + public fieldName: string; - /** HttpRule custom */ - custom?: (google.api.ICustomHttpPattern|null); + /** Filter stringFilter. */ + public stringFilter?: (google.analytics.data.v1beta.Filter.IStringFilter|null); - /** HttpRule body */ - body?: (string|null); + /** Filter inListFilter. */ + public inListFilter?: (google.analytics.data.v1beta.Filter.IInListFilter|null); - /** HttpRule responseBody */ - responseBody?: (string|null); + /** Filter numericFilter. */ + public numericFilter?: (google.analytics.data.v1beta.Filter.INumericFilter|null); - /** HttpRule additionalBindings */ - additionalBindings?: (google.api.IHttpRule[]|null); - } + /** Filter betweenFilter. */ + public betweenFilter?: (google.analytics.data.v1beta.Filter.IBetweenFilter|null); - /** Represents a HttpRule. */ - class HttpRule implements IHttpRule { + /** Filter oneFilter. */ + public oneFilter?: ("stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"); - /** - * Constructs a new HttpRule. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IHttpRule); + /** + * Creates a new Filter instance using the specified properties. + * @param [properties] Properties to set + * @returns Filter instance + */ + public static create(properties?: google.analytics.data.v1beta.IFilter): google.analytics.data.v1beta.Filter; - /** HttpRule selector. */ - public selector: string; + /** + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** HttpRule get. */ - public get?: (string|null); + /** + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * @param message Filter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** HttpRule put. */ - public put?: (string|null); + /** + * Decodes a Filter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Filter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter; - /** HttpRule post. */ - public post?: (string|null); + /** + * Decodes a Filter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Filter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter; - /** HttpRule delete. */ - public delete?: (string|null); + /** + * Verifies a Filter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** HttpRule patch. */ - public patch?: (string|null); + /** + * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Filter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter; - /** HttpRule custom. */ - public custom?: (google.api.ICustomHttpPattern|null); + /** + * Creates a plain object from a Filter message. Also converts values to other types if specified. + * @param message Filter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** HttpRule body. */ - public body: string; + /** + * Converts this Filter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** HttpRule responseBody. */ - public responseBody: string; + namespace Filter { - /** HttpRule additionalBindings. */ - public additionalBindings: google.api.IHttpRule[]; + /** Properties of a StringFilter. */ + interface IStringFilter { - /** HttpRule pattern. */ - public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom"); + /** StringFilter matchType */ + matchType?: (google.analytics.data.v1beta.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1beta.Filter.StringFilter.MatchType|null); - /** - * Creates a new HttpRule instance using the specified properties. - * @param [properties] Properties to set - * @returns HttpRule instance - */ - public static create(properties?: google.api.IHttpRule): google.api.HttpRule; + /** StringFilter value */ + value?: (string|null); - /** - * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @param message HttpRule message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + /** StringFilter caseSensitive */ + caseSensitive?: (boolean|null); + } - /** - * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @param message HttpRule message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a StringFilter. */ + class StringFilter implements IStringFilter { - /** - * Decodes a HttpRule message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns HttpRule - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule; + /** + * Constructs a new StringFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.Filter.IStringFilter); - /** - * Decodes a HttpRule message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns HttpRule - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule; + /** StringFilter matchType. */ + public matchType: (google.analytics.data.v1beta.Filter.StringFilter.MatchType|keyof typeof google.analytics.data.v1beta.Filter.StringFilter.MatchType); - /** - * Verifies a HttpRule message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** StringFilter value. */ + public value: string; - /** - * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns HttpRule - */ - public static fromObject(object: { [k: string]: any }): google.api.HttpRule; + /** StringFilter caseSensitive. */ + public caseSensitive: boolean; - /** - * Creates a plain object from a HttpRule message. Also converts values to other types if specified. - * @param message HttpRule - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a new StringFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns StringFilter instance + */ + public static create(properties?: google.analytics.data.v1beta.Filter.IStringFilter): google.analytics.data.v1beta.Filter.StringFilter; - /** - * Converts this HttpRule to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a CustomHttpPattern. */ - interface ICustomHttpPattern { + /** + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. + * @param message StringFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IStringFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** CustomHttpPattern kind */ - kind?: (string|null); + /** + * Decodes a StringFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StringFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.StringFilter; - /** CustomHttpPattern path */ - path?: (string|null); - } + /** + * Decodes a StringFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StringFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.StringFilter; - /** Represents a CustomHttpPattern. */ - class CustomHttpPattern implements ICustomHttpPattern { + /** + * Verifies a StringFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Constructs a new CustomHttpPattern. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.ICustomHttpPattern); + /** + * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StringFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.StringFilter; - /** CustomHttpPattern kind. */ - public kind: string; + /** + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. + * @param message StringFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Filter.StringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** CustomHttpPattern path. */ - public path: string; + /** + * Converts this StringFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a new CustomHttpPattern instance using the specified properties. - * @param [properties] Properties to set - * @returns CustomHttpPattern instance - */ - public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern; + namespace StringFilter { + + /** MatchType enum. */ + enum MatchType { + MATCH_TYPE_UNSPECIFIED = 0, + EXACT = 1, + BEGINS_WITH = 2, + ENDS_WITH = 3, + CONTAINS = 4, + FULL_REGEXP = 5, + PARTIAL_REGEXP = 6 + } + } - /** - * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @param message CustomHttpPattern message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of an InListFilter. */ + interface IInListFilter { - /** - * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @param message CustomHttpPattern message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + /** InListFilter values */ + values?: (string[]|null); - /** - * Decodes a CustomHttpPattern message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CustomHttpPattern - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern; + /** InListFilter caseSensitive */ + caseSensitive?: (boolean|null); + } - /** - * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CustomHttpPattern - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern; + /** Represents an InListFilter. */ + class InListFilter implements IInListFilter { - /** - * Verifies a CustomHttpPattern message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Constructs a new InListFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.Filter.IInListFilter); - /** - * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CustomHttpPattern - */ - public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern; + /** InListFilter values. */ + public values: string[]; - /** - * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. - * @param message CustomHttpPattern - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** InListFilter caseSensitive. */ + public caseSensitive: boolean; - /** - * Converts this CustomHttpPattern to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a new InListFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns InListFilter instance + */ + public static create(properties?: google.analytics.data.v1beta.Filter.IInListFilter): google.analytics.data.v1beta.Filter.InListFilter; - /** FieldBehavior enum. */ - enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7 - } + /** + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a ResourceDescriptor. */ - interface IResourceDescriptor { + /** + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. + * @param message InListFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IInListFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** ResourceDescriptor type */ - type?: (string|null); + /** + * Decodes an InListFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InListFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.InListFilter; - /** ResourceDescriptor pattern */ - pattern?: (string[]|null); + /** + * Decodes an InListFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InListFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.InListFilter; - /** ResourceDescriptor nameField */ - nameField?: (string|null); + /** + * Verifies an InListFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** ResourceDescriptor history */ - history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null); + /** + * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InListFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.InListFilter; - /** ResourceDescriptor plural */ - plural?: (string|null); + /** + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. + * @param message InListFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Filter.InListFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** ResourceDescriptor singular */ - singular?: (string|null); + /** + * Converts this InListFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** ResourceDescriptor style */ - style?: (google.api.ResourceDescriptor.Style[]|null); - } + /** Properties of a NumericFilter. */ + interface INumericFilter { - /** Represents a ResourceDescriptor. */ - class ResourceDescriptor implements IResourceDescriptor { + /** NumericFilter operation */ + operation?: (google.analytics.data.v1beta.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1beta.Filter.NumericFilter.Operation|null); - /** - * Constructs a new ResourceDescriptor. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IResourceDescriptor); + /** NumericFilter value */ + value?: (google.analytics.data.v1beta.INumericValue|null); + } - /** ResourceDescriptor type. */ - public type: string; + /** Represents a NumericFilter. */ + class NumericFilter implements INumericFilter { - /** ResourceDescriptor pattern. */ - public pattern: string[]; + /** + * Constructs a new NumericFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.Filter.INumericFilter); - /** ResourceDescriptor nameField. */ - public nameField: string; + /** NumericFilter operation. */ + public operation: (google.analytics.data.v1beta.Filter.NumericFilter.Operation|keyof typeof google.analytics.data.v1beta.Filter.NumericFilter.Operation); - /** ResourceDescriptor history. */ - public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History); + /** NumericFilter value. */ + public value?: (google.analytics.data.v1beta.INumericValue|null); - /** ResourceDescriptor plural. */ - public plural: string; + /** + * Creates a new NumericFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns NumericFilter instance + */ + public static create(properties?: google.analytics.data.v1beta.Filter.INumericFilter): google.analytics.data.v1beta.Filter.NumericFilter; - /** ResourceDescriptor singular. */ - public singular: string; + /** + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** ResourceDescriptor style. */ - public style: google.api.ResourceDescriptor.Style[]; + /** + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. + * @param message NumericFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.Filter.INumericFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new ResourceDescriptor instance using the specified properties. - * @param [properties] Properties to set - * @returns ResourceDescriptor instance - */ - public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor; + /** + * Decodes a NumericFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NumericFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.NumericFilter; - /** - * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @param message ResourceDescriptor message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NumericFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.NumericFilter; - /** - * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @param message ResourceDescriptor message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a NumericFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a ResourceDescriptor message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ResourceDescriptor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor; + /** + * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NumericFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.NumericFilter; - /** - * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ResourceDescriptor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor; + /** + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. + * @param message NumericFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Filter.NumericFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Verifies a ResourceDescriptor message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Converts this NumericFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ResourceDescriptor - */ - public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor; + namespace NumericFilter { - /** - * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. - * @param message ResourceDescriptor - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Operation enum. */ + enum Operation { + OPERATION_UNSPECIFIED = 0, + EQUAL = 1, + LESS_THAN = 2, + LESS_THAN_OR_EQUAL = 3, + GREATER_THAN = 4, + GREATER_THAN_OR_EQUAL = 5 + } + } - /** - * Converts this ResourceDescriptor to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Properties of a BetweenFilter. */ + interface IBetweenFilter { - namespace ResourceDescriptor { + /** BetweenFilter fromValue */ + fromValue?: (google.analytics.data.v1beta.INumericValue|null); - /** History enum. */ - enum History { - HISTORY_UNSPECIFIED = 0, - ORIGINALLY_SINGLE_PATTERN = 1, - FUTURE_MULTI_PATTERN = 2 - } + /** BetweenFilter toValue */ + toValue?: (google.analytics.data.v1beta.INumericValue|null); + } - /** Style enum. */ - enum Style { - STYLE_UNSPECIFIED = 0, - DECLARATIVE_FRIENDLY = 1 - } - } + /** Represents a BetweenFilter. */ + class BetweenFilter implements IBetweenFilter { - /** Properties of a ResourceReference. */ - interface IResourceReference { + /** + * Constructs a new BetweenFilter. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.Filter.IBetweenFilter); - /** ResourceReference type */ - type?: (string|null); + /** BetweenFilter fromValue. */ + public fromValue?: (google.analytics.data.v1beta.INumericValue|null); - /** ResourceReference childType */ - childType?: (string|null); - } + /** BetweenFilter toValue. */ + public toValue?: (google.analytics.data.v1beta.INumericValue|null); - /** Represents a ResourceReference. */ - class ResourceReference implements IResourceReference { + /** + * Creates a new BetweenFilter instance using the specified properties. + * @param [properties] Properties to set + * @returns BetweenFilter instance + */ + public static create(properties?: google.analytics.data.v1beta.Filter.IBetweenFilter): google.analytics.data.v1beta.Filter.BetweenFilter; - /** - * Constructs a new ResourceReference. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IResourceReference); + /** + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** ResourceReference type. */ - public type: string; + /** + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. + * @param message BetweenFilter message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.Filter.IBetweenFilter, writer?: $protobuf.Writer): $protobuf.Writer; - /** ResourceReference childType. */ - public childType: string; + /** + * Decodes a BetweenFilter message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Filter.BetweenFilter; - /** - * Creates a new ResourceReference instance using the specified properties. - * @param [properties] Properties to set - * @returns ResourceReference instance - */ - public static create(properties?: google.api.IResourceReference): google.api.ResourceReference; + /** + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Filter.BetweenFilter; - /** - * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @param message ResourceReference message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a BetweenFilter message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @param message ResourceReference message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BetweenFilter + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Filter.BetweenFilter; - /** - * Decodes a ResourceReference message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ResourceReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference; + /** + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * @param message BetweenFilter + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Filter.BetweenFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Decodes a ResourceReference message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ResourceReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference; + /** + * Converts this BetweenFilter to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } - /** - * Verifies a ResourceReference message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Properties of an OrderBy. */ + interface IOrderBy { - /** - * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ResourceReference - */ - public static fromObject(object: { [k: string]: any }): google.api.ResourceReference; + /** OrderBy metric */ + metric?: (google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null); + + /** OrderBy dimension */ + dimension?: (google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null); - /** - * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. - * @param message ResourceReference - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** OrderBy pivot */ + pivot?: (google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null); - /** - * Converts this ResourceReference to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** OrderBy desc */ + desc?: (boolean|null); + } - /** Namespace protobuf. */ - namespace protobuf { + /** Represents an OrderBy. */ + class OrderBy implements IOrderBy { - /** Properties of a FileDescriptorSet. */ - interface IFileDescriptorSet { + /** + * Constructs a new OrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IOrderBy); - /** FileDescriptorSet file */ - file?: (google.protobuf.IFileDescriptorProto[]|null); - } + /** OrderBy metric. */ + public metric?: (google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null); - /** Represents a FileDescriptorSet. */ - class FileDescriptorSet implements IFileDescriptorSet { + /** OrderBy dimension. */ + public dimension?: (google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null); - /** - * Constructs a new FileDescriptorSet. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IFileDescriptorSet); + /** OrderBy pivot. */ + public pivot?: (google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null); - /** FileDescriptorSet file. */ - public file: google.protobuf.IFileDescriptorProto[]; + /** OrderBy desc. */ + public desc: boolean; - /** - * Creates a new FileDescriptorSet instance using the specified properties. - * @param [properties] Properties to set - * @returns FileDescriptorSet instance - */ - public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet; + /** OrderBy oneOrderBy. */ + public oneOrderBy?: ("metric"|"dimension"|"pivot"); - /** - * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. - * @param message FileDescriptorSet message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new OrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns OrderBy instance + */ + public static create(properties?: google.analytics.data.v1beta.IOrderBy): google.analytics.data.v1beta.OrderBy; - /** - * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. - * @param message FileDescriptorSet message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * @param message OrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a FileDescriptorSet message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FileDescriptorSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet; + /** + * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * @param message OrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FileDescriptorSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet; + /** + * Decodes an OrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy; - /** - * Verifies a FileDescriptorSet message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy; - /** - * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FileDescriptorSet - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet; + /** + * Verifies an OrderBy message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. - * @param message FileDescriptorSet - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns OrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy; - /** - * Converts this FileDescriptorSet to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * @param message OrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.OrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Properties of a FileDescriptorProto. */ - interface IFileDescriptorProto { + /** + * Converts this OrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FileDescriptorProto name */ - name?: (string|null); + namespace OrderBy { - /** FileDescriptorProto package */ - "package"?: (string|null); + /** Properties of a MetricOrderBy. */ + interface IMetricOrderBy { - /** FileDescriptorProto dependency */ - dependency?: (string[]|null); + /** MetricOrderBy metricName */ + metricName?: (string|null); + } - /** FileDescriptorProto publicDependency */ - publicDependency?: (number[]|null); + /** Represents a MetricOrderBy. */ + class MetricOrderBy implements IMetricOrderBy { - /** FileDescriptorProto weakDependency */ - weakDependency?: (number[]|null); + /** + * Constructs a new MetricOrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.OrderBy.IMetricOrderBy); - /** FileDescriptorProto messageType */ - messageType?: (google.protobuf.IDescriptorProto[]|null); + /** MetricOrderBy metricName. */ + public metricName: string; - /** FileDescriptorProto enumType */ - enumType?: (google.protobuf.IEnumDescriptorProto[]|null); + /** + * Creates a new MetricOrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricOrderBy instance + */ + public static create(properties?: google.analytics.data.v1beta.OrderBy.IMetricOrderBy): google.analytics.data.v1beta.OrderBy.MetricOrderBy; - /** FileDescriptorProto service */ - service?: (google.protobuf.IServiceDescriptorProto[]|null); + /** + * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. + * @param message MetricOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileDescriptorProto extension */ - extension?: (google.protobuf.IFieldDescriptorProto[]|null); + /** + * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. + * @param message MetricOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IMetricOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileDescriptorProto options */ - options?: (google.protobuf.IFileOptions|null); + /** + * Decodes a MetricOrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + + /** + * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.MetricOrderBy; + + /** + * Verifies a MetricOrderBy message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FileDescriptorProto sourceCodeInfo */ - sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); + /** + * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricOrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.MetricOrderBy; - /** FileDescriptorProto syntax */ - syntax?: (string|null); - } + /** + * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. + * @param message MetricOrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.OrderBy.MetricOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Represents a FileDescriptorProto. */ - class FileDescriptorProto implements IFileDescriptorProto { + /** + * Converts this MetricOrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Constructs a new FileDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IFileDescriptorProto); + /** Properties of a DimensionOrderBy. */ + interface IDimensionOrderBy { - /** FileDescriptorProto name. */ - public name: string; + /** DimensionOrderBy dimensionName */ + dimensionName?: (string|null); - /** FileDescriptorProto package. */ - public package: string; + /** DimensionOrderBy orderType */ + orderType?: (google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|null); + } - /** FileDescriptorProto dependency. */ - public dependency: string[]; + /** Represents a DimensionOrderBy. */ + class DimensionOrderBy implements IDimensionOrderBy { - /** FileDescriptorProto publicDependency. */ - public publicDependency: number[]; + /** + * Constructs a new DimensionOrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy); - /** FileDescriptorProto weakDependency. */ - public weakDependency: number[]; + /** DimensionOrderBy dimensionName. */ + public dimensionName: string; - /** FileDescriptorProto messageType. */ - public messageType: google.protobuf.IDescriptorProto[]; + /** DimensionOrderBy orderType. */ + public orderType: (google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|keyof typeof google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType); - /** FileDescriptorProto enumType. */ - public enumType: google.protobuf.IEnumDescriptorProto[]; + /** + * Creates a new DimensionOrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionOrderBy instance + */ + public static create(properties?: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; - /** FileDescriptorProto service. */ - public service: google.protobuf.IServiceDescriptorProto[]; + /** + * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. + * @param message DimensionOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileDescriptorProto extension. */ - public extension: google.protobuf.IFieldDescriptorProto[]; + /** + * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. + * @param message DimensionOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IDimensionOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileDescriptorProto options. */ - public options?: (google.protobuf.IFileOptions|null); + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; - /** FileDescriptorProto sourceCodeInfo. */ - public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null); + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; - /** FileDescriptorProto syntax. */ - public syntax: string; + /** + * Verifies a DimensionOrderBy message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a new FileDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns FileDescriptorProto instance - */ - public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto; + /** + * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionOrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.DimensionOrderBy; - /** - * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. - * @param message FileDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. + * @param message DimensionOrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.OrderBy.DimensionOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. - * @param message FileDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Converts this DimensionOrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Decodes a FileDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FileDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto; + namespace DimensionOrderBy { - /** - * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FileDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto; + /** OrderType enum. */ + enum OrderType { + ORDER_TYPE_UNSPECIFIED = 0, + ALPHANUMERIC = 1, + CASE_INSENSITIVE_ALPHANUMERIC = 2, + NUMERIC = 3 + } + } - /** - * Verifies a FileDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Properties of a PivotOrderBy. */ + interface IPivotOrderBy { - /** - * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FileDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto; + /** PivotOrderBy metricName */ + metricName?: (string|null); - /** - * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. - * @param message FileDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** PivotOrderBy pivotSelections */ + pivotSelections?: (google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection[]|null); + } - /** - * Converts this FileDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Represents a PivotOrderBy. */ + class PivotOrderBy implements IPivotOrderBy { - /** Properties of a DescriptorProto. */ - interface IDescriptorProto { + /** + * Constructs a new PivotOrderBy. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.OrderBy.IPivotOrderBy); - /** DescriptorProto name */ - name?: (string|null); + /** PivotOrderBy metricName. */ + public metricName: string; - /** DescriptorProto field */ - field?: (google.protobuf.IFieldDescriptorProto[]|null); + /** PivotOrderBy pivotSelections. */ + public pivotSelections: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection[]; - /** DescriptorProto extension */ - extension?: (google.protobuf.IFieldDescriptorProto[]|null); + /** + * Creates a new PivotOrderBy instance using the specified properties. + * @param [properties] Properties to set + * @returns PivotOrderBy instance + */ + public static create(properties?: google.analytics.data.v1beta.OrderBy.IPivotOrderBy): google.analytics.data.v1beta.OrderBy.PivotOrderBy; - /** DescriptorProto nestedType */ - nestedType?: (google.protobuf.IDescriptorProto[]|null); + /** + * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. + * @param message PivotOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** DescriptorProto enumType */ - enumType?: (google.protobuf.IEnumDescriptorProto[]|null); + /** + * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. + * @param message PivotOrderBy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.IPivotOrderBy, writer?: $protobuf.Writer): $protobuf.Writer; - /** DescriptorProto extensionRange */ - extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null); + /** + * Decodes a PivotOrderBy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PivotOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.PivotOrderBy; - /** DescriptorProto oneofDecl */ - oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null); + /** + * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PivotOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.PivotOrderBy; - /** DescriptorProto options */ - options?: (google.protobuf.IMessageOptions|null); + /** + * Verifies a PivotOrderBy message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** DescriptorProto reservedRange */ - reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null); + /** + * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PivotOrderBy + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.PivotOrderBy; - /** DescriptorProto reservedName */ - reservedName?: (string[]|null); - } + /** + * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. + * @param message PivotOrderBy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Represents a DescriptorProto. */ - class DescriptorProto implements IDescriptorProto { + /** + * Converts this PivotOrderBy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Constructs a new DescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IDescriptorProto); + namespace PivotOrderBy { - /** DescriptorProto name. */ - public name: string; + /** Properties of a PivotSelection. */ + interface IPivotSelection { - /** DescriptorProto field. */ - public field: google.protobuf.IFieldDescriptorProto[]; + /** PivotSelection dimensionName */ + dimensionName?: (string|null); - /** DescriptorProto extension. */ - public extension: google.protobuf.IFieldDescriptorProto[]; + /** PivotSelection dimensionValue */ + dimensionValue?: (string|null); + } - /** DescriptorProto nestedType. */ - public nestedType: google.protobuf.IDescriptorProto[]; + /** Represents a PivotSelection. */ + class PivotSelection implements IPivotSelection { - /** DescriptorProto enumType. */ - public enumType: google.protobuf.IEnumDescriptorProto[]; + /** + * Constructs a new PivotSelection. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection); - /** DescriptorProto extensionRange. */ - public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[]; + /** PivotSelection dimensionName. */ + public dimensionName: string; - /** DescriptorProto oneofDecl. */ - public oneofDecl: google.protobuf.IOneofDescriptorProto[]; + /** PivotSelection dimensionValue. */ + public dimensionValue: string; - /** DescriptorProto options. */ - public options?: (google.protobuf.IMessageOptions|null); + /** + * Creates a new PivotSelection instance using the specified properties. + * @param [properties] Properties to set + * @returns PivotSelection instance + */ + public static create(properties?: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; - /** DescriptorProto reservedRange. */ - public reservedRange: google.protobuf.DescriptorProto.IReservedRange[]; + /** + * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. + * @param message PivotSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; - /** DescriptorProto reservedName. */ - public reservedName: string[]; + /** + * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. + * @param message PivotSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new DescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns DescriptorProto instance - */ - public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto; + /** + * Decodes a PivotSelection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PivotSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; - /** - * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. - * @param message DescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a PivotSelection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PivotSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; - /** - * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. - * @param message DescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a PivotSelection message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a DescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto; + /** + * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PivotSelection + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection; - /** - * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto; + /** + * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. + * @param message PivotSelection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Verifies a DescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Converts this PivotSelection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + } - /** - * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto; + /** Properties of a Pivot. */ + interface IPivot { - /** - * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. - * @param message DescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Pivot fieldNames */ + fieldNames?: (string[]|null); - /** - * Converts this DescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Pivot orderBys */ + orderBys?: (google.analytics.data.v1beta.IOrderBy[]|null); - namespace DescriptorProto { + /** Pivot offset */ + offset?: (number|Long|string|null); - /** Properties of an ExtensionRange. */ - interface IExtensionRange { + /** Pivot limit */ + limit?: (number|Long|string|null); - /** ExtensionRange start */ - start?: (number|null); + /** Pivot metricAggregations */ + metricAggregations?: (google.analytics.data.v1beta.MetricAggregation[]|null); + } - /** ExtensionRange end */ - end?: (number|null); + /** Represents a Pivot. */ + class Pivot implements IPivot { - /** ExtensionRange options */ - options?: (google.protobuf.IExtensionRangeOptions|null); - } + /** + * Constructs a new Pivot. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IPivot); - /** Represents an ExtensionRange. */ - class ExtensionRange implements IExtensionRange { + /** Pivot fieldNames. */ + public fieldNames: string[]; - /** - * Constructs a new ExtensionRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange); + /** Pivot orderBys. */ + public orderBys: google.analytics.data.v1beta.IOrderBy[]; - /** ExtensionRange start. */ - public start: number; + /** Pivot offset. */ + public offset: (number|Long|string); - /** ExtensionRange end. */ - public end: number; + /** Pivot limit. */ + public limit: (number|Long|string); - /** ExtensionRange options. */ - public options?: (google.protobuf.IExtensionRangeOptions|null); + /** Pivot metricAggregations. */ + public metricAggregations: google.analytics.data.v1beta.MetricAggregation[]; - /** - * Creates a new ExtensionRange instance using the specified properties. - * @param [properties] Properties to set - * @returns ExtensionRange instance - */ - public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange; + /** + * Creates a new Pivot instance using the specified properties. + * @param [properties] Properties to set + * @returns Pivot instance + */ + public static create(properties?: google.analytics.data.v1beta.IPivot): google.analytics.data.v1beta.Pivot; - /** - * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. - * @param message ExtensionRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * @param message Pivot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. - * @param message ExtensionRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * @param message Pivot message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IPivot, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an ExtensionRange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ExtensionRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange; + /** + * Decodes a Pivot message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Pivot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Pivot; - /** - * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ExtensionRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange; + /** + * Decodes a Pivot message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Pivot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Pivot; - /** - * Verifies an ExtensionRange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Verifies a Pivot message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ExtensionRange - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange; + /** + * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Pivot + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Pivot; - /** - * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. - * @param message ExtensionRange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a plain object from a Pivot message. Also converts values to other types if specified. + * @param message Pivot + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Pivot, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this ExtensionRange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Converts this Pivot to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Properties of a ReservedRange. */ - interface IReservedRange { + /** Properties of a CohortSpec. */ + interface ICohortSpec { - /** ReservedRange start */ - start?: (number|null); + /** CohortSpec cohorts */ + cohorts?: (google.analytics.data.v1beta.ICohort[]|null); - /** ReservedRange end */ - end?: (number|null); - } + /** CohortSpec cohortsRange */ + cohortsRange?: (google.analytics.data.v1beta.ICohortsRange|null); - /** Represents a ReservedRange. */ - class ReservedRange implements IReservedRange { + /** CohortSpec cohortReportSettings */ + cohortReportSettings?: (google.analytics.data.v1beta.ICohortReportSettings|null); + } - /** - * Constructs a new ReservedRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.DescriptorProto.IReservedRange); + /** Represents a CohortSpec. */ + class CohortSpec implements ICohortSpec { - /** ReservedRange start. */ - public start: number; + /** + * Constructs a new CohortSpec. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ICohortSpec); - /** ReservedRange end. */ - public end: number; + /** CohortSpec cohorts. */ + public cohorts: google.analytics.data.v1beta.ICohort[]; - /** - * Creates a new ReservedRange instance using the specified properties. - * @param [properties] Properties to set - * @returns ReservedRange instance - */ - public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange; + /** CohortSpec cohortsRange. */ + public cohortsRange?: (google.analytics.data.v1beta.ICohortsRange|null); - /** - * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. - * @param message ReservedRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** CohortSpec cohortReportSettings. */ + public cohortReportSettings?: (google.analytics.data.v1beta.ICohortReportSettings|null); - /** - * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. - * @param message ReservedRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new CohortSpec instance using the specified properties. + * @param [properties] Properties to set + * @returns CohortSpec instance + */ + public static create(properties?: google.analytics.data.v1beta.ICohortSpec): google.analytics.data.v1beta.CohortSpec; - /** - * Decodes a ReservedRange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange; + /** + * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * @param message CohortSpec message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a ReservedRange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange; + /** + * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * @param message CohortSpec message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ICohortSpec, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies a ReservedRange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a CohortSpec message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortSpec; - /** - * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ReservedRange - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange; + /** + * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortSpec; - /** - * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. - * @param message ReservedRange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Verifies a CohortSpec message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Converts this ReservedRange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CohortSpec + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortSpec; - /** Properties of an ExtensionRangeOptions. */ - interface IExtensionRangeOptions { + /** + * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * @param message CohortSpec + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.CohortSpec, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** ExtensionRangeOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - } + /** + * Converts this CohortSpec to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Represents an ExtensionRangeOptions. */ - class ExtensionRangeOptions implements IExtensionRangeOptions { + /** Properties of a Cohort. */ + interface ICohort { - /** - * Constructs a new ExtensionRangeOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IExtensionRangeOptions); + /** Cohort name */ + name?: (string|null); - /** ExtensionRangeOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** Cohort dimension */ + dimension?: (string|null); - /** - * Creates a new ExtensionRangeOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns ExtensionRangeOptions instance - */ - public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions; + /** Cohort dateRange */ + dateRange?: (google.analytics.data.v1beta.IDateRange|null); + } - /** - * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. - * @param message ExtensionRangeOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a Cohort. */ + class Cohort implements ICohort { - /** - * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. - * @param message ExtensionRangeOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new Cohort. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ICohort); - /** - * Decodes an ExtensionRangeOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ExtensionRangeOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions; + /** Cohort name. */ + public name: string; - /** - * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ExtensionRangeOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions; + /** Cohort dimension. */ + public dimension: string; - /** - * Verifies an ExtensionRangeOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Cohort dateRange. */ + public dateRange?: (google.analytics.data.v1beta.IDateRange|null); - /** - * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ExtensionRangeOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions; + /** + * Creates a new Cohort instance using the specified properties. + * @param [properties] Properties to set + * @returns Cohort instance + */ + public static create(properties?: google.analytics.data.v1beta.ICohort): google.analytics.data.v1beta.Cohort; - /** - * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. - * @param message ExtensionRangeOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * @param message Cohort message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this ExtensionRangeOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * @param message Cohort message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ICohort, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of a FieldDescriptorProto. */ - interface IFieldDescriptorProto { + /** + * Decodes a Cohort message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Cohort; - /** FieldDescriptorProto name */ - name?: (string|null); + /** + * Decodes a Cohort message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Cohort; - /** FieldDescriptorProto number */ - number?: (number|null); + /** + * Verifies a Cohort message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FieldDescriptorProto label */ - label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null); + /** + * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Cohort + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Cohort; - /** FieldDescriptorProto type */ - type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null); + /** + * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * @param message Cohort + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Cohort, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FieldDescriptorProto typeName */ - typeName?: (string|null); + /** + * Converts this Cohort to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FieldDescriptorProto extendee */ - extendee?: (string|null); + /** Properties of a CohortsRange. */ + interface ICohortsRange { - /** FieldDescriptorProto defaultValue */ - defaultValue?: (string|null); + /** CohortsRange granularity */ + granularity?: (google.analytics.data.v1beta.CohortsRange.Granularity|keyof typeof google.analytics.data.v1beta.CohortsRange.Granularity|null); - /** FieldDescriptorProto oneofIndex */ - oneofIndex?: (number|null); + /** CohortsRange startOffset */ + startOffset?: (number|null); - /** FieldDescriptorProto jsonName */ - jsonName?: (string|null); + /** CohortsRange endOffset */ + endOffset?: (number|null); + } - /** FieldDescriptorProto options */ - options?: (google.protobuf.IFieldOptions|null); + /** Represents a CohortsRange. */ + class CohortsRange implements ICohortsRange { - /** FieldDescriptorProto proto3Optional */ - proto3Optional?: (boolean|null); - } + /** + * Constructs a new CohortsRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ICohortsRange); - /** Represents a FieldDescriptorProto. */ - class FieldDescriptorProto implements IFieldDescriptorProto { + /** CohortsRange granularity. */ + public granularity: (google.analytics.data.v1beta.CohortsRange.Granularity|keyof typeof google.analytics.data.v1beta.CohortsRange.Granularity); - /** - * Constructs a new FieldDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IFieldDescriptorProto); + /** CohortsRange startOffset. */ + public startOffset: number; - /** FieldDescriptorProto name. */ - public name: string; + /** CohortsRange endOffset. */ + public endOffset: number; - /** FieldDescriptorProto number. */ - public number: number; + /** + * Creates a new CohortsRange instance using the specified properties. + * @param [properties] Properties to set + * @returns CohortsRange instance + */ + public static create(properties?: google.analytics.data.v1beta.ICohortsRange): google.analytics.data.v1beta.CohortsRange; - /** FieldDescriptorProto label. */ - public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label); + /** + * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * @param message CohortsRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** FieldDescriptorProto type. */ - public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type); + /** + * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * @param message CohortsRange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ICohortsRange, writer?: $protobuf.Writer): $protobuf.Writer; - /** FieldDescriptorProto typeName. */ - public typeName: string; + /** + * Decodes a CohortsRange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortsRange; - /** FieldDescriptorProto extendee. */ - public extendee: string; + /** + * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortsRange; - /** FieldDescriptorProto defaultValue. */ - public defaultValue: string; + /** + * Verifies a CohortsRange message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FieldDescriptorProto oneofIndex. */ - public oneofIndex: number; + /** + * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CohortsRange + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortsRange; - /** FieldDescriptorProto jsonName. */ - public jsonName: string; + /** + * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * @param message CohortsRange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.CohortsRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FieldDescriptorProto options. */ - public options?: (google.protobuf.IFieldOptions|null); + /** + * Converts this CohortsRange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FieldDescriptorProto proto3Optional. */ - public proto3Optional: boolean; + namespace CohortsRange { - /** - * Creates a new FieldDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns FieldDescriptorProto instance - */ - public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto; + /** Granularity enum. */ + enum Granularity { + GRANULARITY_UNSPECIFIED = 0, + DAILY = 1, + WEEKLY = 2, + MONTHLY = 3 + } + } - /** - * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. - * @param message FieldDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of a CohortReportSettings. */ + interface ICohortReportSettings { - /** - * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. - * @param message FieldDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** CohortReportSettings accumulate */ + accumulate?: (boolean|null); + } - /** - * Decodes a FieldDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FieldDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto; + /** Represents a CohortReportSettings. */ + class CohortReportSettings implements ICohortReportSettings { - /** - * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FieldDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto; + /** + * Constructs a new CohortReportSettings. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ICohortReportSettings); - /** - * Verifies a FieldDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** CohortReportSettings accumulate. */ + public accumulate: boolean; - /** - * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FieldDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto; + /** + * Creates a new CohortReportSettings instance using the specified properties. + * @param [properties] Properties to set + * @returns CohortReportSettings instance + */ + public static create(properties?: google.analytics.data.v1beta.ICohortReportSettings): google.analytics.data.v1beta.CohortReportSettings; - /** - * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. - * @param message FieldDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * @param message CohortReportSettings message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this FieldDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * @param message CohortReportSettings message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ICohortReportSettings, writer?: $protobuf.Writer): $protobuf.Writer; - namespace FieldDescriptorProto { + /** + * Decodes a CohortReportSettings message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.CohortReportSettings; - /** Type enum. */ - enum Type { - TYPE_DOUBLE = 1, - TYPE_FLOAT = 2, - TYPE_INT64 = 3, - TYPE_UINT64 = 4, - TYPE_INT32 = 5, - TYPE_FIXED64 = 6, - TYPE_FIXED32 = 7, - TYPE_BOOL = 8, - TYPE_STRING = 9, - TYPE_GROUP = 10, - TYPE_MESSAGE = 11, - TYPE_BYTES = 12, - TYPE_UINT32 = 13, - TYPE_ENUM = 14, - TYPE_SFIXED32 = 15, - TYPE_SFIXED64 = 16, - TYPE_SINT32 = 17, - TYPE_SINT64 = 18 - } + /** + * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.CohortReportSettings; - /** Label enum. */ - enum Label { - LABEL_OPTIONAL = 1, - LABEL_REQUIRED = 2, - LABEL_REPEATED = 3 - } - } + /** + * Verifies a CohortReportSettings message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Properties of an OneofDescriptorProto. */ - interface IOneofDescriptorProto { + /** + * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CohortReportSettings + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.CohortReportSettings; - /** OneofDescriptorProto name */ - name?: (string|null); + /** + * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * @param message CohortReportSettings + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.CohortReportSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** OneofDescriptorProto options */ - options?: (google.protobuf.IOneofOptions|null); - } + /** + * Converts this CohortReportSettings to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Represents an OneofDescriptorProto. */ - class OneofDescriptorProto implements IOneofDescriptorProto { + /** Properties of a ResponseMetaData. */ + interface IResponseMetaData { - /** - * Constructs a new OneofDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IOneofDescriptorProto); + /** ResponseMetaData dataLossFromOtherRow */ + dataLossFromOtherRow?: (boolean|null); - /** OneofDescriptorProto name. */ - public name: string; + /** ResponseMetaData schemaRestrictionResponse */ + schemaRestrictionResponse?: (google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null); - /** OneofDescriptorProto options. */ - public options?: (google.protobuf.IOneofOptions|null); + /** ResponseMetaData currencyCode */ + currencyCode?: (string|null); - /** - * Creates a new OneofDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns OneofDescriptorProto instance - */ - public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto; + /** ResponseMetaData timeZone */ + timeZone?: (string|null); - /** - * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. - * @param message OneofDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** ResponseMetaData emptyReason */ + emptyReason?: (string|null); + } - /** - * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. - * @param message OneofDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a ResponseMetaData. */ + class ResponseMetaData implements IResponseMetaData { - /** - * Decodes an OneofDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns OneofDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto; + /** + * Constructs a new ResponseMetaData. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IResponseMetaData); - /** - * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns OneofDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto; + /** ResponseMetaData dataLossFromOtherRow. */ + public dataLossFromOtherRow: boolean; - /** - * Verifies an OneofDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** ResponseMetaData schemaRestrictionResponse. */ + public schemaRestrictionResponse?: (google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null); - /** - * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns OneofDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto; + /** ResponseMetaData currencyCode. */ + public currencyCode?: (string|null); - /** - * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. - * @param message OneofDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** ResponseMetaData timeZone. */ + public timeZone?: (string|null); - /** - * Converts this OneofDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** ResponseMetaData emptyReason. */ + public emptyReason?: (string|null); - /** Properties of an EnumDescriptorProto. */ - interface IEnumDescriptorProto { + /** ResponseMetaData _schemaRestrictionResponse. */ + public _schemaRestrictionResponse?: "schemaRestrictionResponse"; - /** EnumDescriptorProto name */ - name?: (string|null); + /** ResponseMetaData _currencyCode. */ + public _currencyCode?: "currencyCode"; - /** EnumDescriptorProto value */ - value?: (google.protobuf.IEnumValueDescriptorProto[]|null); + /** ResponseMetaData _timeZone. */ + public _timeZone?: "timeZone"; - /** EnumDescriptorProto options */ - options?: (google.protobuf.IEnumOptions|null); + /** ResponseMetaData _emptyReason. */ + public _emptyReason?: "emptyReason"; - /** EnumDescriptorProto reservedRange */ - reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null); + /** + * Creates a new ResponseMetaData instance using the specified properties. + * @param [properties] Properties to set + * @returns ResponseMetaData instance + */ + public static create(properties?: google.analytics.data.v1beta.IResponseMetaData): google.analytics.data.v1beta.ResponseMetaData; - /** EnumDescriptorProto reservedName */ - reservedName?: (string[]|null); - } + /** + * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. + * @param message ResponseMetaData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; - /** Represents an EnumDescriptorProto. */ - class EnumDescriptorProto implements IEnumDescriptorProto { + /** + * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. + * @param message ResponseMetaData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IResponseMetaData, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Constructs a new EnumDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IEnumDescriptorProto); + /** + * Decodes a ResponseMetaData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData; - /** EnumDescriptorProto name. */ - public name: string; + /** + * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData; - /** EnumDescriptorProto value. */ - public value: google.protobuf.IEnumValueDescriptorProto[]; + /** + * Verifies a ResponseMetaData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** EnumDescriptorProto options. */ - public options?: (google.protobuf.IEnumOptions|null); + /** + * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResponseMetaData + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData; - /** EnumDescriptorProto reservedRange. */ - public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[]; + /** + * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * @param message ResponseMetaData + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.ResponseMetaData, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** EnumDescriptorProto reservedName. */ - public reservedName: string[]; + /** + * Converts this ResponseMetaData to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a new EnumDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns EnumDescriptorProto instance - */ - public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto; + namespace ResponseMetaData { - /** - * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. - * @param message EnumDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** Properties of a SchemaRestrictionResponse. */ + interface ISchemaRestrictionResponse { - /** - * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. - * @param message EnumDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** SchemaRestrictionResponse activeMetricRestrictions */ + activeMetricRestrictions?: (google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]|null); + } + + /** Represents a SchemaRestrictionResponse. */ + class SchemaRestrictionResponse implements ISchemaRestrictionResponse { - /** - * Decodes an EnumDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns EnumDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto; + /** + * Constructs a new SchemaRestrictionResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse); - /** - * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns EnumDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto; + /** SchemaRestrictionResponse activeMetricRestrictions. */ + public activeMetricRestrictions: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction[]; - /** - * Verifies an EnumDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a new SchemaRestrictionResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SchemaRestrictionResponse instance + */ + public static create(properties?: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; - /** - * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns EnumDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto; + /** + * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @param message SchemaRestrictionResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. - * @param message EnumDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @param message SchemaRestrictionResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this EnumDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; - namespace EnumDescriptorProto { + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; - /** Properties of an EnumReservedRange. */ - interface IEnumReservedRange { + /** + * Verifies a SchemaRestrictionResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** EnumReservedRange start */ - start?: (number|null); + /** + * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SchemaRestrictionResponse + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse; - /** EnumReservedRange end */ - end?: (number|null); - } + /** + * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. + * @param message SchemaRestrictionResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Represents an EnumReservedRange. */ - class EnumReservedRange implements IEnumReservedRange { + /** + * Converts this SchemaRestrictionResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Constructs a new EnumReservedRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange); + namespace SchemaRestrictionResponse { - /** EnumReservedRange start. */ - public start: number; + /** Properties of an ActiveMetricRestriction. */ + interface IActiveMetricRestriction { - /** EnumReservedRange end. */ - public end: number; + /** ActiveMetricRestriction metricName */ + metricName?: (string|null); - /** - * Creates a new EnumReservedRange instance using the specified properties. - * @param [properties] Properties to set - * @returns EnumReservedRange instance - */ - public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange; + /** ActiveMetricRestriction restrictedMetricTypes */ + restrictedMetricTypes?: (google.analytics.data.v1beta.RestrictedMetricType[]|null); + } - /** - * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. - * @param message EnumReservedRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents an ActiveMetricRestriction. */ + class ActiveMetricRestriction implements IActiveMetricRestriction { - /** - * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. - * @param message EnumReservedRange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new ActiveMetricRestriction. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction); - /** - * Decodes an EnumReservedRange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns EnumReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange; + /** ActiveMetricRestriction metricName. */ + public metricName?: (string|null); - /** - * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns EnumReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange; + /** ActiveMetricRestriction restrictedMetricTypes. */ + public restrictedMetricTypes: google.analytics.data.v1beta.RestrictedMetricType[]; - /** - * Verifies an EnumReservedRange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** ActiveMetricRestriction _metricName. */ + public _metricName?: "metricName"; - /** - * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns EnumReservedRange - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange; + /** + * Creates a new ActiveMetricRestriction instance using the specified properties. + * @param [properties] Properties to set + * @returns ActiveMetricRestriction instance + */ + public static create(properties?: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; - /** - * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. - * @param message EnumReservedRange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @param message ActiveMetricRestriction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this EnumReservedRange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** + * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @param message ActiveMetricRestriction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction, writer?: $protobuf.Writer): $protobuf.Writer; - /** Properties of an EnumValueDescriptorProto. */ - interface IEnumValueDescriptorProto { + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; - /** EnumValueDescriptorProto name */ - name?: (string|null); + /** + * Verifies an ActiveMetricRestriction message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** EnumValueDescriptorProto number */ - number?: (number|null); + /** + * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ActiveMetricRestriction + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction; - /** EnumValueDescriptorProto options */ - options?: (google.protobuf.IEnumValueOptions|null); - } + /** + * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. + * @param message ActiveMetricRestriction + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Represents an EnumValueDescriptorProto. */ - class EnumValueDescriptorProto implements IEnumValueDescriptorProto { + /** + * Converts this ActiveMetricRestriction to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + } + } - /** - * Constructs a new EnumValueDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IEnumValueDescriptorProto); + /** Properties of a DimensionHeader. */ + interface IDimensionHeader { - /** EnumValueDescriptorProto name. */ - public name: string; + /** DimensionHeader name */ + name?: (string|null); + } - /** EnumValueDescriptorProto number. */ - public number: number; + /** Represents a DimensionHeader. */ + class DimensionHeader implements IDimensionHeader { - /** EnumValueDescriptorProto options. */ - public options?: (google.protobuf.IEnumValueOptions|null); + /** + * Constructs a new DimensionHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IDimensionHeader); - /** - * Creates a new EnumValueDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns EnumValueDescriptorProto instance - */ - public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto; + /** DimensionHeader name. */ + public name: string; - /** - * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. - * @param message EnumValueDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new DimensionHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionHeader instance + */ + public static create(properties?: google.analytics.data.v1beta.IDimensionHeader): google.analytics.data.v1beta.DimensionHeader; - /** - * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. - * @param message EnumValueDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns EnumValueDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto; + /** + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * @param message DimensionHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns EnumValueDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto; + /** + * Decodes a DimensionHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionHeader; - /** - * Verifies an EnumValueDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionHeader; - /** - * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns EnumValueDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto; + /** + * Verifies a DimensionHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. - * @param message EnumValueDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionHeader + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionHeader; - /** - * Converts this EnumValueDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * @param message DimensionHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Properties of a ServiceDescriptorProto. */ - interface IServiceDescriptorProto { + /** + * Converts this DimensionHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** ServiceDescriptorProto name */ - name?: (string|null); + /** Properties of a MetricHeader. */ + interface IMetricHeader { - /** ServiceDescriptorProto method */ - method?: (google.protobuf.IMethodDescriptorProto[]|null); + /** MetricHeader name */ + name?: (string|null); - /** ServiceDescriptorProto options */ - options?: (google.protobuf.IServiceOptions|null); - } + /** MetricHeader type */ + type?: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType|null); + } - /** Represents a ServiceDescriptorProto. */ - class ServiceDescriptorProto implements IServiceDescriptorProto { + /** Represents a MetricHeader. */ + class MetricHeader implements IMetricHeader { - /** - * Constructs a new ServiceDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IServiceDescriptorProto); + /** + * Constructs a new MetricHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IMetricHeader); - /** ServiceDescriptorProto name. */ - public name: string; + /** MetricHeader name. */ + public name: string; - /** ServiceDescriptorProto method. */ - public method: google.protobuf.IMethodDescriptorProto[]; + /** MetricHeader type. */ + public type: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType); - /** ServiceDescriptorProto options. */ - public options?: (google.protobuf.IServiceOptions|null); + /** + * Creates a new MetricHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricHeader instance + */ + public static create(properties?: google.analytics.data.v1beta.IMetricHeader): google.analytics.data.v1beta.MetricHeader; - /** - * Creates a new ServiceDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns ServiceDescriptorProto instance - */ - public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto; + /** + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. - * @param message ServiceDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * @param message MetricHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IMetricHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. - * @param message ServiceDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MetricHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricHeader; - /** - * Decodes a ServiceDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ServiceDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto; + /** + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricHeader; - /** - * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ServiceDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto; + /** + * Verifies a MetricHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Verifies a ServiceDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricHeader + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricHeader; - /** - * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ServiceDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto; + /** + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * @param message MetricHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.MetricHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. - * @param message ServiceDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Converts this MetricHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Converts this ServiceDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** Properties of a PivotHeader. */ + interface IPivotHeader { - /** Properties of a MethodDescriptorProto. */ - interface IMethodDescriptorProto { + /** PivotHeader pivotDimensionHeaders */ + pivotDimensionHeaders?: (google.analytics.data.v1beta.IPivotDimensionHeader[]|null); - /** MethodDescriptorProto name */ - name?: (string|null); + /** PivotHeader rowCount */ + rowCount?: (number|null); + } - /** MethodDescriptorProto inputType */ - inputType?: (string|null); + /** Represents a PivotHeader. */ + class PivotHeader implements IPivotHeader { - /** MethodDescriptorProto outputType */ - outputType?: (string|null); + /** + * Constructs a new PivotHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IPivotHeader); - /** MethodDescriptorProto options */ - options?: (google.protobuf.IMethodOptions|null); + /** PivotHeader pivotDimensionHeaders. */ + public pivotDimensionHeaders: google.analytics.data.v1beta.IPivotDimensionHeader[]; - /** MethodDescriptorProto clientStreaming */ - clientStreaming?: (boolean|null); + /** PivotHeader rowCount. */ + public rowCount: number; - /** MethodDescriptorProto serverStreaming */ - serverStreaming?: (boolean|null); - } + /** + * Creates a new PivotHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns PivotHeader instance + */ + public static create(properties?: google.analytics.data.v1beta.IPivotHeader): google.analytics.data.v1beta.PivotHeader; - /** Represents a MethodDescriptorProto. */ - class MethodDescriptorProto implements IMethodDescriptorProto { + /** + * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. + * @param message PivotHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Constructs a new MethodDescriptorProto. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IMethodDescriptorProto); + /** + * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. + * @param message PivotHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IPivotHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** MethodDescriptorProto name. */ - public name: string; + /** + * Decodes a PivotHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PivotHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PivotHeader; - /** MethodDescriptorProto inputType. */ - public inputType: string; + /** + * Decodes a PivotHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PivotHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PivotHeader; - /** MethodDescriptorProto outputType. */ - public outputType: string; + /** + * Verifies a PivotHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** MethodDescriptorProto options. */ - public options?: (google.protobuf.IMethodOptions|null); + /** + * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PivotHeader + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PivotHeader; - /** MethodDescriptorProto clientStreaming. */ - public clientStreaming: boolean; + /** + * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. + * @param message PivotHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.PivotHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** MethodDescriptorProto serverStreaming. */ - public serverStreaming: boolean; + /** + * Converts this PivotHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a new MethodDescriptorProto instance using the specified properties. - * @param [properties] Properties to set - * @returns MethodDescriptorProto instance - */ - public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto; + /** Properties of a PivotDimensionHeader. */ + interface IPivotDimensionHeader { - /** - * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. - * @param message MethodDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** PivotDimensionHeader dimensionValues */ + dimensionValues?: (google.analytics.data.v1beta.IDimensionValue[]|null); + } - /** - * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. - * @param message MethodDescriptorProto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a PivotDimensionHeader. */ + class PivotDimensionHeader implements IPivotDimensionHeader { - /** - * Decodes a MethodDescriptorProto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MethodDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto; + /** + * Constructs a new PivotDimensionHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IPivotDimensionHeader); - /** - * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MethodDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto; + /** PivotDimensionHeader dimensionValues. */ + public dimensionValues: google.analytics.data.v1beta.IDimensionValue[]; - /** - * Verifies a MethodDescriptorProto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a new PivotDimensionHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns PivotDimensionHeader instance + */ + public static create(properties?: google.analytics.data.v1beta.IPivotDimensionHeader): google.analytics.data.v1beta.PivotDimensionHeader; - /** - * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MethodDescriptorProto - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto; + /** + * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * @param message PivotDimensionHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. - * @param message MethodDescriptorProto - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * @param message PivotDimensionHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IPivotDimensionHeader, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Converts this MethodDescriptorProto to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PivotDimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PivotDimensionHeader; - /** Properties of a FileOptions. */ - interface IFileOptions { + /** + * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PivotDimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PivotDimensionHeader; - /** FileOptions javaPackage */ - javaPackage?: (string|null); + /** + * Verifies a PivotDimensionHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FileOptions javaOuterClassname */ - javaOuterClassname?: (string|null); + /** + * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PivotDimensionHeader + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PivotDimensionHeader; - /** FileOptions javaMultipleFiles */ - javaMultipleFiles?: (boolean|null); + /** + * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. + * @param message PivotDimensionHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.PivotDimensionHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FileOptions javaGenerateEqualsAndHash */ - javaGenerateEqualsAndHash?: (boolean|null); + /** + * Converts this PivotDimensionHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FileOptions javaStringCheckUtf8 */ - javaStringCheckUtf8?: (boolean|null); + /** Properties of a Row. */ + interface IRow { - /** FileOptions optimizeFor */ - optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null); + /** Row dimensionValues */ + dimensionValues?: (google.analytics.data.v1beta.IDimensionValue[]|null); - /** FileOptions goPackage */ - goPackage?: (string|null); + /** Row metricValues */ + metricValues?: (google.analytics.data.v1beta.IMetricValue[]|null); + } - /** FileOptions ccGenericServices */ - ccGenericServices?: (boolean|null); + /** Represents a Row. */ + class Row implements IRow { - /** FileOptions javaGenericServices */ - javaGenericServices?: (boolean|null); + /** + * Constructs a new Row. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IRow); - /** FileOptions pyGenericServices */ - pyGenericServices?: (boolean|null); + /** Row dimensionValues. */ + public dimensionValues: google.analytics.data.v1beta.IDimensionValue[]; - /** FileOptions phpGenericServices */ - phpGenericServices?: (boolean|null); + /** Row metricValues. */ + public metricValues: google.analytics.data.v1beta.IMetricValue[]; - /** FileOptions deprecated */ - deprecated?: (boolean|null); + /** + * Creates a new Row instance using the specified properties. + * @param [properties] Properties to set + * @returns Row instance + */ + public static create(properties?: google.analytics.data.v1beta.IRow): google.analytics.data.v1beta.Row; - /** FileOptions ccEnableArenas */ - ccEnableArenas?: (boolean|null); + /** + * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * @param message Row message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IRow, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions objcClassPrefix */ - objcClassPrefix?: (string|null); + /** + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * @param message Row message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IRow, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions csharpNamespace */ - csharpNamespace?: (string|null); + /** + * Decodes a Row message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.Row; - /** FileOptions swiftPrefix */ - swiftPrefix?: (string|null); + /** + * Decodes a Row message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.Row; - /** FileOptions phpClassPrefix */ - phpClassPrefix?: (string|null); + /** + * Verifies a Row message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FileOptions phpNamespace */ - phpNamespace?: (string|null); + /** + * Creates a Row message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Row + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.Row; - /** FileOptions phpMetadataNamespace */ - phpMetadataNamespace?: (string|null); + /** + * Creates a plain object from a Row message. Also converts values to other types if specified. + * @param message Row + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FileOptions rubyPackage */ - rubyPackage?: (string|null); + /** + * Converts this Row to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FileOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + /** Properties of a DimensionValue. */ + interface IDimensionValue { - /** FileOptions .google.api.resourceDefinition */ - ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null); - } + /** DimensionValue value */ + value?: (string|null); + } - /** Represents a FileOptions. */ - class FileOptions implements IFileOptions { + /** Represents a DimensionValue. */ + class DimensionValue implements IDimensionValue { - /** - * Constructs a new FileOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IFileOptions); + /** + * Constructs a new DimensionValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IDimensionValue); - /** FileOptions javaPackage. */ - public javaPackage: string; + /** DimensionValue value. */ + public value?: (string|null); - /** FileOptions javaOuterClassname. */ - public javaOuterClassname: string; + /** DimensionValue oneValue. */ + public oneValue?: "value"; - /** FileOptions javaMultipleFiles. */ - public javaMultipleFiles: boolean; + /** + * Creates a new DimensionValue instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionValue instance + */ + public static create(properties?: google.analytics.data.v1beta.IDimensionValue): google.analytics.data.v1beta.DimensionValue; + + /** + * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * @param message DimensionValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions javaGenerateEqualsAndHash. */ - public javaGenerateEqualsAndHash: boolean; + /** + * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * @param message DimensionValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions javaStringCheckUtf8. */ - public javaStringCheckUtf8: boolean; + /** + * Decodes a DimensionValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionValue; - /** FileOptions optimizeFor. */ - public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode); + /** + * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionValue; - /** FileOptions goPackage. */ - public goPackage: string; + /** + * Verifies a DimensionValue message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FileOptions ccGenericServices. */ - public ccGenericServices: boolean; + /** + * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionValue + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionValue; - /** FileOptions javaGenericServices. */ - public javaGenericServices: boolean; + /** + * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * @param message DimensionValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FileOptions pyGenericServices. */ - public pyGenericServices: boolean; + /** + * Converts this DimensionValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FileOptions phpGenericServices. */ - public phpGenericServices: boolean; + /** Properties of a MetricValue. */ + interface IMetricValue { - /** FileOptions deprecated. */ - public deprecated: boolean; + /** MetricValue value */ + value?: (string|null); + } - /** FileOptions ccEnableArenas. */ - public ccEnableArenas: boolean; + /** Represents a MetricValue. */ + class MetricValue implements IMetricValue { - /** FileOptions objcClassPrefix. */ - public objcClassPrefix: string; + /** + * Constructs a new MetricValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IMetricValue); - /** FileOptions csharpNamespace. */ - public csharpNamespace: string; + /** MetricValue value. */ + public value?: (string|null); - /** FileOptions swiftPrefix. */ - public swiftPrefix: string; + /** MetricValue oneValue. */ + public oneValue?: "value"; - /** FileOptions phpClassPrefix. */ - public phpClassPrefix: string; + /** + * Creates a new MetricValue instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricValue instance + */ + public static create(properties?: google.analytics.data.v1beta.IMetricValue): google.analytics.data.v1beta.MetricValue; - /** FileOptions phpNamespace. */ - public phpNamespace: string; + /** + * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * @param message MetricValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions phpMetadataNamespace. */ - public phpMetadataNamespace: string; + /** + * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * @param message MetricValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IMetricValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** FileOptions rubyPackage. */ - public rubyPackage: string; + /** + * Decodes a MetricValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricValue; - /** FileOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** + * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricValue; - /** - * Creates a new FileOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns FileOptions instance - */ - public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions; + /** + * Verifies a MetricValue message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. - * @param message FileOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricValue + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricValue; - /** - * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. - * @param message FileOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * @param message MetricValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.MetricValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Decodes a FileOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FileOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions; + /** + * Converts this MetricValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Decodes a FileOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FileOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions; + /** Properties of a NumericValue. */ + interface INumericValue { - /** - * Verifies a FileOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** NumericValue int64Value */ + int64Value?: (number|Long|string|null); - /** - * Creates a FileOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FileOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions; + /** NumericValue doubleValue */ + doubleValue?: (number|null); + } - /** - * Creates a plain object from a FileOptions message. Also converts values to other types if specified. - * @param message FileOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** Represents a NumericValue. */ + class NumericValue implements INumericValue { - /** - * Converts this FileOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Constructs a new NumericValue. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.INumericValue); - namespace FileOptions { + /** NumericValue int64Value. */ + public int64Value?: (number|Long|string|null); - /** OptimizeMode enum. */ - enum OptimizeMode { - SPEED = 1, - CODE_SIZE = 2, - LITE_RUNTIME = 3 - } - } + /** NumericValue doubleValue. */ + public doubleValue?: (number|null); - /** Properties of a MessageOptions. */ - interface IMessageOptions { + /** NumericValue oneValue. */ + public oneValue?: ("int64Value"|"doubleValue"); - /** MessageOptions messageSetWireFormat */ - messageSetWireFormat?: (boolean|null); + /** + * Creates a new NumericValue instance using the specified properties. + * @param [properties] Properties to set + * @returns NumericValue instance + */ + public static create(properties?: google.analytics.data.v1beta.INumericValue): google.analytics.data.v1beta.NumericValue; - /** MessageOptions noStandardDescriptorAccessor */ - noStandardDescriptorAccessor?: (boolean|null); + /** + * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** MessageOptions deprecated */ - deprecated?: (boolean|null); + /** + * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * @param message NumericValue message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.INumericValue, writer?: $protobuf.Writer): $protobuf.Writer; - /** MessageOptions mapEntry */ - mapEntry?: (boolean|null); + /** + * Decodes a NumericValue message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.NumericValue; - /** MessageOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + /** + * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.NumericValue; - /** MessageOptions .google.api.resource */ - ".google.api.resource"?: (google.api.IResourceDescriptor|null); - } + /** + * Verifies a NumericValue message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Represents a MessageOptions. */ - class MessageOptions implements IMessageOptions { + /** + * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NumericValue + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.NumericValue; - /** - * Constructs a new MessageOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IMessageOptions); + /** + * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * @param message NumericValue + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.NumericValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** MessageOptions messageSetWireFormat. */ - public messageSetWireFormat: boolean; + /** + * Converts this NumericValue to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** MessageOptions noStandardDescriptorAccessor. */ - public noStandardDescriptorAccessor: boolean; + /** Properties of a PropertyQuota. */ + interface IPropertyQuota { - /** MessageOptions deprecated. */ - public deprecated: boolean; + /** PropertyQuota tokensPerDay */ + tokensPerDay?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** MessageOptions mapEntry. */ - public mapEntry: boolean; + /** PropertyQuota tokensPerHour */ + tokensPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** MessageOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** PropertyQuota concurrentRequests */ + concurrentRequests?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Creates a new MessageOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns MessageOptions instance - */ - public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions; + /** PropertyQuota serverErrorsPerProjectPerHour */ + serverErrorsPerProjectPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. - * @param message MessageOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** PropertyQuota potentiallyThresholdedRequestsPerHour */ + potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); + } - /** - * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. - * @param message MessageOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** Represents a PropertyQuota. */ + class PropertyQuota implements IPropertyQuota { - /** - * Decodes a MessageOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MessageOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions; + /** + * Constructs a new PropertyQuota. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IPropertyQuota); - /** - * Decodes a MessageOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MessageOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions; + /** PropertyQuota tokensPerDay. */ + public tokensPerDay?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Verifies a MessageOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** PropertyQuota tokensPerHour. */ + public tokensPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MessageOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions; + /** PropertyQuota concurrentRequests. */ + public concurrentRequests?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. - * @param message MessageOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** PropertyQuota serverErrorsPerProjectPerHour. */ + public serverErrorsPerProjectPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** - * Converts this MessageOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** PropertyQuota potentiallyThresholdedRequestsPerHour. */ + public potentiallyThresholdedRequestsPerHour?: (google.analytics.data.v1beta.IQuotaStatus|null); - /** Properties of a FieldOptions. */ - interface IFieldOptions { + /** + * Creates a new PropertyQuota instance using the specified properties. + * @param [properties] Properties to set + * @returns PropertyQuota instance + */ + public static create(properties?: google.analytics.data.v1beta.IPropertyQuota): google.analytics.data.v1beta.PropertyQuota; - /** FieldOptions ctype */ - ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null); + /** + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; - /** FieldOptions packed */ - packed?: (boolean|null); + /** + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * @param message PropertyQuota message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IPropertyQuota, writer?: $protobuf.Writer): $protobuf.Writer; - /** FieldOptions jstype */ - jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null); + /** + * Decodes a PropertyQuota message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PropertyQuota + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.PropertyQuota; - /** FieldOptions lazy */ - lazy?: (boolean|null); + /** + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PropertyQuota + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.PropertyQuota; - /** FieldOptions deprecated */ - deprecated?: (boolean|null); + /** + * Verifies a PropertyQuota message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** FieldOptions weak */ - weak?: (boolean|null); + /** + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PropertyQuota + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.PropertyQuota; - /** FieldOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + /** + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * @param message PropertyQuota + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.PropertyQuota, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** FieldOptions .google.api.fieldBehavior */ - ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null); + /** + * Converts this PropertyQuota to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** FieldOptions .google.api.resourceReference */ - ".google.api.resourceReference"?: (google.api.IResourceReference|null); - } + /** Properties of a QuotaStatus. */ + interface IQuotaStatus { - /** Represents a FieldOptions. */ - class FieldOptions implements IFieldOptions { + /** QuotaStatus consumed */ + consumed?: (number|null); - /** - * Constructs a new FieldOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IFieldOptions); + /** QuotaStatus remaining */ + remaining?: (number|null); + } - /** FieldOptions ctype. */ - public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType); + /** Represents a QuotaStatus. */ + class QuotaStatus implements IQuotaStatus { - /** FieldOptions packed. */ - public packed: boolean; + /** + * Constructs a new QuotaStatus. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IQuotaStatus); - /** FieldOptions jstype. */ - public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType); + /** QuotaStatus consumed. */ + public consumed: number; - /** FieldOptions lazy. */ - public lazy: boolean; + /** QuotaStatus remaining. */ + public remaining: number; - /** FieldOptions deprecated. */ - public deprecated: boolean; + /** + * Creates a new QuotaStatus instance using the specified properties. + * @param [properties] Properties to set + * @returns QuotaStatus instance + */ + public static create(properties?: google.analytics.data.v1beta.IQuotaStatus): google.analytics.data.v1beta.QuotaStatus; - /** FieldOptions weak. */ - public weak: boolean; + /** + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; - /** FieldOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * @param message QuotaStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new FieldOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns FieldOptions instance - */ - public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions; + /** + * Decodes a QuotaStatus message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.QuotaStatus; - /** - * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. - * @param message FieldOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.QuotaStatus; - /** - * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. - * @param message FieldOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Verifies a QuotaStatus message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a FieldOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FieldOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions; + /** + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns QuotaStatus + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.QuotaStatus; - /** - * Decodes a FieldOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FieldOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions; + /** + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * @param message QuotaStatus + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.QuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Verifies a FieldOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Converts this QuotaStatus to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FieldOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions; + /** Properties of a DimensionMetadata. */ + interface IDimensionMetadata { - /** - * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. - * @param message FieldOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** DimensionMetadata apiName */ + apiName?: (string|null); - /** - * Converts this FieldOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** DimensionMetadata uiName */ + uiName?: (string|null); - namespace FieldOptions { + /** DimensionMetadata description */ + description?: (string|null); - /** CType enum. */ - enum CType { - STRING = 0, - CORD = 1, - STRING_PIECE = 2 - } + /** DimensionMetadata deprecatedApiNames */ + deprecatedApiNames?: (string[]|null); - /** JSType enum. */ - enum JSType { - JS_NORMAL = 0, - JS_STRING = 1, - JS_NUMBER = 2 - } - } + /** DimensionMetadata customDefinition */ + customDefinition?: (boolean|null); - /** Properties of an OneofOptions. */ - interface IOneofOptions { + /** DimensionMetadata category */ + category?: (string|null); + } - /** OneofOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - } + /** Represents a DimensionMetadata. */ + class DimensionMetadata implements IDimensionMetadata { - /** Represents an OneofOptions. */ - class OneofOptions implements IOneofOptions { + /** + * Constructs a new DimensionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IDimensionMetadata); - /** - * Constructs a new OneofOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IOneofOptions); + /** DimensionMetadata apiName. */ + public apiName: string; - /** OneofOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** DimensionMetadata uiName. */ + public uiName: string; - /** - * Creates a new OneofOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns OneofOptions instance - */ - public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions; + /** DimensionMetadata description. */ + public description: string; - /** - * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. - * @param message OneofOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** DimensionMetadata deprecatedApiNames. */ + public deprecatedApiNames: string[]; - /** - * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. - * @param message OneofOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** DimensionMetadata customDefinition. */ + public customDefinition: boolean; - /** - * Decodes an OneofOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns OneofOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions; + /** DimensionMetadata category. */ + public category: string; - /** - * Decodes an OneofOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns OneofOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions; + /** + * Creates a new DimensionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionMetadata instance + */ + public static create(properties?: google.analytics.data.v1beta.IDimensionMetadata): google.analytics.data.v1beta.DimensionMetadata; - /** - * Verifies an OneofOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * @param message DimensionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns OneofOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions; + /** + * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * @param message DimensionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. - * @param message OneofOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a DimensionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionMetadata; - /** - * Converts this OneofOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionMetadata; - /** Properties of an EnumOptions. */ - interface IEnumOptions { + /** + * Verifies a DimensionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** EnumOptions allowAlias */ - allowAlias?: (boolean|null); + /** + * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionMetadata + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionMetadata; - /** EnumOptions deprecated */ - deprecated?: (boolean|null); + /** + * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. + * @param message DimensionMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** EnumOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - } + /** + * Converts this DimensionMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Represents an EnumOptions. */ - class EnumOptions implements IEnumOptions { + /** Properties of a MetricMetadata. */ + interface IMetricMetadata { - /** - * Constructs a new EnumOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IEnumOptions); + /** MetricMetadata apiName */ + apiName?: (string|null); - /** EnumOptions allowAlias. */ - public allowAlias: boolean; + /** MetricMetadata uiName */ + uiName?: (string|null); - /** EnumOptions deprecated. */ - public deprecated: boolean; + /** MetricMetadata description */ + description?: (string|null); - /** EnumOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** MetricMetadata deprecatedApiNames */ + deprecatedApiNames?: (string[]|null); - /** - * Creates a new EnumOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns EnumOptions instance - */ - public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions; + /** MetricMetadata type */ + type?: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType|null); - /** - * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. - * @param message EnumOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** MetricMetadata expression */ + expression?: (string|null); - /** - * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. - * @param message EnumOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** MetricMetadata customDefinition */ + customDefinition?: (boolean|null); - /** - * Decodes an EnumOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns EnumOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions; + /** MetricMetadata blockedReasons */ + blockedReasons?: (google.analytics.data.v1beta.MetricMetadata.BlockedReason[]|null); - /** - * Decodes an EnumOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns EnumOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions; + /** MetricMetadata category */ + category?: (string|null); + } - /** - * Verifies an EnumOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Represents a MetricMetadata. */ + class MetricMetadata implements IMetricMetadata { - /** - * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns EnumOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions; + /** + * Constructs a new MetricMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IMetricMetadata); - /** - * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. - * @param message EnumOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** MetricMetadata apiName. */ + public apiName: string; - /** - * Converts this EnumOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** MetricMetadata uiName. */ + public uiName: string; - /** Properties of an EnumValueOptions. */ - interface IEnumValueOptions { + /** MetricMetadata description. */ + public description: string; - /** EnumValueOptions deprecated */ - deprecated?: (boolean|null); + /** MetricMetadata deprecatedApiNames. */ + public deprecatedApiNames: string[]; - /** EnumValueOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); - } + /** MetricMetadata type. */ + public type: (google.analytics.data.v1beta.MetricType|keyof typeof google.analytics.data.v1beta.MetricType); - /** Represents an EnumValueOptions. */ - class EnumValueOptions implements IEnumValueOptions { + /** MetricMetadata expression. */ + public expression: string; - /** - * Constructs a new EnumValueOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IEnumValueOptions); + /** MetricMetadata customDefinition. */ + public customDefinition: boolean; - /** EnumValueOptions deprecated. */ - public deprecated: boolean; + /** MetricMetadata blockedReasons. */ + public blockedReasons: google.analytics.data.v1beta.MetricMetadata.BlockedReason[]; + + /** MetricMetadata category. */ + public category: string; + + /** + * Creates a new MetricMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricMetadata instance + */ + public static create(properties?: google.analytics.data.v1beta.IMetricMetadata): google.analytics.data.v1beta.MetricMetadata; - /** EnumValueOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** + * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * @param message MetricMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new EnumValueOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns EnumValueOptions instance - */ - public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions; + /** + * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * @param message MetricMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IMetricMetadata, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. - * @param message EnumValueOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MetricMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricMetadata; - /** - * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. - * @param message EnumValueOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricMetadata; - /** - * Decodes an EnumValueOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns EnumValueOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions; + /** + * Verifies a MetricMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns EnumValueOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions; + /** + * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricMetadata + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricMetadata; - /** - * Verifies an EnumValueOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. + * @param message MetricMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.MetricMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns EnumValueOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions; + /** + * Converts this MetricMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. - * @param message EnumValueOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + namespace MetricMetadata { - /** - * Converts this EnumValueOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** BlockedReason enum. */ + enum BlockedReason { + BLOCKED_REASON_UNSPECIFIED = 0, + NO_REVENUE_METRICS = 1, + NO_COST_METRICS = 2 + } + } - /** Properties of a ServiceOptions. */ - interface IServiceOptions { + /** Properties of a DimensionCompatibility. */ + interface IDimensionCompatibility { - /** ServiceOptions deprecated */ - deprecated?: (boolean|null); + /** DimensionCompatibility dimensionMetadata */ + dimensionMetadata?: (google.analytics.data.v1beta.IDimensionMetadata|null); - /** ServiceOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + /** DimensionCompatibility compatibility */ + compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + } - /** ServiceOptions .google.api.defaultHost */ - ".google.api.defaultHost"?: (string|null); + /** Represents a DimensionCompatibility. */ + class DimensionCompatibility implements IDimensionCompatibility { - /** ServiceOptions .google.api.oauthScopes */ - ".google.api.oauthScopes"?: (string|null); - } + /** + * Constructs a new DimensionCompatibility. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IDimensionCompatibility); - /** Represents a ServiceOptions. */ - class ServiceOptions implements IServiceOptions { + /** DimensionCompatibility dimensionMetadata. */ + public dimensionMetadata?: (google.analytics.data.v1beta.IDimensionMetadata|null); - /** - * Constructs a new ServiceOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IServiceOptions); + /** DimensionCompatibility compatibility. */ + public compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); - /** ServiceOptions deprecated. */ - public deprecated: boolean; + /** DimensionCompatibility _dimensionMetadata. */ + public _dimensionMetadata?: "dimensionMetadata"; - /** ServiceOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** DimensionCompatibility _compatibility. */ + public _compatibility?: "compatibility"; - /** - * Creates a new ServiceOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns ServiceOptions instance - */ - public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions; + /** + * Creates a new DimensionCompatibility instance using the specified properties. + * @param [properties] Properties to set + * @returns DimensionCompatibility instance + */ + public static create(properties?: google.analytics.data.v1beta.IDimensionCompatibility): google.analytics.data.v1beta.DimensionCompatibility; - /** - * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. - * @param message ServiceOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified DimensionCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * @param message DimensionCompatibility message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IDimensionCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. - * @param message ServiceOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified DimensionCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * @param message DimensionCompatibility message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IDimensionCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes a ServiceOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ServiceOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions; + /** + * Decodes a DimensionCompatibility message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DimensionCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.DimensionCompatibility; - /** - * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ServiceOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions; + /** + * Decodes a DimensionCompatibility message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DimensionCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.DimensionCompatibility; - /** - * Verifies a ServiceOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Verifies a DimensionCompatibility message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ServiceOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions; + /** + * Creates a DimensionCompatibility message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DimensionCompatibility + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.DimensionCompatibility; - /** - * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. - * @param message ServiceOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a plain object from a DimensionCompatibility message. Also converts values to other types if specified. + * @param message DimensionCompatibility + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.DimensionCompatibility, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Converts this ServiceOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Converts this DimensionCompatibility to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** Properties of a MethodOptions. */ - interface IMethodOptions { + /** Properties of a MetricCompatibility. */ + interface IMetricCompatibility { - /** MethodOptions deprecated */ - deprecated?: (boolean|null); + /** MetricCompatibility metricMetadata */ + metricMetadata?: (google.analytics.data.v1beta.IMetricMetadata|null); - /** MethodOptions idempotencyLevel */ - idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null); + /** MetricCompatibility compatibility */ + compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); + } - /** MethodOptions uninterpretedOption */ - uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); + /** Represents a MetricCompatibility. */ + class MetricCompatibility implements IMetricCompatibility { - /** MethodOptions .google.api.http */ - ".google.api.http"?: (google.api.IHttpRule|null); + /** + * Constructs a new MetricCompatibility. + * @param [properties] Properties to set + */ + constructor(properties?: google.analytics.data.v1beta.IMetricCompatibility); - /** MethodOptions .google.api.methodSignature */ - ".google.api.methodSignature"?: (string[]|null); - } + /** MetricCompatibility metricMetadata. */ + public metricMetadata?: (google.analytics.data.v1beta.IMetricMetadata|null); - /** Represents a MethodOptions. */ - class MethodOptions implements IMethodOptions { + /** MetricCompatibility compatibility. */ + public compatibility?: (google.analytics.data.v1beta.Compatibility|keyof typeof google.analytics.data.v1beta.Compatibility|null); - /** - * Constructs a new MethodOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.IMethodOptions); + /** MetricCompatibility _metricMetadata. */ + public _metricMetadata?: "metricMetadata"; - /** MethodOptions deprecated. */ - public deprecated: boolean; + /** MetricCompatibility _compatibility. */ + public _compatibility?: "compatibility"; - /** MethodOptions idempotencyLevel. */ - public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel); + /** + * Creates a new MetricCompatibility instance using the specified properties. + * @param [properties] Properties to set + * @returns MetricCompatibility instance + */ + public static create(properties?: google.analytics.data.v1beta.IMetricCompatibility): google.analytics.data.v1beta.MetricCompatibility; - /** MethodOptions uninterpretedOption. */ - public uninterpretedOption: google.protobuf.IUninterpretedOption[]; + /** + * Encodes the specified MetricCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * @param message MetricCompatibility message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.analytics.data.v1beta.IMetricCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates a new MethodOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns MethodOptions instance - */ - public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions; + /** + * Encodes the specified MetricCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * @param message MetricCompatibility message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.analytics.data.v1beta.IMetricCompatibility, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. - * @param message MethodOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MetricCompatibility message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MetricCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.analytics.data.v1beta.MetricCompatibility; - /** - * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. - * @param message MethodOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Decodes a MetricCompatibility message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MetricCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.analytics.data.v1beta.MetricCompatibility; - /** - * Decodes a MethodOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MethodOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions; + /** + * Verifies a MetricCompatibility message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a MethodOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MethodOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions; + /** + * Creates a MetricCompatibility message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MetricCompatibility + */ + public static fromObject(object: { [k: string]: any }): google.analytics.data.v1beta.MetricCompatibility; - /** - * Verifies a MethodOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a plain object from a MetricCompatibility message. Also converts values to other types if specified. + * @param message MetricCompatibility + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.analytics.data.v1beta.MetricCompatibility, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MethodOptions - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions; + /** + * Converts this MetricCompatibility to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. - * @param message MethodOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** MetricAggregation enum. */ + enum MetricAggregation { + METRIC_AGGREGATION_UNSPECIFIED = 0, + TOTAL = 1, + MINIMUM = 5, + MAXIMUM = 6, + COUNT = 4 + } - /** - * Converts this MethodOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** MetricType enum. */ + enum MetricType { + METRIC_TYPE_UNSPECIFIED = 0, + TYPE_INTEGER = 1, + TYPE_FLOAT = 2, + TYPE_SECONDS = 4, + TYPE_MILLISECONDS = 5, + TYPE_MINUTES = 6, + TYPE_HOURS = 7, + TYPE_STANDARD = 8, + TYPE_CURRENCY = 9, + TYPE_FEET = 10, + TYPE_MILES = 11, + TYPE_METERS = 12, + TYPE_KILOMETERS = 13 + } - namespace MethodOptions { + /** RestrictedMetricType enum. */ + enum RestrictedMetricType { + RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0, + COST_DATA = 1, + REVENUE_DATA = 2 + } - /** IdempotencyLevel enum. */ - enum IdempotencyLevel { - IDEMPOTENCY_UNKNOWN = 0, - NO_SIDE_EFFECTS = 1, - IDEMPOTENT = 2 + /** Compatibility enum. */ + enum Compatibility { + COMPATIBILITY_UNSPECIFIED = 0, + COMPATIBLE = 1, + INCOMPATIBLE = 2 + } } } + } - /** Properties of an UninterpretedOption. */ - interface IUninterpretedOption { - - /** UninterpretedOption name */ - name?: (google.protobuf.UninterpretedOption.INamePart[]|null); - - /** UninterpretedOption identifierValue */ - identifierValue?: (string|null); - - /** UninterpretedOption positiveIntValue */ - positiveIntValue?: (number|Long|string|null); - - /** UninterpretedOption negativeIntValue */ - negativeIntValue?: (number|Long|string|null); + /** Namespace api. */ + namespace api { - /** UninterpretedOption doubleValue */ - doubleValue?: (number|null); + /** Properties of a Http. */ + interface IHttp { - /** UninterpretedOption stringValue */ - stringValue?: (Uint8Array|string|null); + /** Http rules */ + rules?: (google.api.IHttpRule[]|null); - /** UninterpretedOption aggregateValue */ - aggregateValue?: (string|null); + /** Http fullyDecodeReservedExpansion */ + fullyDecodeReservedExpansion?: (boolean|null); } - /** Represents an UninterpretedOption. */ - class UninterpretedOption implements IUninterpretedOption { + /** Represents a Http. */ + class Http implements IHttp { /** - * Constructs a new UninterpretedOption. + * Constructs a new Http. * @param [properties] Properties to set */ - constructor(properties?: google.protobuf.IUninterpretedOption); - - /** UninterpretedOption name. */ - public name: google.protobuf.UninterpretedOption.INamePart[]; - - /** UninterpretedOption identifierValue. */ - public identifierValue: string; - - /** UninterpretedOption positiveIntValue. */ - public positiveIntValue: (number|Long|string); - - /** UninterpretedOption negativeIntValue. */ - public negativeIntValue: (number|Long|string); - - /** UninterpretedOption doubleValue. */ - public doubleValue: number; + constructor(properties?: google.api.IHttp); - /** UninterpretedOption stringValue. */ - public stringValue: (Uint8Array|string); + /** Http rules. */ + public rules: google.api.IHttpRule[]; - /** UninterpretedOption aggregateValue. */ - public aggregateValue: string; + /** Http fullyDecodeReservedExpansion. */ + public fullyDecodeReservedExpansion: boolean; /** - * Creates a new UninterpretedOption instance using the specified properties. + * Creates a new Http instance using the specified properties. * @param [properties] Properties to set - * @returns UninterpretedOption instance + * @returns Http instance */ - public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption; + public static create(properties?: google.api.IHttp): google.api.Http; /** - * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. - * @param message UninterpretedOption message or plain object to encode + * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. - * @param message UninterpretedOption message or plain object to encode + * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an UninterpretedOption message from the specified reader or buffer. + * Decodes a Http message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns UninterpretedOption + * @returns Http * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http; /** - * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * Decodes a Http message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns UninterpretedOption + * @returns Http * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http; /** - * Verifies an UninterpretedOption message. + * Verifies a Http message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types. + * Creates a Http message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns UninterpretedOption + * @returns Http */ - public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption; + public static fromObject(object: { [k: string]: any }): google.api.Http; /** - * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. - * @param message UninterpretedOption + * Creates a plain object from a Http message. Also converts values to other types if specified. + * @param message Http * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this UninterpretedOption to JSON. + * Converts this Http to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace UninterpretedOption { + /** Properties of a HttpRule. */ + interface IHttpRule { - /** Properties of a NamePart. */ - interface INamePart { + /** HttpRule selector */ + selector?: (string|null); - /** NamePart namePart */ - namePart: string; + /** HttpRule get */ + get?: (string|null); - /** NamePart isExtension */ - isExtension: boolean; - } + /** HttpRule put */ + put?: (string|null); - /** Represents a NamePart. */ - class NamePart implements INamePart { + /** HttpRule post */ + post?: (string|null); - /** - * Constructs a new NamePart. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.UninterpretedOption.INamePart); + /** HttpRule delete */ + "delete"?: (string|null); - /** NamePart namePart. */ - public namePart: string; + /** HttpRule patch */ + patch?: (string|null); - /** NamePart isExtension. */ - public isExtension: boolean; + /** HttpRule custom */ + custom?: (google.api.ICustomHttpPattern|null); - /** - * Creates a new NamePart instance using the specified properties. - * @param [properties] Properties to set - * @returns NamePart instance - */ - public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart; + /** HttpRule body */ + body?: (string|null); - /** - * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. - * @param message NamePart message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + /** HttpRule responseBody */ + responseBody?: (string|null); - /** - * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. - * @param message NamePart message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer; + /** HttpRule additionalBindings */ + additionalBindings?: (google.api.IHttpRule[]|null); + } - /** - * Decodes a NamePart message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns NamePart - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart; + /** Represents a HttpRule. */ + class HttpRule implements IHttpRule { - /** - * Decodes a NamePart message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns NamePart - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart; + /** + * Constructs a new HttpRule. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IHttpRule); - /** - * Verifies a NamePart message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** HttpRule selector. */ + public selector: string; - /** - * Creates a NamePart message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns NamePart - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart; + /** HttpRule get. */ + public get?: (string|null); - /** - * Creates a plain object from a NamePart message. Also converts values to other types if specified. - * @param message NamePart - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** HttpRule put. */ + public put?: (string|null); - /** - * Converts this NamePart to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** HttpRule post. */ + public post?: (string|null); - /** Properties of a SourceCodeInfo. */ - interface ISourceCodeInfo { + /** HttpRule delete. */ + public delete?: (string|null); - /** SourceCodeInfo location */ - location?: (google.protobuf.SourceCodeInfo.ILocation[]|null); - } + /** HttpRule patch. */ + public patch?: (string|null); - /** Represents a SourceCodeInfo. */ - class SourceCodeInfo implements ISourceCodeInfo { + /** HttpRule custom. */ + public custom?: (google.api.ICustomHttpPattern|null); - /** - * Constructs a new SourceCodeInfo. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.ISourceCodeInfo); + /** HttpRule body. */ + public body: string; - /** SourceCodeInfo location. */ - public location: google.protobuf.SourceCodeInfo.ILocation[]; + /** HttpRule responseBody. */ + public responseBody: string; + + /** HttpRule additionalBindings. */ + public additionalBindings: google.api.IHttpRule[]; + + /** HttpRule pattern. */ + public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom"); /** - * Creates a new SourceCodeInfo instance using the specified properties. + * Creates a new HttpRule instance using the specified properties. * @param [properties] Properties to set - * @returns SourceCodeInfo instance + * @returns HttpRule instance */ - public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo; + public static create(properties?: google.api.IHttpRule): google.api.HttpRule; /** - * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. - * @param message SourceCodeInfo message or plain object to encode + * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. - * @param message SourceCodeInfo message or plain object to encode + * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SourceCodeInfo message from the specified reader or buffer. + * Decodes a HttpRule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SourceCodeInfo + * @returns HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule; /** - * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * Decodes a HttpRule message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SourceCodeInfo + * @returns HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule; /** - * Verifies a SourceCodeInfo message. + * Verifies a HttpRule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SourceCodeInfo + * @returns HttpRule */ - public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo; + public static fromObject(object: { [k: string]: any }): google.api.HttpRule; /** - * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. - * @param message SourceCodeInfo + * Creates a plain object from a HttpRule message. Also converts values to other types if specified. + * @param message HttpRule * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SourceCodeInfo to JSON. + * Converts this HttpRule to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace SourceCodeInfo { + /** Properties of a CustomHttpPattern. */ + interface ICustomHttpPattern { - /** Properties of a Location. */ - interface ILocation { + /** CustomHttpPattern kind */ + kind?: (string|null); - /** Location path */ - path?: (number[]|null); + /** CustomHttpPattern path */ + path?: (string|null); + } - /** Location span */ - span?: (number[]|null); + /** Represents a CustomHttpPattern. */ + class CustomHttpPattern implements ICustomHttpPattern { - /** Location leadingComments */ - leadingComments?: (string|null); + /** + * Constructs a new CustomHttpPattern. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.ICustomHttpPattern); - /** Location trailingComments */ - trailingComments?: (string|null); + /** CustomHttpPattern kind. */ + public kind: string; - /** Location leadingDetachedComments */ - leadingDetachedComments?: (string[]|null); - } + /** CustomHttpPattern path. */ + public path: string; - /** Represents a Location. */ - class Location implements ILocation { + /** + * Creates a new CustomHttpPattern instance using the specified properties. + * @param [properties] Properties to set + * @returns CustomHttpPattern instance + */ + public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern; - /** - * Constructs a new Location. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.SourceCodeInfo.ILocation); + /** + * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; - /** Location path. */ - public path: number[]; + /** + * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; - /** Location span. */ - public span: number[]; + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CustomHttpPattern + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern; - /** Location leadingComments. */ - public leadingComments: string; + /** + * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CustomHttpPattern + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern; - /** Location trailingComments. */ - public trailingComments: string; + /** + * Verifies a CustomHttpPattern message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Location leadingDetachedComments. */ - public leadingDetachedComments: string[]; + /** + * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CustomHttpPattern + */ + public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern; - /** - * Creates a new Location instance using the specified properties. - * @param [properties] Properties to set - * @returns Location instance - */ - public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location; + /** + * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. + * @param message CustomHttpPattern + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. - * @param message Location message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Converts this CustomHttpPattern to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } - /** - * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. - * @param message Location message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer; + /** FieldBehavior enum. */ + enum FieldBehavior { + FIELD_BEHAVIOR_UNSPECIFIED = 0, + OPTIONAL = 1, + REQUIRED = 2, + OUTPUT_ONLY = 3, + INPUT_ONLY = 4, + IMMUTABLE = 5, + UNORDERED_LIST = 6, + NON_EMPTY_DEFAULT = 7 + } - /** - * Decodes a Location message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Location - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location; + /** Properties of a ResourceDescriptor. */ + interface IResourceDescriptor { - /** - * Decodes a Location message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Location - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location; + /** ResourceDescriptor type */ + type?: (string|null); - /** - * Verifies a Location message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** ResourceDescriptor pattern */ + pattern?: (string[]|null); - /** - * Creates a Location message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Location - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location; + /** ResourceDescriptor nameField */ + nameField?: (string|null); - /** - * Creates a plain object from a Location message. Also converts values to other types if specified. - * @param message Location - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** ResourceDescriptor history */ + history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null); - /** - * Converts this Location to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - } + /** ResourceDescriptor plural */ + plural?: (string|null); - /** Properties of a GeneratedCodeInfo. */ - interface IGeneratedCodeInfo { + /** ResourceDescriptor singular */ + singular?: (string|null); - /** GeneratedCodeInfo annotation */ - annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null); + /** ResourceDescriptor style */ + style?: (google.api.ResourceDescriptor.Style[]|null); } - /** Represents a GeneratedCodeInfo. */ - class GeneratedCodeInfo implements IGeneratedCodeInfo { + /** Represents a ResourceDescriptor. */ + class ResourceDescriptor implements IResourceDescriptor { /** - * Constructs a new GeneratedCodeInfo. + * Constructs a new ResourceDescriptor. * @param [properties] Properties to set */ - constructor(properties?: google.protobuf.IGeneratedCodeInfo); + constructor(properties?: google.api.IResourceDescriptor); - /** GeneratedCodeInfo annotation. */ - public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[]; + /** ResourceDescriptor type. */ + public type: string; + + /** ResourceDescriptor pattern. */ + public pattern: string[]; + + /** ResourceDescriptor nameField. */ + public nameField: string; + + /** ResourceDescriptor history. */ + public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History); + + /** ResourceDescriptor plural. */ + public plural: string; + + /** ResourceDescriptor singular. */ + public singular: string; + + /** ResourceDescriptor style. */ + public style: google.api.ResourceDescriptor.Style[]; /** - * Creates a new GeneratedCodeInfo instance using the specified properties. + * Creates a new ResourceDescriptor instance using the specified properties. * @param [properties] Properties to set - * @returns GeneratedCodeInfo instance + * @returns ResourceDescriptor instance */ - public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo; + public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor; /** - * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. - * @param message GeneratedCodeInfo message or plain object to encode + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. - * @param message GeneratedCodeInfo message or plain object to encode + * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * Decodes a ResourceDescriptor message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns GeneratedCodeInfo + * @returns ResourceDescriptor * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor; /** - * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns GeneratedCodeInfo + * @returns ResourceDescriptor * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor; /** - * Verifies a GeneratedCodeInfo message. + * Verifies a ResourceDescriptor message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns GeneratedCodeInfo + * @returns ResourceDescriptor */ - public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo; + public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor; /** - * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. - * @param message GeneratedCodeInfo + * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. + * @param message ResourceDescriptor * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this GeneratedCodeInfo to JSON. + * Converts this ResourceDescriptor to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; } - namespace GeneratedCodeInfo { - - /** Properties of an Annotation. */ - interface IAnnotation { - - /** Annotation path */ - path?: (number[]|null); - - /** Annotation sourceFile */ - sourceFile?: (string|null); + namespace ResourceDescriptor { - /** Annotation begin */ - begin?: (number|null); + /** History enum. */ + enum History { + HISTORY_UNSPECIFIED = 0, + ORIGINALLY_SINGLE_PATTERN = 1, + FUTURE_MULTI_PATTERN = 2 + } - /** Annotation end */ - end?: (number|null); + /** Style enum. */ + enum Style { + STYLE_UNSPECIFIED = 0, + DECLARATIVE_FRIENDLY = 1 } + } - /** Represents an Annotation. */ - class Annotation implements IAnnotation { + /** Properties of a ResourceReference. */ + interface IResourceReference { - /** - * Constructs a new Annotation. - * @param [properties] Properties to set - */ - constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation); + /** ResourceReference type */ + type?: (string|null); - /** Annotation path. */ - public path: number[]; + /** ResourceReference childType */ + childType?: (string|null); + } - /** Annotation sourceFile. */ - public sourceFile: string; + /** Represents a ResourceReference. */ + class ResourceReference implements IResourceReference { - /** Annotation begin. */ - public begin: number; + /** + * Constructs a new ResourceReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IResourceReference); - /** Annotation end. */ - public end: number; + /** ResourceReference type. */ + public type: string; - /** - * Creates a new Annotation instance using the specified properties. - * @param [properties] Properties to set - * @returns Annotation instance - */ - public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation; + /** ResourceReference childType. */ + public childType: string; - /** - * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. - * @param message Annotation message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Creates a new ResourceReference instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceReference instance + */ + public static create(properties?: google.api.IResourceReference): google.api.ResourceReference; - /** - * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. - * @param message Annotation message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an Annotation message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Annotation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation; + /** + * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Decodes an Annotation message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Annotation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation; + /** + * Decodes a ResourceReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference; - /** - * Verifies an Annotation message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Decodes a ResourceReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference; - /** - * Creates an Annotation message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Annotation - */ - public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation; + /** + * Verifies a ResourceReference message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Creates a plain object from an Annotation message. Also converts values to other types if specified. - * @param message Annotation - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceReference + */ + public static fromObject(object: { [k: string]: any }): google.api.ResourceReference; - /** - * Converts this Annotation to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } + /** + * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. + * @param message ResourceReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ResourceReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; } } } diff --git a/packages/google-analytics-data/protos/protos.js b/packages/google-analytics-data/protos/protos.js index 3779acde940..0cd92d8684c 100644 --- a/packages/google-analytics-data/protos/protos.js +++ b/packages/google-analytics-data/protos/protos.js @@ -39,9372 +39,9051 @@ */ var google = {}; - google.analytics = (function() { + google.protobuf = (function() { /** - * Namespace analytics. + * Namespace protobuf. * @memberof google * @namespace */ - var analytics = {}; + var protobuf = {}; - analytics.data = (function() { + protobuf.Duration = (function() { /** - * Namespace data. - * @memberof google.analytics - * @namespace + * Properties of a Duration. + * @memberof google.protobuf + * @interface IDuration + * @property {number|Long|null} [seconds] Duration seconds + * @property {number|null} [nanos] Duration nanos */ - var data = {}; - data.v1alpha = (function() { + /** + * Constructs a new Duration. + * @memberof google.protobuf + * @classdesc Represents a Duration. + * @implements IDuration + * @constructor + * @param {google.protobuf.IDuration=} [properties] Properties to set + */ + function Duration(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Namespace v1alpha. - * @memberof google.analytics.data - * @namespace - */ - var v1alpha = {}; + /** + * Duration seconds. + * @member {number|Long} seconds + * @memberof google.protobuf.Duration + * @instance + */ + Duration.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - v1alpha.AlphaAnalyticsData = (function() { + /** + * Duration nanos. + * @member {number} nanos + * @memberof google.protobuf.Duration + * @instance + */ + Duration.prototype.nanos = 0; - /** - * Constructs a new AlphaAnalyticsData service. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents an AlphaAnalyticsData - * @extends $protobuf.rpc.Service - * @constructor - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - */ - function AlphaAnalyticsData(rpcImpl, requestDelimited, responseDelimited) { - $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); - } + /** + * Creates a new Duration instance using the specified properties. + * @function create + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration=} [properties] Properties to set + * @returns {google.protobuf.Duration} Duration instance + */ + Duration.create = function create(properties) { + return new Duration(properties); + }; - (AlphaAnalyticsData.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = AlphaAnalyticsData; + /** + * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @function encode + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration} message Duration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Duration.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds); + if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos); + return writer; + }; - /** - * Creates new AlphaAnalyticsData service using the specified rpc implementation. - * @function create - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @static - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {AlphaAnalyticsData} RPC service. Useful where requests and/or responses are streamed. - */ - AlphaAnalyticsData.create = function create(rpcImpl, requestDelimited, responseDelimited) { - return new this(rpcImpl, requestDelimited, responseDelimited); - }; + /** + * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.IDuration} message Duration message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Duration.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runReport}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef RunReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.RunReportResponse} [response] RunReportResponse - */ + /** + * Decodes a Duration message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.Duration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.Duration} Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Duration.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.seconds = reader.int64(); + break; + case 2: + message.nanos = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Calls RunReport. - * @function runReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunReportRequest} request RunReportRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.RunReportCallback} callback Node-style callback called with the error, if any, and RunReportResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.runReport = function runReport(request, callback) { - return this.rpcCall(runReport, $root.google.analytics.data.v1alpha.RunReportRequest, $root.google.analytics.data.v1alpha.RunReportResponse, request, callback); - }, "name", { value: "RunReport" }); + /** + * Decodes a Duration message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.Duration + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.Duration} Duration + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Duration.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Calls RunReport. - * @function runReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunReportRequest} request RunReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Verifies a Duration message. + * @function verify + * @memberof google.protobuf.Duration + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Duration.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high))) + return "seconds: integer|Long expected"; + if (message.nanos != null && message.hasOwnProperty("nanos")) + if (!$util.isInteger(message.nanos)) + return "nanos: integer expected"; + return null; + }; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runPivotReport}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef RunPivotReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.RunPivotReportResponse} [response] RunPivotReportResponse - */ + /** + * Creates a Duration message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.Duration + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.Duration} Duration + */ + Duration.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.Duration) + return object; + var message = new $root.google.protobuf.Duration(); + if (object.seconds != null) + if ($util.Long) + (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false; + else if (typeof object.seconds === "string") + message.seconds = parseInt(object.seconds, 10); + else if (typeof object.seconds === "number") + message.seconds = object.seconds; + else if (typeof object.seconds === "object") + message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber(); + if (object.nanos != null) + message.nanos = object.nanos | 0; + return message; + }; - /** - * Calls RunPivotReport. - * @function runPivotReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest} request RunPivotReportRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.RunPivotReportCallback} callback Node-style callback called with the error, if any, and RunPivotReportResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.runPivotReport = function runPivotReport(request, callback) { - return this.rpcCall(runPivotReport, $root.google.analytics.data.v1alpha.RunPivotReportRequest, $root.google.analytics.data.v1alpha.RunPivotReportResponse, request, callback); - }, "name", { value: "RunPivotReport" }); + /** + * Creates a plain object from a Duration message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.Duration + * @static + * @param {google.protobuf.Duration} message Duration + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Duration.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.seconds = options.longs === String ? "0" : 0; + object.nanos = 0; + } + if (message.seconds != null && message.hasOwnProperty("seconds")) + if (typeof message.seconds === "number") + object.seconds = options.longs === String ? String(message.seconds) : message.seconds; + else + object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds; + if (message.nanos != null && message.hasOwnProperty("nanos")) + object.nanos = message.nanos; + return object; + }; - /** - * Calls RunPivotReport. - * @function runPivotReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest} request RunPivotReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Converts this Duration to JSON. + * @function toJSON + * @memberof google.protobuf.Duration + * @instance + * @returns {Object.} JSON object + */ + Duration.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#batchRunReports}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef BatchRunReportsCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.BatchRunReportsResponse} [response] BatchRunReportsResponse - */ + return Duration; + })(); - /** - * Calls BatchRunReports. - * @function batchRunReports - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.BatchRunReportsCallback} callback Node-style callback called with the error, if any, and BatchRunReportsResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.batchRunReports = function batchRunReports(request, callback) { - return this.rpcCall(batchRunReports, $root.google.analytics.data.v1alpha.BatchRunReportsRequest, $root.google.analytics.data.v1alpha.BatchRunReportsResponse, request, callback); - }, "name", { value: "BatchRunReports" }); + protobuf.FileDescriptorSet = (function() { - /** - * Calls BatchRunReports. - * @function batchRunReports - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Properties of a FileDescriptorSet. + * @memberof google.protobuf + * @interface IFileDescriptorSet + * @property {Array.|null} [file] FileDescriptorSet file + */ - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#batchRunPivotReports}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef BatchRunPivotReportsCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} [response] BatchRunPivotReportsResponse - */ + /** + * Constructs a new FileDescriptorSet. + * @memberof google.protobuf + * @classdesc Represents a FileDescriptorSet. + * @implements IFileDescriptorSet + * @constructor + * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set + */ + function FileDescriptorSet(properties) { + this.file = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Calls BatchRunPivotReports. - * @function batchRunPivotReports - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.BatchRunPivotReportsCallback} callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.batchRunPivotReports = function batchRunPivotReports(request, callback) { - return this.rpcCall(batchRunPivotReports, $root.google.analytics.data.v1alpha.BatchRunPivotReportsRequest, $root.google.analytics.data.v1alpha.BatchRunPivotReportsResponse, request, callback); - }, "name", { value: "BatchRunPivotReports" }); + /** + * FileDescriptorSet file. + * @member {Array.} file + * @memberof google.protobuf.FileDescriptorSet + * @instance + */ + FileDescriptorSet.prototype.file = $util.emptyArray; - /** - * Calls BatchRunPivotReports. - * @function batchRunPivotReports - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Creates a new FileDescriptorSet instance using the specified properties. + * @function create + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet instance + */ + FileDescriptorSet.create = function create(properties) { + return new FileDescriptorSet(properties); + }; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#getMetadata}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef GetMetadataCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.Metadata} [response] Metadata - */ + /** + * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorSet.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.file != null && message.file.length) + for (var i = 0; i < message.file.length; ++i) + $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Calls GetMetadata. - * @function getMetadata - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IGetMetadataRequest} request GetMetadataRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.GetMetadataCallback} callback Node-style callback called with the error, if any, and Metadata - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.getMetadata = function getMetadata(request, callback) { - return this.rpcCall(getMetadata, $root.google.analytics.data.v1alpha.GetMetadataRequest, $root.google.analytics.data.v1alpha.Metadata, request, callback); - }, "name", { value: "GetMetadata" }); + /** + * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Calls GetMetadata. - * @function getMetadata - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IGetMetadataRequest} request GetMetadataRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorSet.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorSet(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.file && message.file.length)) + message.file = []; + message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runRealtimeReport}. - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @typedef RunRealtimeReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1alpha.RunRealtimeReportResponse} [response] RunRealtimeReportResponse - */ + /** + * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorSet.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Calls RunRealtimeReport. - * @function runRealtimeReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object - * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.RunRealtimeReportCallback} callback Node-style callback called with the error, if any, and RunRealtimeReportResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(AlphaAnalyticsData.prototype.runRealtimeReport = function runRealtimeReport(request, callback) { - return this.rpcCall(runRealtimeReport, $root.google.analytics.data.v1alpha.RunRealtimeReportRequest, $root.google.analytics.data.v1alpha.RunRealtimeReportResponse, request, callback); - }, "name", { value: "RunRealtimeReport" }); + /** + * Verifies a FileDescriptorSet message. + * @function verify + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileDescriptorSet.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.file != null && message.hasOwnProperty("file")) { + if (!Array.isArray(message.file)) + return "file: array expected"; + for (var i = 0; i < message.file.length; ++i) { + var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i]); + if (error) + return "file." + error; + } + } + return null; + }; - /** - * Calls RunRealtimeReport. - * @function runRealtimeReport - * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData - * @instance - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ + /** + * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet + */ + FileDescriptorSet.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileDescriptorSet) + return object; + var message = new $root.google.protobuf.FileDescriptorSet(); + if (object.file) { + if (!Array.isArray(object.file)) + throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected"); + message.file = []; + for (var i = 0; i < object.file.length; ++i) { + if (typeof object.file[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected"); + message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i]); + } + } + return message; + }; - return AlphaAnalyticsData; - })(); + /** + * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileDescriptorSet + * @static + * @param {google.protobuf.FileDescriptorSet} message FileDescriptorSet + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileDescriptorSet.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.file = []; + if (message.file && message.file.length) { + object.file = []; + for (var j = 0; j < message.file.length; ++j) + object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options); + } + return object; + }; - v1alpha.Metadata = (function() { + /** + * Converts this FileDescriptorSet to JSON. + * @function toJSON + * @memberof google.protobuf.FileDescriptorSet + * @instance + * @returns {Object.} JSON object + */ + FileDescriptorSet.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Properties of a Metadata. - * @memberof google.analytics.data.v1alpha - * @interface IMetadata - * @property {string|null} [name] Metadata name - * @property {Array.|null} [dimensions] Metadata dimensions - * @property {Array.|null} [metrics] Metadata metrics - */ + return FileDescriptorSet; + })(); - /** - * Constructs a new Metadata. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Metadata. - * @implements IMetadata - * @constructor - * @param {google.analytics.data.v1alpha.IMetadata=} [properties] Properties to set - */ - function Metadata(properties) { - this.dimensions = []; - this.metrics = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * Metadata name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Metadata - * @instance - */ - Metadata.prototype.name = ""; + protobuf.FileDescriptorProto = (function() { - /** - * Metadata dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1alpha.Metadata - * @instance - */ - Metadata.prototype.dimensions = $util.emptyArray; + /** + * Properties of a FileDescriptorProto. + * @memberof google.protobuf + * @interface IFileDescriptorProto + * @property {string|null} [name] FileDescriptorProto name + * @property {string|null} ["package"] FileDescriptorProto package + * @property {Array.|null} [dependency] FileDescriptorProto dependency + * @property {Array.|null} [publicDependency] FileDescriptorProto publicDependency + * @property {Array.|null} [weakDependency] FileDescriptorProto weakDependency + * @property {Array.|null} [messageType] FileDescriptorProto messageType + * @property {Array.|null} [enumType] FileDescriptorProto enumType + * @property {Array.|null} [service] FileDescriptorProto service + * @property {Array.|null} [extension] FileDescriptorProto extension + * @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options + * @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo + * @property {string|null} [syntax] FileDescriptorProto syntax + */ - /** - * Metadata metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1alpha.Metadata - * @instance - */ - Metadata.prototype.metrics = $util.emptyArray; + /** + * Constructs a new FileDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a FileDescriptorProto. + * @implements IFileDescriptorProto + * @constructor + * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set + */ + function FileDescriptorProto(properties) { + this.dependency = []; + this.publicDependency = []; + this.weakDependency = []; + this.messageType = []; + this.enumType = []; + this.service = []; + this.extension = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new Metadata instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {google.analytics.data.v1alpha.IMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Metadata} Metadata instance - */ - Metadata.create = function create(properties) { - return new Metadata(properties); - }; + /** + * FileDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.name = ""; - /** - * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {google.analytics.data.v1alpha.IMetadata} message Metadata message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Metadata.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1alpha.DimensionMetadata.encode(message.dimensions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1alpha.MetricMetadata.encode(message.metrics[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); - return writer; - }; + /** + * FileDescriptorProto package. + * @member {string} package + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype["package"] = ""; - /** - * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metadata.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {google.analytics.data.v1alpha.IMetadata} message Metadata message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Metadata.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * FileDescriptorProto dependency. + * @member {Array.} dependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.dependency = $util.emptyArray; - /** - * Decodes a Metadata message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Metadata} Metadata - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Metadata.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Metadata(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 3: - message.name = reader.string(); - break; - case 1: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1alpha.DimensionMetadata.decode(reader, reader.uint32())); - break; - case 2: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1alpha.MetricMetadata.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FileDescriptorProto publicDependency. + * @member {Array.} publicDependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.publicDependency = $util.emptyArray; - /** - * Decodes a Metadata message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Metadata} Metadata - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Metadata.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FileDescriptorProto weakDependency. + * @member {Array.} weakDependency + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.weakDependency = $util.emptyArray; - /** - * Verifies a Metadata message. - * @function verify - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Metadata.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionMetadata.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricMetadata.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - return null; - }; + /** + * FileDescriptorProto messageType. + * @member {Array.} messageType + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.messageType = $util.emptyArray; - /** - * Creates a Metadata message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Metadata} Metadata - */ - Metadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Metadata) - return object; - var message = new $root.google.analytics.data.v1alpha.Metadata(); - if (object.name != null) - message.name = String(object.name); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1alpha.Metadata.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Metadata.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1alpha.DimensionMetadata.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1alpha.Metadata.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Metadata.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1alpha.MetricMetadata.fromObject(object.metrics[i]); - } - } - return message; - }; + /** + * FileDescriptorProto enumType. + * @member {Array.} enumType + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.enumType = $util.emptyArray; - /** - * Creates a plain object from a Metadata message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Metadata - * @static - * @param {google.analytics.data.v1alpha.Metadata} message Metadata - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Metadata.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - } - if (options.defaults) - object.name = ""; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1alpha.DimensionMetadata.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1alpha.MetricMetadata.toObject(message.metrics[j], options); - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - return object; - }; + /** + * FileDescriptorProto service. + * @member {Array.} service + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.service = $util.emptyArray; - /** - * Converts this Metadata to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Metadata - * @instance - * @returns {Object.} JSON object - */ - Metadata.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FileDescriptorProto extension. + * @member {Array.} extension + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.extension = $util.emptyArray; - return Metadata; - })(); + /** + * FileDescriptorProto options. + * @member {google.protobuf.IFileOptions|null|undefined} options + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.options = null; - v1alpha.RunReportRequest = (function() { + /** + * FileDescriptorProto sourceCodeInfo. + * @member {google.protobuf.ISourceCodeInfo|null|undefined} sourceCodeInfo + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.sourceCodeInfo = null; - /** - * Properties of a RunReportRequest. - * @memberof google.analytics.data.v1alpha - * @interface IRunReportRequest - * @property {google.analytics.data.v1alpha.IEntity|null} [entity] RunReportRequest entity - * @property {Array.|null} [dimensions] RunReportRequest dimensions - * @property {Array.|null} [metrics] RunReportRequest metrics - * @property {Array.|null} [dateRanges] RunReportRequest dateRanges - * @property {number|Long|null} [offset] RunReportRequest offset - * @property {number|Long|null} [limit] RunReportRequest limit - * @property {Array.|null} [metricAggregations] RunReportRequest metricAggregations - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunReportRequest dimensionFilter - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] RunReportRequest metricFilter - * @property {Array.|null} [orderBys] RunReportRequest orderBys - * @property {string|null} [currencyCode] RunReportRequest currencyCode - * @property {google.analytics.data.v1alpha.ICohortSpec|null} [cohortSpec] RunReportRequest cohortSpec - * @property {boolean|null} [keepEmptyRows] RunReportRequest keepEmptyRows - * @property {boolean|null} [returnPropertyQuota] RunReportRequest returnPropertyQuota - */ + /** + * FileDescriptorProto syntax. + * @member {string} syntax + * @memberof google.protobuf.FileDescriptorProto + * @instance + */ + FileDescriptorProto.prototype.syntax = ""; - /** - * Constructs a new RunReportRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunReportRequest. - * @implements IRunReportRequest - * @constructor - * @param {google.analytics.data.v1alpha.IRunReportRequest=} [properties] Properties to set - */ - function RunReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.dateRanges = []; - this.metricAggregations = []; - this.orderBys = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new FileDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto instance + */ + FileDescriptorProto.create = function create(properties) { + return new FileDescriptorProto(properties); + }; - /** - * RunReportRequest entity. - * @member {google.analytics.data.v1alpha.IEntity|null|undefined} entity - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.entity = null; + /** + * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message["package"]); + if (message.dependency != null && message.dependency.length) + for (var i = 0; i < message.dependency.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]); + if (message.messageType != null && message.messageType.length) + for (var i = 0; i < message.messageType.length; ++i) + $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.enumType != null && message.enumType.length) + for (var i = 0; i < message.enumType.length; ++i) + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.service != null && message.service.length) + for (var i = 0; i < message.service.length; ++i) + $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.extension != null && message.extension.length) + for (var i = 0; i < message.extension.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) + $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.publicDependency != null && message.publicDependency.length) + for (var i = 0; i < message.publicDependency.length; ++i) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]); + if (message.weakDependency != null && message.weakDependency.length) + for (var i = 0; i < message.weakDependency.length; ++i) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]); + if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); + return writer; + }; - /** - * RunReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.dimensions = $util.emptyArray; + /** + * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * RunReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.metrics = $util.emptyArray; + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message["package"] = reader.string(); + break; + case 3: + if (!(message.dependency && message.dependency.length)) + message.dependency = []; + message.dependency.push(reader.string()); + break; + case 10: + if (!(message.publicDependency && message.publicDependency.length)) + message.publicDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.publicDependency.push(reader.int32()); + } else + message.publicDependency.push(reader.int32()); + break; + case 11: + if (!(message.weakDependency && message.weakDependency.length)) + message.weakDependency = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.weakDependency.push(reader.int32()); + } else + message.weakDependency.push(reader.int32()); + break; + case 4: + if (!(message.messageType && message.messageType.length)) + message.messageType = []; + message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.service && message.service.length)) + message.service = []; + message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); + break; + case 7: + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 8: + message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); + break; + case 9: + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); + break; + case 12: + message.syntax = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * RunReportRequest dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.dateRanges = $util.emptyArray; + /** + * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * RunReportRequest offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + /** + * Verifies a FileDescriptorProto message. + * @function verify + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message["package"] != null && message.hasOwnProperty("package")) + if (!$util.isString(message["package"])) + return "package: string expected"; + if (message.dependency != null && message.hasOwnProperty("dependency")) { + if (!Array.isArray(message.dependency)) + return "dependency: array expected"; + for (var i = 0; i < message.dependency.length; ++i) + if (!$util.isString(message.dependency[i])) + return "dependency: string[] expected"; + } + if (message.publicDependency != null && message.hasOwnProperty("publicDependency")) { + if (!Array.isArray(message.publicDependency)) + return "publicDependency: array expected"; + for (var i = 0; i < message.publicDependency.length; ++i) + if (!$util.isInteger(message.publicDependency[i])) + return "publicDependency: integer[] expected"; + } + if (message.weakDependency != null && message.hasOwnProperty("weakDependency")) { + if (!Array.isArray(message.weakDependency)) + return "weakDependency: array expected"; + for (var i = 0; i < message.weakDependency.length; ++i) + if (!$util.isInteger(message.weakDependency[i])) + return "weakDependency: integer[] expected"; + } + if (message.messageType != null && message.hasOwnProperty("messageType")) { + if (!Array.isArray(message.messageType)) + return "messageType: array expected"; + for (var i = 0; i < message.messageType.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i]); + if (error) + return "messageType." + error; + } + } + if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (!Array.isArray(message.enumType)) + return "enumType: array expected"; + for (var i = 0; i < message.enumType.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + if (error) + return "enumType." + error; + } + } + if (message.service != null && message.hasOwnProperty("service")) { + if (!Array.isArray(message.service)) + return "service: array expected"; + for (var i = 0; i < message.service.length; ++i) { + var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i]); + if (error) + return "service." + error; + } + } + if (message.extension != null && message.hasOwnProperty("extension")) { + if (!Array.isArray(message.extension)) + return "extension: array expected"; + for (var i = 0; i < message.extension.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + if (error) + return "extension." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.FileOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) { + var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo); + if (error) + return "sourceCodeInfo." + error; + } + if (message.syntax != null && message.hasOwnProperty("syntax")) + if (!$util.isString(message.syntax)) + return "syntax: string expected"; + return null; + }; - /** - * RunReportRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + /** + * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto + */ + FileDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileDescriptorProto) + return object; + var message = new $root.google.protobuf.FileDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object["package"] != null) + message["package"] = String(object["package"]); + if (object.dependency) { + if (!Array.isArray(object.dependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected"); + message.dependency = []; + for (var i = 0; i < object.dependency.length; ++i) + message.dependency[i] = String(object.dependency[i]); + } + if (object.publicDependency) { + if (!Array.isArray(object.publicDependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.publicDependency: array expected"); + message.publicDependency = []; + for (var i = 0; i < object.publicDependency.length; ++i) + message.publicDependency[i] = object.publicDependency[i] | 0; + } + if (object.weakDependency) { + if (!Array.isArray(object.weakDependency)) + throw TypeError(".google.protobuf.FileDescriptorProto.weakDependency: array expected"); + message.weakDependency = []; + for (var i = 0; i < object.weakDependency.length; ++i) + message.weakDependency[i] = object.weakDependency[i] | 0; + } + if (object.messageType) { + if (!Array.isArray(object.messageType)) + throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected"); + message.messageType = []; + for (var i = 0; i < object.messageType.length; ++i) { + if (typeof object.messageType[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected"); + message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i]); + } + } + if (object.enumType) { + if (!Array.isArray(object.enumType)) + throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected"); + message.enumType = []; + for (var i = 0; i < object.enumType.length; ++i) { + if (typeof object.enumType[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected"); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + } + } + if (object.service) { + if (!Array.isArray(object.service)) + throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected"); + message.service = []; + for (var i = 0; i < object.service.length; ++i) { + if (typeof object.service[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected"); + message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i]); + } + } + if (object.extension) { + if (!Array.isArray(object.extension)) + throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected"); + message.extension = []; + for (var i = 0; i < object.extension.length; ++i) { + if (typeof object.extension[i] !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected"); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.FileOptions.fromObject(object.options); + } + if (object.sourceCodeInfo != null) { + if (typeof object.sourceCodeInfo !== "object") + throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected"); + message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo); + } + if (object.syntax != null) + message.syntax = String(object.syntax); + return message; + }; - /** - * RunReportRequest metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.metricAggregations = $util.emptyArray; + /** + * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileDescriptorProto + * @static + * @param {google.protobuf.FileDescriptorProto} message FileDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.dependency = []; + object.messageType = []; + object.enumType = []; + object.service = []; + object.extension = []; + object.publicDependency = []; + object.weakDependency = []; + } + if (options.defaults) { + object.name = ""; + object["package"] = ""; + object.options = null; + object.sourceCodeInfo = null; + object.syntax = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message["package"] != null && message.hasOwnProperty("package")) + object["package"] = message["package"]; + if (message.dependency && message.dependency.length) { + object.dependency = []; + for (var j = 0; j < message.dependency.length; ++j) + object.dependency[j] = message.dependency[j]; + } + if (message.messageType && message.messageType.length) { + object.messageType = []; + for (var j = 0; j < message.messageType.length; ++j) + object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options); + } + if (message.enumType && message.enumType.length) { + object.enumType = []; + for (var j = 0; j < message.enumType.length; ++j) + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + } + if (message.service && message.service.length) { + object.service = []; + for (var j = 0; j < message.service.length; ++j) + object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options); + } + if (message.extension && message.extension.length) { + object.extension = []; + for (var j = 0; j < message.extension.length; ++j) + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.FileOptions.toObject(message.options, options); + if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) + object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options); + if (message.publicDependency && message.publicDependency.length) { + object.publicDependency = []; + for (var j = 0; j < message.publicDependency.length; ++j) + object.publicDependency[j] = message.publicDependency[j]; + } + if (message.weakDependency && message.weakDependency.length) { + object.weakDependency = []; + for (var j = 0; j < message.weakDependency.length; ++j) + object.weakDependency[j] = message.weakDependency[j]; + } + if (message.syntax != null && message.hasOwnProperty("syntax")) + object.syntax = message.syntax; + return object; + }; - /** - * RunReportRequest dimensionFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.dimensionFilter = null; + /** + * Converts this FileDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.FileDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + FileDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * RunReportRequest metricFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.metricFilter = null; + return FileDescriptorProto; + })(); - /** - * RunReportRequest orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.orderBys = $util.emptyArray; + protobuf.DescriptorProto = (function() { - /** - * RunReportRequest currencyCode. - * @member {string} currencyCode - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.currencyCode = ""; + /** + * Properties of a DescriptorProto. + * @memberof google.protobuf + * @interface IDescriptorProto + * @property {string|null} [name] DescriptorProto name + * @property {Array.|null} [field] DescriptorProto field + * @property {Array.|null} [extension] DescriptorProto extension + * @property {Array.|null} [nestedType] DescriptorProto nestedType + * @property {Array.|null} [enumType] DescriptorProto enumType + * @property {Array.|null} [extensionRange] DescriptorProto extensionRange + * @property {Array.|null} [oneofDecl] DescriptorProto oneofDecl + * @property {google.protobuf.IMessageOptions|null} [options] DescriptorProto options + * @property {Array.|null} [reservedRange] DescriptorProto reservedRange + * @property {Array.|null} [reservedName] DescriptorProto reservedName + */ - /** - * RunReportRequest cohortSpec. - * @member {google.analytics.data.v1alpha.ICohortSpec|null|undefined} cohortSpec - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.cohortSpec = null; + /** + * Constructs a new DescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a DescriptorProto. + * @implements IDescriptorProto + * @constructor + * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set + */ + function DescriptorProto(properties) { + this.field = []; + this.extension = []; + this.nestedType = []; + this.enumType = []; + this.extensionRange = []; + this.oneofDecl = []; + this.reservedRange = []; + this.reservedName = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RunReportRequest keepEmptyRows. - * @member {boolean} keepEmptyRows - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.keepEmptyRows = false; + /** + * DescriptorProto name. + * @member {string} name + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.name = ""; - /** - * RunReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - */ - RunReportRequest.prototype.returnPropertyQuota = false; + /** + * DescriptorProto field. + * @member {Array.} field + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.field = $util.emptyArray; - /** - * Creates a new RunReportRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest instance - */ - RunReportRequest.create = function create(properties) { - return new RunReportRequest(properties); - }; + /** + * DescriptorProto extension. + * @member {Array.} extension + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.extension = $util.emptyArray; - /** - * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunReportRequest} message RunReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunReportRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.entity != null && Object.hasOwnProperty.call(message, "entity")) - $root.google.analytics.data.v1alpha.Entity.encode(message.entity, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1alpha.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1alpha.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dateRanges != null && message.dateRanges.length) - for (var i = 0; i < message.dateRanges.length; ++i) - $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 5, wireType 0 =*/40).int64(message.offset); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 6, wireType 0 =*/48).int64(message.limit); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 7, wireType 2 =*/58).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1alpha.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 11, wireType 2 =*/90).string(message.currencyCode); - if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) - $root.google.analytics.data.v1alpha.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); - if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) - writer.uint32(/* id 13, wireType 0 =*/104).bool(message.keepEmptyRows); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 14, wireType 0 =*/112).bool(message.returnPropertyQuota); - return writer; - }; + /** + * DescriptorProto nestedType. + * @member {Array.} nestedType + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.nestedType = $util.emptyArray; - /** - * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunReportRequest} message RunReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunReportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * DescriptorProto enumType. + * @member {Array.} enumType + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.enumType = $util.emptyArray; - /** - * Decodes a RunReportRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunReportRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunReportRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.entity = $root.google.analytics.data.v1alpha.Entity.decode(reader, reader.uint32()); - break; - case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1alpha.Metric.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.dateRanges && message.dateRanges.length)) - message.dateRanges = []; - message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); - break; - case 5: - message.offset = reader.int64(); - break; - case 6: - message.limit = reader.int64(); - break; - case 7: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); - break; - case 8: - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 9: - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 10: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1alpha.OrderBy.decode(reader, reader.uint32())); - break; - case 11: - message.currencyCode = reader.string(); - break; - case 12: - message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.decode(reader, reader.uint32()); - break; - case 13: - message.keepEmptyRows = reader.bool(); - break; - case 14: - message.returnPropertyQuota = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * DescriptorProto extensionRange. + * @member {Array.} extensionRange + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.extensionRange = $util.emptyArray; - /** - * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunReportRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * DescriptorProto oneofDecl. + * @member {Array.} oneofDecl + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.oneofDecl = $util.emptyArray; - /** - * Verifies a RunReportRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunReportRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.entity != null && message.hasOwnProperty("entity")) { - var error = $root.google.analytics.data.v1alpha.Entity.verify(message.entity); - if (error) - return "entity." + error; - } - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { - if (!Array.isArray(message.dateRanges)) - return "dateRanges: array expected"; - for (var i = 0; i < message.dateRanges.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); - if (error) - return "dateRanges." + error; - } - } - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) - return "offset: integer|Long expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.metricFilter); - if (error) - return "metricFilter." + error; - } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1alpha.OrderBy.verify(message.orderBys[i]); - if (error) - return "orderBys." + error; - } - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { - var error = $root.google.analytics.data.v1alpha.CohortSpec.verify(message.cohortSpec); - if (error) - return "cohortSpec." + error; - } - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - if (typeof message.keepEmptyRows !== "boolean") - return "keepEmptyRows: boolean expected"; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; - return null; - }; + /** + * DescriptorProto options. + * @member {google.protobuf.IMessageOptions|null|undefined} options + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.options = null; - /** - * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunReportRequest} RunReportRequest - */ - RunReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunReportRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.RunReportRequest(); - if (object.entity != null) { - if (typeof object.entity !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.entity: object expected"); - message.entity = $root.google.analytics.data.v1alpha.Entity.fromObject(object.entity); - } - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1alpha.Metric.fromObject(object.metrics[i]); - } - } - if (object.dateRanges) { - if (!Array.isArray(object.dateRanges)) - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dateRanges: array expected"); - message.dateRanges = []; - for (var i = 0; i < object.dateRanges.length; ++i) { - if (typeof object.dateRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dateRanges: object expected"); - message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); - } - } - if (object.offset != null) - if ($util.Long) - (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; - else if (typeof object.offset === "string") - message.offset = parseInt(object.offset, 10); - else if (typeof object.offset === "number") - message.offset = object.offset; - else if (typeof object.offset === "object") - message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } - } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.metricFilter); - } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1alpha.OrderBy.fromObject(object.orderBys[i]); - } - } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.cohortSpec != null) { - if (typeof object.cohortSpec !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportRequest.cohortSpec: object expected"); - message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.fromObject(object.cohortSpec); - } - if (object.keepEmptyRows != null) - message.keepEmptyRows = Boolean(object.keepEmptyRows); - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); - return message; - }; + /** + * DescriptorProto reservedRange. + * @member {Array.} reservedRange + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.reservedRange = $util.emptyArray; - /** - * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @static - * @param {google.analytics.data.v1alpha.RunReportRequest} message RunReportRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunReportRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.dateRanges = []; - object.metricAggregations = []; - object.orderBys = []; - } - if (options.defaults) { - object.entity = null; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.offset = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; - object.dimensionFilter = null; - object.metricFilter = null; - object.currencyCode = ""; - object.cohortSpec = null; - object.keepEmptyRows = false; - object.returnPropertyQuota = false; - } - if (message.entity != null && message.hasOwnProperty("entity")) - object.entity = $root.google.analytics.data.v1alpha.Entity.toObject(message.entity, options); - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1alpha.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1alpha.Metric.toObject(message.metrics[j], options); - } - if (message.dateRanges && message.dateRanges.length) { - object.dateRanges = []; - for (var j = 0; j < message.dateRanges.length; ++j) - object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); - } - if (message.offset != null && message.hasOwnProperty("offset")) - if (typeof message.offset === "number") - object.offset = options.longs === String ? String(message.offset) : message.offset; - else - object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1alpha.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.metricFilter, options); - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1alpha.OrderBy.toObject(message.orderBys[j], options); - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - object.currencyCode = message.currencyCode; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) - object.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.toObject(message.cohortSpec, options); - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - object.keepEmptyRows = message.keepEmptyRows; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; - return object; - }; + /** + * DescriptorProto reservedName. + * @member {Array.} reservedName + * @memberof google.protobuf.DescriptorProto + * @instance + */ + DescriptorProto.prototype.reservedName = $util.emptyArray; - /** - * Converts this RunReportRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunReportRequest - * @instance - * @returns {Object.} JSON object - */ - RunReportRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a new DescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto} DescriptorProto instance + */ + DescriptorProto.create = function create(properties) { + return new DescriptorProto(properties); + }; - return RunReportRequest; - })(); + /** + * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.field != null && message.field.length) + for (var i = 0; i < message.field.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.nestedType != null && message.nestedType.length) + for (var i = 0; i < message.nestedType.length; ++i) + $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.enumType != null && message.enumType.length) + for (var i = 0; i < message.enumType.length; ++i) + $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.extensionRange != null && message.extensionRange.length) + for (var i = 0; i < message.extensionRange.length; ++i) + $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.extension != null && message.extension.length) + for (var i = 0; i < message.extension.length; ++i) + $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.oneofDecl != null && message.oneofDecl.length) + for (var i = 0; i < message.oneofDecl.length; ++i) + $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.reservedRange != null && message.reservedRange.length) + for (var i = 0; i < message.reservedRange.length; ++i) + $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.reservedName != null && message.reservedName.length) + for (var i = 0; i < message.reservedName.length; ++i) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]); + return writer; + }; - v1alpha.RunReportResponse = (function() { + /** + * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of a RunReportResponse. - * @memberof google.analytics.data.v1alpha - * @interface IRunReportResponse - * @property {Array.|null} [dimensionHeaders] RunReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunReportResponse metricHeaders - * @property {Array.|null} [rows] RunReportResponse rows - * @property {Array.|null} [totals] RunReportResponse totals - * @property {Array.|null} [maximums] RunReportResponse maximums - * @property {Array.|null} [minimums] RunReportResponse minimums - * @property {number|null} [rowCount] RunReportResponse rowCount - * @property {google.analytics.data.v1alpha.IResponseMetaData|null} [metadata] RunReportResponse metadata - * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunReportResponse propertyQuota - */ + /** + * Decodes a DescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto} DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.field && message.field.length)) + message.field = []; + message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.extension && message.extension.length)) + message.extension = []; + message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.nestedType && message.nestedType.length)) + message.nestedType = []; + message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.enumType && message.enumType.length)) + message.enumType = []; + message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.extensionRange && message.extensionRange.length)) + message.extensionRange = []; + message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); + break; + case 8: + if (!(message.oneofDecl && message.oneofDecl.length)) + message.oneofDecl = []; + message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); + break; + case 7: + message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); + break; + case 9: + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); + break; + case 10: + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new RunReportResponse. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunReportResponse. - * @implements IRunReportResponse - * @constructor - * @param {google.analytics.data.v1alpha.IRunReportResponse=} [properties] Properties to set - */ - function RunReportResponse(properties) { - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.totals = []; - this.maximums = []; - this.minimums = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto} DescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DescriptorProto message. + * @function verify + * @memberof google.protobuf.DescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.field != null && message.hasOwnProperty("field")) { + if (!Array.isArray(message.field)) + return "field: array expected"; + for (var i = 0; i < message.field.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i]); + if (error) + return "field." + error; + } + } + if (message.extension != null && message.hasOwnProperty("extension")) { + if (!Array.isArray(message.extension)) + return "extension: array expected"; + for (var i = 0; i < message.extension.length; ++i) { + var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); + if (error) + return "extension." + error; + } + } + if (message.nestedType != null && message.hasOwnProperty("nestedType")) { + if (!Array.isArray(message.nestedType)) + return "nestedType: array expected"; + for (var i = 0; i < message.nestedType.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i]); + if (error) + return "nestedType." + error; + } + } + if (message.enumType != null && message.hasOwnProperty("enumType")) { + if (!Array.isArray(message.enumType)) + return "enumType: array expected"; + for (var i = 0; i < message.enumType.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); + if (error) + return "enumType." + error; + } + } + if (message.extensionRange != null && message.hasOwnProperty("extensionRange")) { + if (!Array.isArray(message.extensionRange)) + return "extensionRange: array expected"; + for (var i = 0; i < message.extensionRange.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i]); + if (error) + return "extensionRange." + error; + } + } + if (message.oneofDecl != null && message.hasOwnProperty("oneofDecl")) { + if (!Array.isArray(message.oneofDecl)) + return "oneofDecl: array expected"; + for (var i = 0; i < message.oneofDecl.length; ++i) { + var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i]); + if (error) + return "oneofDecl." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.MessageOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (!Array.isArray(message.reservedRange)) + return "reservedRange: array expected"; + for (var i = 0; i < message.reservedRange.length; ++i) { + var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i]); + if (error) + return "reservedRange." + error; } + } + if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (!Array.isArray(message.reservedName)) + return "reservedName: array expected"; + for (var i = 0; i < message.reservedName.length; ++i) + if (!$util.isString(message.reservedName[i])) + return "reservedName: string[] expected"; + } + return null; + }; - /** - * RunReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.dimensionHeaders = $util.emptyArray; + /** + * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto} DescriptorProto + */ + DescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto) + return object; + var message = new $root.google.protobuf.DescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.field) { + if (!Array.isArray(object.field)) + throw TypeError(".google.protobuf.DescriptorProto.field: array expected"); + message.field = []; + for (var i = 0; i < object.field.length; ++i) { + if (typeof object.field[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.field: object expected"); + message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i]); + } + } + if (object.extension) { + if (!Array.isArray(object.extension)) + throw TypeError(".google.protobuf.DescriptorProto.extension: array expected"); + message.extension = []; + for (var i = 0; i < object.extension.length; ++i) { + if (typeof object.extension[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.extension: object expected"); + message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + } + } + if (object.nestedType) { + if (!Array.isArray(object.nestedType)) + throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected"); + message.nestedType = []; + for (var i = 0; i < object.nestedType.length; ++i) { + if (typeof object.nestedType[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected"); + message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i]); + } + } + if (object.enumType) { + if (!Array.isArray(object.enumType)) + throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected"); + message.enumType = []; + for (var i = 0; i < object.enumType.length; ++i) { + if (typeof object.enumType[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected"); + message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); + } + } + if (object.extensionRange) { + if (!Array.isArray(object.extensionRange)) + throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected"); + message.extensionRange = []; + for (var i = 0; i < object.extensionRange.length; ++i) { + if (typeof object.extensionRange[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected"); + message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i]); + } + } + if (object.oneofDecl) { + if (!Array.isArray(object.oneofDecl)) + throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected"); + message.oneofDecl = []; + for (var i = 0; i < object.oneofDecl.length; ++i) { + if (typeof object.oneofDecl[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected"); + message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.DescriptorProto.options: object expected"); + message.options = $root.google.protobuf.MessageOptions.fromObject(object.options); + } + if (object.reservedRange) { + if (!Array.isArray(object.reservedRange)) + throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected"); + message.reservedRange = []; + for (var i = 0; i < object.reservedRange.length; ++i) { + if (typeof object.reservedRange[i] !== "object") + throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected"); + message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]); + } + } + if (object.reservedName) { + if (!Array.isArray(object.reservedName)) + throw TypeError(".google.protobuf.DescriptorProto.reservedName: array expected"); + message.reservedName = []; + for (var i = 0; i < object.reservedName.length; ++i) + message.reservedName[i] = String(object.reservedName[i]); + } + return message; + }; - /** - * RunReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.metricHeaders = $util.emptyArray; + /** + * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto + * @static + * @param {google.protobuf.DescriptorProto} message DescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.field = []; + object.nestedType = []; + object.enumType = []; + object.extensionRange = []; + object.extension = []; + object.oneofDecl = []; + object.reservedRange = []; + object.reservedName = []; + } + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.field && message.field.length) { + object.field = []; + for (var j = 0; j < message.field.length; ++j) + object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options); + } + if (message.nestedType && message.nestedType.length) { + object.nestedType = []; + for (var j = 0; j < message.nestedType.length; ++j) + object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options); + } + if (message.enumType && message.enumType.length) { + object.enumType = []; + for (var j = 0; j < message.enumType.length; ++j) + object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); + } + if (message.extensionRange && message.extensionRange.length) { + object.extensionRange = []; + for (var j = 0; j < message.extensionRange.length; ++j) + object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options); + } + if (message.extension && message.extension.length) { + object.extension = []; + for (var j = 0; j < message.extension.length; ++j) + object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options); + if (message.oneofDecl && message.oneofDecl.length) { + object.oneofDecl = []; + for (var j = 0; j < message.oneofDecl.length; ++j) + object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options); + } + if (message.reservedRange && message.reservedRange.length) { + object.reservedRange = []; + for (var j = 0; j < message.reservedRange.length; ++j) + object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options); + } + if (message.reservedName && message.reservedName.length) { + object.reservedName = []; + for (var j = 0; j < message.reservedName.length; ++j) + object.reservedName[j] = message.reservedName[j]; + } + return object; + }; - /** - * RunReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.rows = $util.emptyArray; + /** + * Converts this DescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto + * @instance + * @returns {Object.} JSON object + */ + DescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * RunReportResponse totals. - * @member {Array.} totals - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.totals = $util.emptyArray; + DescriptorProto.ExtensionRange = (function() { - /** - * RunReportResponse maximums. - * @member {Array.} maximums - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.maximums = $util.emptyArray; + /** + * Properties of an ExtensionRange. + * @memberof google.protobuf.DescriptorProto + * @interface IExtensionRange + * @property {number|null} [start] ExtensionRange start + * @property {number|null} [end] ExtensionRange end + * @property {google.protobuf.IExtensionRangeOptions|null} [options] ExtensionRange options + */ - /** - * RunReportResponse minimums. - * @member {Array.} minimums - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.minimums = $util.emptyArray; + /** + * Constructs a new ExtensionRange. + * @memberof google.protobuf.DescriptorProto + * @classdesc Represents an ExtensionRange. + * @implements IExtensionRange + * @constructor + * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set + */ + function ExtensionRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RunReportResponse rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.rowCount = 0; + /** + * ExtensionRange start. + * @member {number} start + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.start = 0; - /** - * RunReportResponse metadata. - * @member {google.analytics.data.v1alpha.IResponseMetaData|null|undefined} metadata - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.metadata = null; + /** + * ExtensionRange end. + * @member {number} end + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.end = 0; - /** - * RunReportResponse propertyQuota. - * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - */ - RunReportResponse.prototype.propertyQuota = null; + /** + * ExtensionRange options. + * @member {google.protobuf.IExtensionRangeOptions|null|undefined} options + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + */ + ExtensionRange.prototype.options = null; - /** - * Creates a new RunReportResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse instance - */ - RunReportResponse.create = function create(properties) { - return new RunReportResponse(properties); - }; + /** + * Creates a new ExtensionRange instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange instance + */ + ExtensionRange.create = function create(properties) { + return new ExtensionRange(properties); + }; - /** - * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunReportResponse} message RunReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunReportResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.analytics.data.v1alpha.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.totals != null && message.totals.length) - for (var i = 0; i < message.totals.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.totals[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.maximums != null && message.maximums.length) - for (var i = 0; i < message.maximums.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.maximums[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.minimums != null && message.minimums.length) - for (var i = 0; i < message.minimums.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.minimums[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 12, wireType 0 =*/96).int32(message.rowCount); - return writer; - }; + /** + * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && Object.hasOwnProperty.call(message, "start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && Object.hasOwnProperty.call(message, "end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunReportResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunReportResponse} message RunReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunReportResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a RunReportResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunReportResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunReportResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 11: - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); - break; - case 1: - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); - break; - case 2: - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 8: - if (!(message.totals && message.totals.length)) - message.totals = []; - message.totals.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 9: - if (!(message.maximums && message.maximums.length)) - message.maximums = []; - message.maximums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 10: - if (!(message.minimums && message.minimums.length)) - message.minimums = []; - message.minimums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 12: - message.rowCount = reader.int32(); - break; - case 6: - message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.decode(reader, reader.uint32()); - break; - case 7: - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } + /** + * Decodes an ExtensionRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + case 3: + message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } - return message; - }; - - /** - * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunReportResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + return message; + }; - /** - * Verifies a RunReportResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunReportResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - if (message.rows != null && message.hasOwnProperty("rows")) { - if (!Array.isArray(message.rows)) - return "rows: array expected"; - for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.rows[i]); - if (error) - return "rows." + error; - } - } - if (message.totals != null && message.hasOwnProperty("totals")) { - if (!Array.isArray(message.totals)) - return "totals: array expected"; - for (var i = 0; i < message.totals.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.totals[i]); - if (error) - return "totals." + error; - } - } - if (message.maximums != null && message.hasOwnProperty("maximums")) { - if (!Array.isArray(message.maximums)) - return "maximums: array expected"; - for (var i = 0; i < message.maximums.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.maximums[i]); - if (error) - return "maximums." + error; - } - } - if (message.minimums != null && message.hasOwnProperty("minimums")) { - if (!Array.isArray(message.minimums)) - return "minimums: array expected"; - for (var i = 0; i < message.minimums.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.minimums[i]); - if (error) - return "minimums." + error; - } - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.analytics.data.v1alpha.ResponseMetaData.verify(message.metadata); - if (error) - return "metadata." + error; - } - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); - if (error) - return "propertyQuota." + error; - } - return null; - }; + /** + * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunReportResponse} RunReportResponse - */ - RunReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunReportResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.RunReportResponse(); - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } - } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); - } - } - if (object.totals) { - if (!Array.isArray(object.totals)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.totals: array expected"); - message.totals = []; - for (var i = 0; i < object.totals.length; ++i) { - if (typeof object.totals[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.totals: object expected"); - message.totals[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.totals[i]); - } - } - if (object.maximums) { - if (!Array.isArray(object.maximums)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.maximums: array expected"); - message.maximums = []; - for (var i = 0; i < object.maximums.length; ++i) { - if (typeof object.maximums[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.maximums: object expected"); - message.maximums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.maximums[i]); - } - } - if (object.minimums) { - if (!Array.isArray(object.minimums)) - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.minimums: array expected"); - message.minimums = []; - for (var i = 0; i < object.minimums.length; ++i) { - if (typeof object.minimums[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.minimums: object expected"); - message.minimums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.minimums[i]); - } - } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.metadata: object expected"); - message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.fromObject(object.metadata); - } - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); - } - return message; - }; + /** + * Verifies an ExtensionRange message. + * @function verify + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExtensionRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; - /** - * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @static - * @param {google.analytics.data.v1alpha.RunReportResponse} message RunReportResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunReportResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.metricHeaders = []; - object.rows = []; - object.totals = []; - object.maximums = []; - object.minimums = []; - object.dimensionHeaders = []; - } - if (options.defaults) { - object.metadata = null; - object.propertyQuota = null; - object.rowCount = 0; - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.toObject(message.metadata, options); - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); - if (message.totals && message.totals.length) { - object.totals = []; - for (var j = 0; j < message.totals.length; ++j) - object.totals[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.totals[j], options); - } - if (message.maximums && message.maximums.length) { - object.maximums = []; - for (var j = 0; j < message.maximums.length; ++j) - object.maximums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.maximums[j], options); - } - if (message.minimums && message.minimums.length) { - object.minimums = []; - for (var j = 0; j < message.minimums.length; ++j) - object.minimums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.minimums[j], options); - } - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; + /** + * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange + */ + ExtensionRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange) return object; - }; + var message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected"); + message.options = $root.google.protobuf.ExtensionRangeOptions.fromObject(object.options); + } + return message; + }; - /** - * Converts this RunReportResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunReportResponse - * @instance - * @returns {Object.} JSON object - */ - RunReportResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @static + * @param {google.protobuf.DescriptorProto.ExtensionRange} message ExtensionRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExtensionRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + object.options = null; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.ExtensionRangeOptions.toObject(message.options, options); + return object; + }; - return RunReportResponse; - })(); + /** + * Converts this ExtensionRange to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto.ExtensionRange + * @instance + * @returns {Object.} JSON object + */ + ExtensionRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - v1alpha.RunPivotReportRequest = (function() { + return ExtensionRange; + })(); - /** - * Properties of a RunPivotReportRequest. - * @memberof google.analytics.data.v1alpha - * @interface IRunPivotReportRequest - * @property {google.analytics.data.v1alpha.IEntity|null} [entity] RunPivotReportRequest entity - * @property {Array.|null} [dimensions] RunPivotReportRequest dimensions - * @property {Array.|null} [metrics] RunPivotReportRequest metrics - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunPivotReportRequest dimensionFilter - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] RunPivotReportRequest metricFilter - * @property {Array.|null} [pivots] RunPivotReportRequest pivots - * @property {Array.|null} [dateRanges] RunPivotReportRequest dateRanges - * @property {string|null} [currencyCode] RunPivotReportRequest currencyCode - * @property {google.analytics.data.v1alpha.ICohortSpec|null} [cohortSpec] RunPivotReportRequest cohortSpec - * @property {boolean|null} [keepEmptyRows] RunPivotReportRequest keepEmptyRows - * @property {boolean|null} [returnPropertyQuota] RunPivotReportRequest returnPropertyQuota - */ + DescriptorProto.ReservedRange = (function() { - /** - * Constructs a new RunPivotReportRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunPivotReportRequest. - * @implements IRunPivotReportRequest - * @constructor - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest=} [properties] Properties to set - */ - function RunPivotReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.pivots = []; - this.dateRanges = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a ReservedRange. + * @memberof google.protobuf.DescriptorProto + * @interface IReservedRange + * @property {number|null} [start] ReservedRange start + * @property {number|null} [end] ReservedRange end + */ - /** - * RunPivotReportRequest entity. - * @member {google.analytics.data.v1alpha.IEntity|null|undefined} entity - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.entity = null; + /** + * Constructs a new ReservedRange. + * @memberof google.protobuf.DescriptorProto + * @classdesc Represents a ReservedRange. + * @implements IReservedRange + * @constructor + * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set + */ + function ReservedRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RunPivotReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.dimensions = $util.emptyArray; + /** + * ReservedRange start. + * @member {number} start + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + */ + ReservedRange.prototype.start = 0; - /** - * RunPivotReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.metrics = $util.emptyArray; + /** + * ReservedRange end. + * @member {number} end + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + */ + ReservedRange.prototype.end = 0; - /** - * RunPivotReportRequest dimensionFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.dimensionFilter = null; + /** + * Creates a new ReservedRange instance using the specified properties. + * @function create + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange instance + */ + ReservedRange.create = function create(properties) { + return new ReservedRange(properties); + }; - /** - * RunPivotReportRequest metricFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.metricFilter = null; + /** + * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReservedRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && Object.hasOwnProperty.call(message, "start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && Object.hasOwnProperty.call(message, "end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + return writer; + }; - /** - * RunPivotReportRequest pivots. - * @member {Array.} pivots - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.pivots = $util.emptyArray; + /** + * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReservedRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * RunPivotReportRequest dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.dateRanges = $util.emptyArray; - - /** - * RunPivotReportRequest currencyCode. - * @member {string} currencyCode - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.currencyCode = ""; - - /** - * RunPivotReportRequest cohortSpec. - * @member {google.analytics.data.v1alpha.ICohortSpec|null|undefined} cohortSpec - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.cohortSpec = null; + /** + * Decodes a ReservedRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReservedRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ReservedRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * RunPivotReportRequest keepEmptyRows. - * @member {boolean} keepEmptyRows - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.keepEmptyRows = false; + /** + * Decodes a ReservedRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReservedRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * RunPivotReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - */ - RunPivotReportRequest.prototype.returnPropertyQuota = false; + /** + * Verifies a ReservedRange message. + * @function verify + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ReservedRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; - /** - * Creates a new RunPivotReportRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunPivotReportRequest} RunPivotReportRequest instance - */ - RunPivotReportRequest.create = function create(properties) { - return new RunPivotReportRequest(properties); - }; + /** + * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange + */ + ReservedRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.DescriptorProto.ReservedRange) + return object; + var message = new $root.google.protobuf.DescriptorProto.ReservedRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; - /** - * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunPivotReportRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.entity != null && Object.hasOwnProperty.call(message, "entity")) - $root.google.analytics.data.v1alpha.Entity.encode(message.entity, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1alpha.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1alpha.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.pivots != null && message.pivots.length) - for (var i = 0; i < message.pivots.length; ++i) - $root.google.analytics.data.v1alpha.Pivot.encode(message.pivots[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.dateRanges != null && message.dateRanges.length) - for (var i = 0; i < message.dateRanges.length; ++i) - $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 8, wireType 2 =*/66).string(message.currencyCode); - if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) - $root.google.analytics.data.v1alpha.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) - writer.uint32(/* id 10, wireType 0 =*/80).bool(message.keepEmptyRows); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 11, wireType 0 =*/88).bool(message.returnPropertyQuota); - return writer; - }; + /** + * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @static + * @param {google.protobuf.DescriptorProto.ReservedRange} message ReservedRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ReservedRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; - /** - * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunPivotReportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Converts this ReservedRange to JSON. + * @function toJSON + * @memberof google.protobuf.DescriptorProto.ReservedRange + * @instance + * @returns {Object.} JSON object + */ + ReservedRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunPivotReportRequest} RunPivotReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunPivotReportRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunPivotReportRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.entity = $root.google.analytics.data.v1alpha.Entity.decode(reader, reader.uint32()); - break; - case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1alpha.Metric.decode(reader, reader.uint32())); - break; - case 4: - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 5: - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 6: - if (!(message.pivots && message.pivots.length)) - message.pivots = []; - message.pivots.push($root.google.analytics.data.v1alpha.Pivot.decode(reader, reader.uint32())); - break; - case 7: - if (!(message.dateRanges && message.dateRanges.length)) - message.dateRanges = []; - message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); - break; - case 8: - message.currencyCode = reader.string(); - break; - case 9: - message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.decode(reader, reader.uint32()); - break; - case 10: - message.keepEmptyRows = reader.bool(); - break; - case 11: - message.returnPropertyQuota = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return ReservedRange; + })(); - /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunPivotReportRequest} RunPivotReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunPivotReportRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + return DescriptorProto; + })(); - /** - * Verifies a RunPivotReportRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunPivotReportRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.entity != null && message.hasOwnProperty("entity")) { - var error = $root.google.analytics.data.v1alpha.Entity.verify(message.entity); - if (error) - return "entity." + error; - } - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.metricFilter); - if (error) - return "metricFilter." + error; - } - if (message.pivots != null && message.hasOwnProperty("pivots")) { - if (!Array.isArray(message.pivots)) - return "pivots: array expected"; - for (var i = 0; i < message.pivots.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Pivot.verify(message.pivots[i]); - if (error) - return "pivots." + error; - } - } - if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { - if (!Array.isArray(message.dateRanges)) - return "dateRanges: array expected"; - for (var i = 0; i < message.dateRanges.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); - if (error) - return "dateRanges." + error; - } - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { - var error = $root.google.analytics.data.v1alpha.CohortSpec.verify(message.cohortSpec); - if (error) - return "cohortSpec." + error; - } - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - if (typeof message.keepEmptyRows !== "boolean") - return "keepEmptyRows: boolean expected"; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; - return null; - }; + protobuf.ExtensionRangeOptions = (function() { - /** - * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunPivotReportRequest} RunPivotReportRequest - */ - RunPivotReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunPivotReportRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.RunPivotReportRequest(); - if (object.entity != null) { - if (typeof object.entity !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.entity: object expected"); - message.entity = $root.google.analytics.data.v1alpha.Entity.fromObject(object.entity); - } - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1alpha.Metric.fromObject(object.metrics[i]); - } - } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.metricFilter); - } - if (object.pivots) { - if (!Array.isArray(object.pivots)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.pivots: array expected"); - message.pivots = []; - for (var i = 0; i < object.pivots.length; ++i) { - if (typeof object.pivots[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.pivots: object expected"); - message.pivots[i] = $root.google.analytics.data.v1alpha.Pivot.fromObject(object.pivots[i]); - } - } - if (object.dateRanges) { - if (!Array.isArray(object.dateRanges)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.dateRanges: array expected"); - message.dateRanges = []; - for (var i = 0; i < object.dateRanges.length; ++i) { - if (typeof object.dateRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.dateRanges: object expected"); - message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); - } - } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.cohortSpec != null) { - if (typeof object.cohortSpec !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportRequest.cohortSpec: object expected"); - message.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.fromObject(object.cohortSpec); - } - if (object.keepEmptyRows != null) - message.keepEmptyRows = Boolean(object.keepEmptyRows); - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); - return message; - }; + /** + * Properties of an ExtensionRangeOptions. + * @memberof google.protobuf + * @interface IExtensionRangeOptions + * @property {Array.|null} [uninterpretedOption] ExtensionRangeOptions uninterpretedOption + */ - /** - * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @static - * @param {google.analytics.data.v1alpha.RunPivotReportRequest} message RunPivotReportRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunPivotReportRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.pivots = []; - object.dateRanges = []; - } - if (options.defaults) { - object.entity = null; - object.dimensionFilter = null; - object.metricFilter = null; - object.currencyCode = ""; - object.cohortSpec = null; - object.keepEmptyRows = false; - object.returnPropertyQuota = false; - } - if (message.entity != null && message.hasOwnProperty("entity")) - object.entity = $root.google.analytics.data.v1alpha.Entity.toObject(message.entity, options); - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1alpha.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1alpha.Metric.toObject(message.metrics[j], options); - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.metricFilter, options); - if (message.pivots && message.pivots.length) { - object.pivots = []; - for (var j = 0; j < message.pivots.length; ++j) - object.pivots[j] = $root.google.analytics.data.v1alpha.Pivot.toObject(message.pivots[j], options); - } - if (message.dateRanges && message.dateRanges.length) { - object.dateRanges = []; - for (var j = 0; j < message.dateRanges.length; ++j) - object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - object.currencyCode = message.currencyCode; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) - object.cohortSpec = $root.google.analytics.data.v1alpha.CohortSpec.toObject(message.cohortSpec, options); - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - object.keepEmptyRows = message.keepEmptyRows; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; - return object; - }; + /** + * Constructs a new ExtensionRangeOptions. + * @memberof google.protobuf + * @classdesc Represents an ExtensionRangeOptions. + * @implements IExtensionRangeOptions + * @constructor + * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set + */ + function ExtensionRangeOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Converts this RunPivotReportRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunPivotReportRequest - * @instance - * @returns {Object.} JSON object - */ - RunPivotReportRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * ExtensionRangeOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.ExtensionRangeOptions + * @instance + */ + ExtensionRangeOptions.prototype.uninterpretedOption = $util.emptyArray; - return RunPivotReportRequest; - })(); + /** + * Creates a new ExtensionRangeOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions instance + */ + ExtensionRangeOptions.create = function create(properties) { + return new ExtensionRangeOptions(properties); + }; - v1alpha.RunPivotReportResponse = (function() { + /** + * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRangeOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; - /** - * Properties of a RunPivotReportResponse. - * @memberof google.analytics.data.v1alpha - * @interface IRunPivotReportResponse - * @property {Array.|null} [pivotHeaders] RunPivotReportResponse pivotHeaders - * @property {Array.|null} [dimensionHeaders] RunPivotReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunPivotReportResponse metricHeaders - * @property {Array.|null} [rows] RunPivotReportResponse rows - * @property {Array.|null} [aggregates] RunPivotReportResponse aggregates - * @property {google.analytics.data.v1alpha.IResponseMetaData|null} [metadata] RunPivotReportResponse metadata - * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunPivotReportResponse propertyQuota - */ + /** + * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExtensionRangeOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new RunPivotReportResponse. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunPivotReportResponse. - * @implements IRunPivotReportResponse - * @constructor - * @param {google.analytics.data.v1alpha.IRunPivotReportResponse=} [properties] Properties to set - */ - function RunPivotReportResponse(properties) { - this.pivotHeaders = []; - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.aggregates = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRangeOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; } + } + return message; + }; - /** - * RunPivotReportResponse pivotHeaders. - * @member {Array.} pivotHeaders - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.pivotHeaders = $util.emptyArray; + /** + * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExtensionRangeOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * RunPivotReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.dimensionHeaders = $util.emptyArray; + /** + * Verifies an ExtensionRangeOptions message. + * @function verify + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExtensionRangeOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; - /** - * RunPivotReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.metricHeaders = $util.emptyArray; + /** + * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions + */ + ExtensionRangeOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ExtensionRangeOptions) + return object; + var message = new $root.google.protobuf.ExtensionRangeOptions(); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; - /** - * RunPivotReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.rows = $util.emptyArray; + /** + * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ExtensionRangeOptions + * @static + * @param {google.protobuf.ExtensionRangeOptions} message ExtensionRangeOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExtensionRangeOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; - /** - * RunPivotReportResponse aggregates. - * @member {Array.} aggregates - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.aggregates = $util.emptyArray; + /** + * Converts this ExtensionRangeOptions to JSON. + * @function toJSON + * @memberof google.protobuf.ExtensionRangeOptions + * @instance + * @returns {Object.} JSON object + */ + ExtensionRangeOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * RunPivotReportResponse metadata. - * @member {google.analytics.data.v1alpha.IResponseMetaData|null|undefined} metadata - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.metadata = null; + return ExtensionRangeOptions; + })(); - /** - * RunPivotReportResponse propertyQuota. - * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.propertyQuota = null; + protobuf.FieldDescriptorProto = (function() { - /** - * Creates a new RunPivotReportResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunPivotReportResponse} RunPivotReportResponse instance - */ - RunPivotReportResponse.create = function create(properties) { - return new RunPivotReportResponse(properties); - }; + /** + * Properties of a FieldDescriptorProto. + * @memberof google.protobuf + * @interface IFieldDescriptorProto + * @property {string|null} [name] FieldDescriptorProto name + * @property {number|null} [number] FieldDescriptorProto number + * @property {google.protobuf.FieldDescriptorProto.Label|null} [label] FieldDescriptorProto label + * @property {google.protobuf.FieldDescriptorProto.Type|null} [type] FieldDescriptorProto type + * @property {string|null} [typeName] FieldDescriptorProto typeName + * @property {string|null} [extendee] FieldDescriptorProto extendee + * @property {string|null} [defaultValue] FieldDescriptorProto defaultValue + * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex + * @property {string|null} [jsonName] FieldDescriptorProto jsonName + * @property {google.protobuf.IFieldOptions|null} [options] FieldDescriptorProto options + * @property {boolean|null} [proto3Optional] FieldDescriptorProto proto3Optional + */ - /** - * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunPivotReportResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.pivotHeaders != null && message.pivotHeaders.length) - for (var i = 0; i < message.pivotHeaders.length; ++i) - $root.google.analytics.data.v1alpha.PivotHeader.encode(message.pivotHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.aggregates != null && message.aggregates.length) - for (var i = 0; i < message.aggregates.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.aggregates[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.analytics.data.v1alpha.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - return writer; - }; + /** + * Constructs a new FieldDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a FieldDescriptorProto. + * @implements IFieldDescriptorProto + * @constructor + * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set + */ + function FieldDescriptorProto(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunPivotReportResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunPivotReportResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * FieldDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.name = ""; - /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunPivotReportResponse} RunPivotReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunPivotReportResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunPivotReportResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.pivotHeaders && message.pivotHeaders.length)) - message.pivotHeaders = []; - message.pivotHeaders.push($root.google.analytics.data.v1alpha.PivotHeader.decode(reader, reader.uint32())); - break; - case 7: - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); - break; - case 2: - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.aggregates && message.aggregates.length)) - message.aggregates = []; - message.aggregates.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 5: - message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.decode(reader, reader.uint32()); - break; - case 6: - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FieldDescriptorProto number. + * @member {number} number + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.number = 0; - /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunPivotReportResponse} RunPivotReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunPivotReportResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FieldDescriptorProto label. + * @member {google.protobuf.FieldDescriptorProto.Label} label + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.label = 1; - /** - * Verifies a RunPivotReportResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunPivotReportResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.pivotHeaders != null && message.hasOwnProperty("pivotHeaders")) { - if (!Array.isArray(message.pivotHeaders)) - return "pivotHeaders: array expected"; - for (var i = 0; i < message.pivotHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.PivotHeader.verify(message.pivotHeaders[i]); - if (error) - return "pivotHeaders." + error; - } - } - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - if (message.rows != null && message.hasOwnProperty("rows")) { - if (!Array.isArray(message.rows)) - return "rows: array expected"; - for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.rows[i]); - if (error) - return "rows." + error; - } - } - if (message.aggregates != null && message.hasOwnProperty("aggregates")) { - if (!Array.isArray(message.aggregates)) - return "aggregates: array expected"; - for (var i = 0; i < message.aggregates.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.aggregates[i]); - if (error) - return "aggregates." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.analytics.data.v1alpha.ResponseMetaData.verify(message.metadata); - if (error) - return "metadata." + error; - } - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); - if (error) - return "propertyQuota." + error; - } - return null; - }; + /** + * FieldDescriptorProto type. + * @member {google.protobuf.FieldDescriptorProto.Type} type + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.type = 1; - /** - * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunPivotReportResponse} RunPivotReportResponse - */ - RunPivotReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunPivotReportResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.RunPivotReportResponse(); - if (object.pivotHeaders) { - if (!Array.isArray(object.pivotHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.pivotHeaders: array expected"); - message.pivotHeaders = []; - for (var i = 0; i < object.pivotHeaders.length; ++i) { - if (typeof object.pivotHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.pivotHeaders: object expected"); - message.pivotHeaders[i] = $root.google.analytics.data.v1alpha.PivotHeader.fromObject(object.pivotHeaders[i]); - } - } - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } - } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); - } - } - if (object.aggregates) { - if (!Array.isArray(object.aggregates)) - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.aggregates: array expected"); - message.aggregates = []; - for (var i = 0; i < object.aggregates.length; ++i) { - if (typeof object.aggregates[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.aggregates: object expected"); - message.aggregates[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.aggregates[i]); - } - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.metadata: object expected"); - message.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.fromObject(object.metadata); - } - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunPivotReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); - } - return message; - }; + /** + * FieldDescriptorProto typeName. + * @member {string} typeName + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.typeName = ""; - /** - * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @static - * @param {google.analytics.data.v1alpha.RunPivotReportResponse} message RunPivotReportResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunPivotReportResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.pivotHeaders = []; - object.metricHeaders = []; - object.rows = []; - object.aggregates = []; - object.dimensionHeaders = []; - } - if (options.defaults) { - object.metadata = null; - object.propertyQuota = null; - } - if (message.pivotHeaders && message.pivotHeaders.length) { - object.pivotHeaders = []; - for (var j = 0; j < message.pivotHeaders.length; ++j) - object.pivotHeaders[j] = $root.google.analytics.data.v1alpha.PivotHeader.toObject(message.pivotHeaders[j], options); - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); - } - if (message.aggregates && message.aggregates.length) { - object.aggregates = []; - for (var j = 0; j < message.aggregates.length; ++j) - object.aggregates[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.aggregates[j], options); - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.analytics.data.v1alpha.ResponseMetaData.toObject(message.metadata, options); - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - return object; - }; - - /** - * Converts this RunPivotReportResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunPivotReportResponse - * @instance - * @returns {Object.} JSON object - */ - RunPivotReportResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return RunPivotReportResponse; - })(); - - v1alpha.BatchRunReportsRequest = (function() { - - /** - * Properties of a BatchRunReportsRequest. - * @memberof google.analytics.data.v1alpha - * @interface IBatchRunReportsRequest - * @property {google.analytics.data.v1alpha.IEntity|null} [entity] BatchRunReportsRequest entity - * @property {Array.|null} [requests] BatchRunReportsRequest requests - */ - - /** - * Constructs a new BatchRunReportsRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a BatchRunReportsRequest. - * @implements IBatchRunReportsRequest - * @constructor - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest=} [properties] Properties to set - */ - function BatchRunReportsRequest(properties) { - this.requests = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * BatchRunReportsRequest entity. - * @member {google.analytics.data.v1alpha.IEntity|null|undefined} entity - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @instance - */ - BatchRunReportsRequest.prototype.entity = null; - - /** - * BatchRunReportsRequest requests. - * @member {Array.} requests - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @instance - */ - BatchRunReportsRequest.prototype.requests = $util.emptyArray; - - /** - * Creates a new BatchRunReportsRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.BatchRunReportsRequest} BatchRunReportsRequest instance - */ - BatchRunReportsRequest.create = function create(properties) { - return new BatchRunReportsRequest(properties); - }; - - /** - * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunReportsRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.entity != null && Object.hasOwnProperty.call(message, "entity")) - $root.google.analytics.data.v1alpha.Entity.encode(message.entity, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.requests != null && message.requests.length) - for (var i = 0; i < message.requests.length; ++i) - $root.google.analytics.data.v1alpha.RunReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.BatchRunReportsRequest} BatchRunReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunReportsRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BatchRunReportsRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.entity = $root.google.analytics.data.v1alpha.Entity.decode(reader, reader.uint32()); - break; - case 2: - if (!(message.requests && message.requests.length)) - message.requests = []; - message.requests.push($root.google.analytics.data.v1alpha.RunReportRequest.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FieldDescriptorProto extendee. + * @member {string} extendee + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.extendee = ""; - /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.BatchRunReportsRequest} BatchRunReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunReportsRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FieldDescriptorProto defaultValue. + * @member {string} defaultValue + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.defaultValue = ""; - /** - * Verifies a BatchRunReportsRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BatchRunReportsRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.entity != null && message.hasOwnProperty("entity")) { - var error = $root.google.analytics.data.v1alpha.Entity.verify(message.entity); - if (error) - return "entity." + error; - } - if (message.requests != null && message.hasOwnProperty("requests")) { - if (!Array.isArray(message.requests)) - return "requests: array expected"; - for (var i = 0; i < message.requests.length; ++i) { - var error = $root.google.analytics.data.v1alpha.RunReportRequest.verify(message.requests[i]); - if (error) - return "requests." + error; - } - } - return null; - }; + /** + * FieldDescriptorProto oneofIndex. + * @member {number} oneofIndex + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.oneofIndex = 0; - /** - * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.BatchRunReportsRequest} BatchRunReportsRequest - */ - BatchRunReportsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.BatchRunReportsRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.BatchRunReportsRequest(); - if (object.entity != null) { - if (typeof object.entity !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunReportsRequest.entity: object expected"); - message.entity = $root.google.analytics.data.v1alpha.Entity.fromObject(object.entity); - } - if (object.requests) { - if (!Array.isArray(object.requests)) - throw TypeError(".google.analytics.data.v1alpha.BatchRunReportsRequest.requests: array expected"); - message.requests = []; - for (var i = 0; i < object.requests.length; ++i) { - if (typeof object.requests[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunReportsRequest.requests: object expected"); - message.requests[i] = $root.google.analytics.data.v1alpha.RunReportRequest.fromObject(object.requests[i]); - } - } - return message; - }; + /** + * FieldDescriptorProto jsonName. + * @member {string} jsonName + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.jsonName = ""; - /** - * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @static - * @param {google.analytics.data.v1alpha.BatchRunReportsRequest} message BatchRunReportsRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BatchRunReportsRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.requests = []; - if (options.defaults) - object.entity = null; - if (message.entity != null && message.hasOwnProperty("entity")) - object.entity = $root.google.analytics.data.v1alpha.Entity.toObject(message.entity, options); - if (message.requests && message.requests.length) { - object.requests = []; - for (var j = 0; j < message.requests.length; ++j) - object.requests[j] = $root.google.analytics.data.v1alpha.RunReportRequest.toObject(message.requests[j], options); - } - return object; - }; + /** + * FieldDescriptorProto options. + * @member {google.protobuf.IFieldOptions|null|undefined} options + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.options = null; - /** - * Converts this BatchRunReportsRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.BatchRunReportsRequest - * @instance - * @returns {Object.} JSON object - */ - BatchRunReportsRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FieldDescriptorProto proto3Optional. + * @member {boolean} proto3Optional + * @memberof google.protobuf.FieldDescriptorProto + * @instance + */ + FieldDescriptorProto.prototype.proto3Optional = false; - return BatchRunReportsRequest; - })(); + /** + * Creates a new FieldDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto instance + */ + FieldDescriptorProto.create = function create(properties) { + return new FieldDescriptorProto(properties); + }; - v1alpha.BatchRunReportsResponse = (function() { + /** + * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee); + if (message.number != null && Object.hasOwnProperty.call(message, "number")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number); + if (message.label != null && Object.hasOwnProperty.call(message, "label")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); + if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName); + if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); + if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName); + if (message.proto3Optional != null && Object.hasOwnProperty.call(message, "proto3Optional")) + writer.uint32(/* id 17, wireType 0 =*/136).bool(message.proto3Optional); + return writer; + }; - /** - * Properties of a BatchRunReportsResponse. - * @memberof google.analytics.data.v1alpha - * @interface IBatchRunReportsResponse - * @property {Array.|null} [reports] BatchRunReportsResponse reports - */ + /** + * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new BatchRunReportsResponse. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a BatchRunReportsResponse. - * @implements IBatchRunReportsResponse - * @constructor - * @param {google.analytics.data.v1alpha.IBatchRunReportsResponse=} [properties] Properties to set - */ - function BatchRunReportsResponse(properties) { - this.reports = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 3: + message.number = reader.int32(); + break; + case 4: + message.label = reader.int32(); + break; + case 5: + message.type = reader.int32(); + break; + case 6: + message.typeName = reader.string(); + break; + case 2: + message.extendee = reader.string(); + break; + case 7: + message.defaultValue = reader.string(); + break; + case 9: + message.oneofIndex = reader.int32(); + break; + case 10: + message.jsonName = reader.string(); + break; + case 8: + message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); + break; + case 17: + message.proto3Optional = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; } + } + return message; + }; - /** - * BatchRunReportsResponse reports. - * @member {Array.} reports - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @instance - */ - BatchRunReportsResponse.prototype.reports = $util.emptyArray; - - /** - * Creates a new BatchRunReportsResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.BatchRunReportsResponse} BatchRunReportsResponse instance - */ - BatchRunReportsResponse.create = function create(properties) { - return new BatchRunReportsResponse(properties); - }; + /** + * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunReportsResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.reports != null && message.reports.length) - for (var i = 0; i < message.reports.length; ++i) - $root.google.analytics.data.v1alpha.RunReportResponse.encode(message.reports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Verifies a FieldDescriptorProto message. + * @function verify + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.number != null && message.hasOwnProperty("number")) + if (!$util.isInteger(message.number)) + return "number: integer expected"; + if (message.label != null && message.hasOwnProperty("label")) + switch (message.label) { + default: + return "label: enum value expected"; + case 1: + case 2: + case 3: + break; + } + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + break; + } + if (message.typeName != null && message.hasOwnProperty("typeName")) + if (!$util.isString(message.typeName)) + return "typeName: string expected"; + if (message.extendee != null && message.hasOwnProperty("extendee")) + if (!$util.isString(message.extendee)) + return "extendee: string expected"; + if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + if (!$util.isString(message.defaultValue)) + return "defaultValue: string expected"; + if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + if (!$util.isInteger(message.oneofIndex)) + return "oneofIndex: integer expected"; + if (message.jsonName != null && message.hasOwnProperty("jsonName")) + if (!$util.isString(message.jsonName)) + return "jsonName: string expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.FieldOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + if (typeof message.proto3Optional !== "boolean") + return "proto3Optional: boolean expected"; + return null; + }; - /** - * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunReportsResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto + */ + FieldDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FieldDescriptorProto) + return object; + var message = new $root.google.protobuf.FieldDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.number != null) + message.number = object.number | 0; + switch (object.label) { + case "LABEL_OPTIONAL": + case 1: + message.label = 1; + break; + case "LABEL_REQUIRED": + case 2: + message.label = 2; + break; + case "LABEL_REPEATED": + case 3: + message.label = 3; + break; + } + switch (object.type) { + case "TYPE_DOUBLE": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_INT64": + case 3: + message.type = 3; + break; + case "TYPE_UINT64": + case 4: + message.type = 4; + break; + case "TYPE_INT32": + case 5: + message.type = 5; + break; + case "TYPE_FIXED64": + case 6: + message.type = 6; + break; + case "TYPE_FIXED32": + case 7: + message.type = 7; + break; + case "TYPE_BOOL": + case 8: + message.type = 8; + break; + case "TYPE_STRING": + case 9: + message.type = 9; + break; + case "TYPE_GROUP": + case 10: + message.type = 10; + break; + case "TYPE_MESSAGE": + case 11: + message.type = 11; + break; + case "TYPE_BYTES": + case 12: + message.type = 12; + break; + case "TYPE_UINT32": + case 13: + message.type = 13; + break; + case "TYPE_ENUM": + case 14: + message.type = 14; + break; + case "TYPE_SFIXED32": + case 15: + message.type = 15; + break; + case "TYPE_SFIXED64": + case 16: + message.type = 16; + break; + case "TYPE_SINT32": + case 17: + message.type = 17; + break; + case "TYPE_SINT64": + case 18: + message.type = 18; + break; + } + if (object.typeName != null) + message.typeName = String(object.typeName); + if (object.extendee != null) + message.extendee = String(object.extendee); + if (object.defaultValue != null) + message.defaultValue = String(object.defaultValue); + if (object.oneofIndex != null) + message.oneofIndex = object.oneofIndex | 0; + if (object.jsonName != null) + message.jsonName = String(object.jsonName); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.FieldOptions.fromObject(object.options); + } + if (object.proto3Optional != null) + message.proto3Optional = Boolean(object.proto3Optional); + return message; + }; - /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.BatchRunReportsResponse} BatchRunReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunReportsResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BatchRunReportsResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.reports && message.reports.length)) - message.reports = []; - message.reports.push($root.google.analytics.data.v1alpha.RunReportResponse.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldDescriptorProto + * @static + * @param {google.protobuf.FieldDescriptorProto} message FieldDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.extendee = ""; + object.number = 0; + object.label = options.enums === String ? "LABEL_OPTIONAL" : 1; + object.type = options.enums === String ? "TYPE_DOUBLE" : 1; + object.typeName = ""; + object.defaultValue = ""; + object.options = null; + object.oneofIndex = 0; + object.jsonName = ""; + object.proto3Optional = false; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.extendee != null && message.hasOwnProperty("extendee")) + object.extendee = message.extendee; + if (message.number != null && message.hasOwnProperty("number")) + object.number = message.number; + if (message.label != null && message.hasOwnProperty("label")) + object.label = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Label[message.label] : message.label; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Type[message.type] : message.type; + if (message.typeName != null && message.hasOwnProperty("typeName")) + object.typeName = message.typeName; + if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) + object.defaultValue = message.defaultValue; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options); + if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) + object.oneofIndex = message.oneofIndex; + if (message.jsonName != null && message.hasOwnProperty("jsonName")) + object.jsonName = message.jsonName; + if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) + object.proto3Optional = message.proto3Optional; + return object; + }; - /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.BatchRunReportsResponse} BatchRunReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunReportsResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Converts this FieldDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.FieldDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + FieldDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Verifies a BatchRunReportsResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BatchRunReportsResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.reports != null && message.hasOwnProperty("reports")) { - if (!Array.isArray(message.reports)) - return "reports: array expected"; - for (var i = 0; i < message.reports.length; ++i) { - var error = $root.google.analytics.data.v1alpha.RunReportResponse.verify(message.reports[i]); - if (error) - return "reports." + error; - } - } - return null; - }; + /** + * Type enum. + * @name google.protobuf.FieldDescriptorProto.Type + * @enum {number} + * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value + * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value + * @property {number} TYPE_INT64=3 TYPE_INT64 value + * @property {number} TYPE_UINT64=4 TYPE_UINT64 value + * @property {number} TYPE_INT32=5 TYPE_INT32 value + * @property {number} TYPE_FIXED64=6 TYPE_FIXED64 value + * @property {number} TYPE_FIXED32=7 TYPE_FIXED32 value + * @property {number} TYPE_BOOL=8 TYPE_BOOL value + * @property {number} TYPE_STRING=9 TYPE_STRING value + * @property {number} TYPE_GROUP=10 TYPE_GROUP value + * @property {number} TYPE_MESSAGE=11 TYPE_MESSAGE value + * @property {number} TYPE_BYTES=12 TYPE_BYTES value + * @property {number} TYPE_UINT32=13 TYPE_UINT32 value + * @property {number} TYPE_ENUM=14 TYPE_ENUM value + * @property {number} TYPE_SFIXED32=15 TYPE_SFIXED32 value + * @property {number} TYPE_SFIXED64=16 TYPE_SFIXED64 value + * @property {number} TYPE_SINT32=17 TYPE_SINT32 value + * @property {number} TYPE_SINT64=18 TYPE_SINT64 value + */ + FieldDescriptorProto.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "TYPE_DOUBLE"] = 1; + values[valuesById[2] = "TYPE_FLOAT"] = 2; + values[valuesById[3] = "TYPE_INT64"] = 3; + values[valuesById[4] = "TYPE_UINT64"] = 4; + values[valuesById[5] = "TYPE_INT32"] = 5; + values[valuesById[6] = "TYPE_FIXED64"] = 6; + values[valuesById[7] = "TYPE_FIXED32"] = 7; + values[valuesById[8] = "TYPE_BOOL"] = 8; + values[valuesById[9] = "TYPE_STRING"] = 9; + values[valuesById[10] = "TYPE_GROUP"] = 10; + values[valuesById[11] = "TYPE_MESSAGE"] = 11; + values[valuesById[12] = "TYPE_BYTES"] = 12; + values[valuesById[13] = "TYPE_UINT32"] = 13; + values[valuesById[14] = "TYPE_ENUM"] = 14; + values[valuesById[15] = "TYPE_SFIXED32"] = 15; + values[valuesById[16] = "TYPE_SFIXED64"] = 16; + values[valuesById[17] = "TYPE_SINT32"] = 17; + values[valuesById[18] = "TYPE_SINT64"] = 18; + return values; + })(); - /** - * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.BatchRunReportsResponse} BatchRunReportsResponse - */ - BatchRunReportsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.BatchRunReportsResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.BatchRunReportsResponse(); - if (object.reports) { - if (!Array.isArray(object.reports)) - throw TypeError(".google.analytics.data.v1alpha.BatchRunReportsResponse.reports: array expected"); - message.reports = []; - for (var i = 0; i < object.reports.length; ++i) { - if (typeof object.reports[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunReportsResponse.reports: object expected"); - message.reports[i] = $root.google.analytics.data.v1alpha.RunReportResponse.fromObject(object.reports[i]); - } - } - return message; - }; + /** + * Label enum. + * @name google.protobuf.FieldDescriptorProto.Label + * @enum {number} + * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value + * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value + * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value + */ + FieldDescriptorProto.Label = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "LABEL_OPTIONAL"] = 1; + values[valuesById[2] = "LABEL_REQUIRED"] = 2; + values[valuesById[3] = "LABEL_REPEATED"] = 3; + return values; + })(); - /** - * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @static - * @param {google.analytics.data.v1alpha.BatchRunReportsResponse} message BatchRunReportsResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BatchRunReportsResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.reports = []; - if (message.reports && message.reports.length) { - object.reports = []; - for (var j = 0; j < message.reports.length; ++j) - object.reports[j] = $root.google.analytics.data.v1alpha.RunReportResponse.toObject(message.reports[j], options); - } - return object; - }; + return FieldDescriptorProto; + })(); - /** - * Converts this BatchRunReportsResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.BatchRunReportsResponse - * @instance - * @returns {Object.} JSON object - */ - BatchRunReportsResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + protobuf.OneofDescriptorProto = (function() { - return BatchRunReportsResponse; - })(); + /** + * Properties of an OneofDescriptorProto. + * @memberof google.protobuf + * @interface IOneofDescriptorProto + * @property {string|null} [name] OneofDescriptorProto name + * @property {google.protobuf.IOneofOptions|null} [options] OneofDescriptorProto options + */ - v1alpha.BatchRunPivotReportsRequest = (function() { + /** + * Constructs a new OneofDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an OneofDescriptorProto. + * @implements IOneofDescriptorProto + * @constructor + * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set + */ + function OneofDescriptorProto(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Properties of a BatchRunPivotReportsRequest. - * @memberof google.analytics.data.v1alpha - * @interface IBatchRunPivotReportsRequest - * @property {google.analytics.data.v1alpha.IEntity|null} [entity] BatchRunPivotReportsRequest entity - * @property {Array.|null} [requests] BatchRunPivotReportsRequest requests - */ + /** + * OneofDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.OneofDescriptorProto + * @instance + */ + OneofDescriptorProto.prototype.name = ""; - /** - * Constructs a new BatchRunPivotReportsRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a BatchRunPivotReportsRequest. - * @implements IBatchRunPivotReportsRequest - * @constructor - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest=} [properties] Properties to set - */ - function BatchRunPivotReportsRequest(properties) { - this.requests = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * OneofDescriptorProto options. + * @member {google.protobuf.IOneofOptions|null|undefined} options + * @memberof google.protobuf.OneofDescriptorProto + * @instance + */ + OneofDescriptorProto.prototype.options = null; - /** - * BatchRunPivotReportsRequest entity. - * @member {google.analytics.data.v1alpha.IEntity|null|undefined} entity - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @instance - */ - BatchRunPivotReportsRequest.prototype.entity = null; + /** + * Creates a new OneofDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto instance + */ + OneofDescriptorProto.create = function create(properties) { + return new OneofDescriptorProto(properties); + }; - /** - * BatchRunPivotReportsRequest requests. - * @member {Array.} requests - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @instance - */ - BatchRunPivotReportsRequest.prototype.requests = $util.emptyArray; + /** + * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Creates a new BatchRunPivotReportsRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest instance - */ - BatchRunPivotReportsRequest.create = function create(properties) { - return new BatchRunPivotReportsRequest(properties); - }; + /** + * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunPivotReportsRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.entity != null && Object.hasOwnProperty.call(message, "entity")) - $root.google.analytics.data.v1alpha.Entity.encode(message.entity, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.requests != null && message.requests.length) - for (var i = 0; i < message.requests.length; ++i) - $root.google.analytics.data.v1alpha.RunPivotReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunPivotReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunPivotReportsRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BatchRunPivotReportsRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.entity = $root.google.analytics.data.v1alpha.Entity.decode(reader, reader.uint32()); - break; - case 2: - if (!(message.requests && message.requests.length)) - message.requests = []; - message.requests.push($root.google.analytics.data.v1alpha.RunPivotReportRequest.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunPivotReportsRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Verifies an OneofDescriptorProto message. + * @function verify + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OneofDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.OneofOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; - /** - * Verifies a BatchRunPivotReportsRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BatchRunPivotReportsRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.entity != null && message.hasOwnProperty("entity")) { - var error = $root.google.analytics.data.v1alpha.Entity.verify(message.entity); - if (error) - return "entity." + error; - } - if (message.requests != null && message.hasOwnProperty("requests")) { - if (!Array.isArray(message.requests)) - return "requests: array expected"; - for (var i = 0; i < message.requests.length; ++i) { - var error = $root.google.analytics.data.v1alpha.RunPivotReportRequest.verify(message.requests[i]); - if (error) - return "requests." + error; - } - } - return null; - }; + /** + * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto + */ + OneofDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.OneofDescriptorProto) + return object; + var message = new $root.google.protobuf.OneofDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.OneofOptions.fromObject(object.options); + } + return message; + }; - /** - * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest - */ - BatchRunPivotReportsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.BatchRunPivotReportsRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.BatchRunPivotReportsRequest(); - if (object.entity != null) { - if (typeof object.entity !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunPivotReportsRequest.entity: object expected"); - message.entity = $root.google.analytics.data.v1alpha.Entity.fromObject(object.entity); - } - if (object.requests) { - if (!Array.isArray(object.requests)) - throw TypeError(".google.analytics.data.v1alpha.BatchRunPivotReportsRequest.requests: array expected"); - message.requests = []; - for (var i = 0; i < object.requests.length; ++i) { - if (typeof object.requests[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunPivotReportsRequest.requests: object expected"); - message.requests[i] = $root.google.analytics.data.v1alpha.RunPivotReportRequest.fromObject(object.requests[i]); - } - } - return message; - }; + /** + * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.OneofDescriptorProto + * @static + * @param {google.protobuf.OneofDescriptorProto} message OneofDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OneofDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options); + return object; + }; - /** - * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @static - * @param {google.analytics.data.v1alpha.BatchRunPivotReportsRequest} message BatchRunPivotReportsRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BatchRunPivotReportsRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.requests = []; - if (options.defaults) - object.entity = null; - if (message.entity != null && message.hasOwnProperty("entity")) - object.entity = $root.google.analytics.data.v1alpha.Entity.toObject(message.entity, options); - if (message.requests && message.requests.length) { - object.requests = []; - for (var j = 0; j < message.requests.length; ++j) - object.requests[j] = $root.google.analytics.data.v1alpha.RunPivotReportRequest.toObject(message.requests[j], options); - } - return object; - }; + /** + * Converts this OneofDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.OneofDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + OneofDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this BatchRunPivotReportsRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsRequest - * @instance - * @returns {Object.} JSON object - */ - BatchRunPivotReportsRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return OneofDescriptorProto; + })(); - return BatchRunPivotReportsRequest; - })(); + protobuf.EnumDescriptorProto = (function() { - v1alpha.BatchRunPivotReportsResponse = (function() { + /** + * Properties of an EnumDescriptorProto. + * @memberof google.protobuf + * @interface IEnumDescriptorProto + * @property {string|null} [name] EnumDescriptorProto name + * @property {Array.|null} [value] EnumDescriptorProto value + * @property {google.protobuf.IEnumOptions|null} [options] EnumDescriptorProto options + * @property {Array.|null} [reservedRange] EnumDescriptorProto reservedRange + * @property {Array.|null} [reservedName] EnumDescriptorProto reservedName + */ - /** - * Properties of a BatchRunPivotReportsResponse. - * @memberof google.analytics.data.v1alpha - * @interface IBatchRunPivotReportsResponse - * @property {Array.|null} [pivotReports] BatchRunPivotReportsResponse pivotReports - */ + /** + * Constructs a new EnumDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an EnumDescriptorProto. + * @implements IEnumDescriptorProto + * @constructor + * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set + */ + function EnumDescriptorProto(properties) { + this.value = []; + this.reservedRange = []; + this.reservedName = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new BatchRunPivotReportsResponse. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a BatchRunPivotReportsResponse. - * @implements IBatchRunPivotReportsResponse - * @constructor - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsResponse=} [properties] Properties to set - */ - function BatchRunPivotReportsResponse(properties) { - this.pivotReports = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * EnumDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.name = ""; - /** - * BatchRunPivotReportsResponse pivotReports. - * @member {Array.} pivotReports - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @instance - */ - BatchRunPivotReportsResponse.prototype.pivotReports = $util.emptyArray; + /** + * EnumDescriptorProto value. + * @member {Array.} value + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.value = $util.emptyArray; - /** - * Creates a new BatchRunPivotReportsResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse instance - */ - BatchRunPivotReportsResponse.create = function create(properties) { - return new BatchRunPivotReportsResponse(properties); - }; + /** + * EnumDescriptorProto options. + * @member {google.protobuf.IEnumOptions|null|undefined} options + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.options = null; - /** - * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunPivotReportsResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.pivotReports != null && message.pivotReports.length) - for (var i = 0; i < message.pivotReports.length; ++i) - $root.google.analytics.data.v1alpha.RunPivotReportResponse.encode(message.pivotReports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * EnumDescriptorProto reservedRange. + * @member {Array.} reservedRange + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.reservedRange = $util.emptyArray; - /** - * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BatchRunPivotReportsResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {google.analytics.data.v1alpha.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BatchRunPivotReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * EnumDescriptorProto reservedName. + * @member {Array.} reservedName + * @memberof google.protobuf.EnumDescriptorProto + * @instance + */ + EnumDescriptorProto.prototype.reservedName = $util.emptyArray; - /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunPivotReportsResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BatchRunPivotReportsResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.pivotReports && message.pivotReports.length)) - message.pivotReports = []; - message.pivotReports.push($root.google.analytics.data.v1alpha.RunPivotReportResponse.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new EnumDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto instance + */ + EnumDescriptorProto.create = function create(properties) { + return new EnumDescriptorProto(properties); + }; - /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BatchRunPivotReportsResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.value != null && message.value.length) + for (var i = 0; i < message.value.length; ++i) + $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.reservedRange != null && message.reservedRange.length) + for (var i = 0; i < message.reservedRange.length; ++i) + $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.reservedName != null && message.reservedName.length) + for (var i = 0; i < message.reservedName.length; ++i) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.reservedName[i]); + return writer; + }; - /** - * Verifies a BatchRunPivotReportsResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BatchRunPivotReportsResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.pivotReports != null && message.hasOwnProperty("pivotReports")) { - if (!Array.isArray(message.pivotReports)) - return "pivotReports: array expected"; - for (var i = 0; i < message.pivotReports.length; ++i) { - var error = $root.google.analytics.data.v1alpha.RunPivotReportResponse.verify(message.pivotReports[i]); - if (error) - return "pivotReports." + error; - } - } - return null; - }; + /** + * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse - */ - BatchRunPivotReportsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.BatchRunPivotReportsResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.BatchRunPivotReportsResponse(); - if (object.pivotReports) { - if (!Array.isArray(object.pivotReports)) - throw TypeError(".google.analytics.data.v1alpha.BatchRunPivotReportsResponse.pivotReports: array expected"); - message.pivotReports = []; - for (var i = 0; i < object.pivotReports.length; ++i) { - if (typeof object.pivotReports[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.BatchRunPivotReportsResponse.pivotReports: object expected"); - message.pivotReports[i] = $root.google.analytics.data.v1alpha.RunPivotReportResponse.fromObject(object.pivotReports[i]); - } - } - return message; - }; + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.value && message.value.length)) + message.value = []; + message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); + break; + case 4: + if (!(message.reservedRange && message.reservedRange.length)) + message.reservedRange = []; + message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.reservedName && message.reservedName.length)) + message.reservedName = []; + message.reservedName.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @static - * @param {google.analytics.data.v1alpha.BatchRunPivotReportsResponse} message BatchRunPivotReportsResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BatchRunPivotReportsResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.pivotReports = []; - if (message.pivotReports && message.pivotReports.length) { - object.pivotReports = []; - for (var j = 0; j < message.pivotReports.length; ++j) - object.pivotReports[j] = $root.google.analytics.data.v1alpha.RunPivotReportResponse.toObject(message.pivotReports[j], options); - } - return object; - }; - - /** - * Converts this BatchRunPivotReportsResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.BatchRunPivotReportsResponse - * @instance - * @returns {Object.} JSON object - */ - BatchRunPivotReportsResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return BatchRunPivotReportsResponse; - })(); - - v1alpha.GetMetadataRequest = (function() { - - /** - * Properties of a GetMetadataRequest. - * @memberof google.analytics.data.v1alpha - * @interface IGetMetadataRequest - * @property {string|null} [name] GetMetadataRequest name - */ + /** + * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new GetMetadataRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a GetMetadataRequest. - * @implements IGetMetadataRequest - * @constructor - * @param {google.analytics.data.v1alpha.IGetMetadataRequest=} [properties] Properties to set - */ - function GetMetadataRequest(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Verifies an EnumDescriptorProto message. + * @function verify + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.value != null && message.hasOwnProperty("value")) { + if (!Array.isArray(message.value)) + return "value: array expected"; + for (var i = 0; i < message.value.length; ++i) { + var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i]); + if (error) + return "value." + error; } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.EnumOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { + if (!Array.isArray(message.reservedRange)) + return "reservedRange: array expected"; + for (var i = 0; i < message.reservedRange.length; ++i) { + var error = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i]); + if (error) + return "reservedRange." + error; + } + } + if (message.reservedName != null && message.hasOwnProperty("reservedName")) { + if (!Array.isArray(message.reservedName)) + return "reservedName: array expected"; + for (var i = 0; i < message.reservedName.length; ++i) + if (!$util.isString(message.reservedName[i])) + return "reservedName: string[] expected"; + } + return null; + }; - /** - * GetMetadataRequest name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @instance - */ - GetMetadataRequest.prototype.name = ""; - - /** - * Creates a new GetMetadataRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {google.analytics.data.v1alpha.IGetMetadataRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest instance - */ - GetMetadataRequest.create = function create(properties) { - return new GetMetadataRequest(properties); - }; - - /** - * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {google.analytics.data.v1alpha.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetMetadataRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - return writer; - }; + /** + * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto + */ + EnumDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumDescriptorProto) + return object; + var message = new $root.google.protobuf.EnumDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.value) { + if (!Array.isArray(object.value)) + throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected"); + message.value = []; + for (var i = 0; i < object.value.length; ++i) { + if (typeof object.value[i] !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected"); + message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.EnumOptions.fromObject(object.options); + } + if (object.reservedRange) { + if (!Array.isArray(object.reservedRange)) + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected"); + message.reservedRange = []; + for (var i = 0; i < object.reservedRange.length; ++i) { + if (typeof object.reservedRange[i] !== "object") + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected"); + message.reservedRange[i] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i]); + } + } + if (object.reservedName) { + if (!Array.isArray(object.reservedName)) + throw TypeError(".google.protobuf.EnumDescriptorProto.reservedName: array expected"); + message.reservedName = []; + for (var i = 0; i < object.reservedName.length; ++i) + message.reservedName[i] = String(object.reservedName[i]); + } + return message; + }; - /** - * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.GetMetadataRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {google.analytics.data.v1alpha.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetMetadataRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumDescriptorProto + * @static + * @param {google.protobuf.EnumDescriptorProto} message EnumDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.value = []; + object.reservedRange = []; + object.reservedName = []; + } + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.value && message.value.length) { + object.value = []; + for (var j = 0; j < message.value.length; ++j) + object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options); + if (message.reservedRange && message.reservedRange.length) { + object.reservedRange = []; + for (var j = 0; j < message.reservedRange.length; ++j) + object.reservedRange[j] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j], options); + } + if (message.reservedName && message.reservedName.length) { + object.reservedName = []; + for (var j = 0; j < message.reservedName.length; ++j) + object.reservedName[j] = message.reservedName[j]; + } + return object; + }; - /** - * Decodes a GetMetadataRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetMetadataRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.GetMetadataRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Converts this EnumDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.EnumDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + EnumDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetMetadataRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + EnumDescriptorProto.EnumReservedRange = (function() { - /** - * Verifies a GetMetadataRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetMetadataRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - return null; - }; + /** + * Properties of an EnumReservedRange. + * @memberof google.protobuf.EnumDescriptorProto + * @interface IEnumReservedRange + * @property {number|null} [start] EnumReservedRange start + * @property {number|null} [end] EnumReservedRange end + */ - /** - * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.GetMetadataRequest} GetMetadataRequest - */ - GetMetadataRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.GetMetadataRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.GetMetadataRequest(); - if (object.name != null) - message.name = String(object.name); - return message; - }; + /** + * Constructs a new EnumReservedRange. + * @memberof google.protobuf.EnumDescriptorProto + * @classdesc Represents an EnumReservedRange. + * @implements IEnumReservedRange + * @constructor + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set + */ + function EnumReservedRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @static - * @param {google.analytics.data.v1alpha.GetMetadataRequest} message GetMetadataRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetMetadataRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - return object; - }; + /** + * EnumReservedRange start. + * @member {number} start + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + */ + EnumReservedRange.prototype.start = 0; - /** - * Converts this GetMetadataRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.GetMetadataRequest - * @instance - * @returns {Object.} JSON object - */ - GetMetadataRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * EnumReservedRange end. + * @member {number} end + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + */ + EnumReservedRange.prototype.end = 0; - return GetMetadataRequest; - })(); + /** + * Creates a new EnumReservedRange instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange instance + */ + EnumReservedRange.create = function create(properties) { + return new EnumReservedRange(properties); + }; - v1alpha.RunRealtimeReportRequest = (function() { + /** + * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumReservedRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.start != null && Object.hasOwnProperty.call(message, "start")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); + if (message.end != null && Object.hasOwnProperty.call(message, "end")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); + return writer; + }; - /** - * Properties of a RunRealtimeReportRequest. - * @memberof google.analytics.data.v1alpha - * @interface IRunRealtimeReportRequest - * @property {string|null} [property] RunRealtimeReportRequest property - * @property {Array.|null} [dimensions] RunRealtimeReportRequest dimensions - * @property {Array.|null} [metrics] RunRealtimeReportRequest metrics - * @property {number|Long|null} [limit] RunRealtimeReportRequest limit - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunRealtimeReportRequest dimensionFilter - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [metricFilter] RunRealtimeReportRequest metricFilter - * @property {Array.|null} [metricAggregations] RunRealtimeReportRequest metricAggregations - * @property {Array.|null} [orderBys] RunRealtimeReportRequest orderBys - * @property {boolean|null} [returnPropertyQuota] RunRealtimeReportRequest returnPropertyQuota - */ + /** + * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumReservedRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new RunRealtimeReportRequest. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunRealtimeReportRequest. - * @implements IRunRealtimeReportRequest - * @constructor - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest=} [properties] Properties to set - */ - function RunRealtimeReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.metricAggregations = []; - this.orderBys = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Decodes an EnumReservedRange message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumReservedRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.start = reader.int32(); + break; + case 2: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } } + return message; + }; - /** - * RunRealtimeReportRequest property. - * @member {string} property - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.property = ""; + /** + * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumReservedRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * RunRealtimeReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.dimensions = $util.emptyArray; + /** + * Verifies an EnumReservedRange message. + * @function verify + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumReservedRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.start != null && message.hasOwnProperty("start")) + if (!$util.isInteger(message.start)) + return "start: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; - /** - * RunRealtimeReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metrics = $util.emptyArray; - - /** - * RunRealtimeReportRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * RunRealtimeReportRequest dimensionFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.dimensionFilter = null; + /** + * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange + */ + EnumReservedRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange) + return object; + var message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); + if (object.start != null) + message.start = object.start | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; - /** - * RunRealtimeReportRequest metricFilter. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metricFilter = null; + /** + * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @static + * @param {google.protobuf.EnumDescriptorProto.EnumReservedRange} message EnumReservedRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumReservedRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.start = 0; + object.end = 0; + } + if (message.start != null && message.hasOwnProperty("start")) + object.start = message.start; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; - /** - * RunRealtimeReportRequest metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metricAggregations = $util.emptyArray; + /** + * Converts this EnumReservedRange to JSON. + * @function toJSON + * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange + * @instance + * @returns {Object.} JSON object + */ + EnumReservedRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * RunRealtimeReportRequest orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.orderBys = $util.emptyArray; + return EnumReservedRange; + })(); - /** - * RunRealtimeReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.returnPropertyQuota = false; + return EnumDescriptorProto; + })(); - /** - * Creates a new RunRealtimeReportRequest instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunRealtimeReportRequest} RunRealtimeReportRequest instance - */ - RunRealtimeReportRequest.create = function create(properties) { - return new RunRealtimeReportRequest(properties); - }; + protobuf.EnumValueDescriptorProto = (function() { - /** - * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportRequest.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunRealtimeReportRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1alpha.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1alpha.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 4, wireType 0 =*/32).int64(message.limit); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 7, wireType 2 =*/58).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1alpha.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 9, wireType 0 =*/72).bool(message.returnPropertyQuota); - return writer; - }; + /** + * Properties of an EnumValueDescriptorProto. + * @memberof google.protobuf + * @interface IEnumValueDescriptorProto + * @property {string|null} [name] EnumValueDescriptorProto name + * @property {number|null} [number] EnumValueDescriptorProto number + * @property {google.protobuf.IEnumValueOptions|null} [options] EnumValueDescriptorProto options + */ - /** - * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunRealtimeReportRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Constructs a new EnumValueDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents an EnumValueDescriptorProto. + * @implements IEnumValueDescriptorProto + * @constructor + * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set + */ + function EnumValueDescriptorProto(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunRealtimeReportRequest} RunRealtimeReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunRealtimeReportRequest.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunRealtimeReportRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.property = reader.string(); - break; - case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1alpha.Metric.decode(reader, reader.uint32())); - break; - case 4: - message.limit = reader.int64(); - break; - case 5: - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 6: - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 7: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); - break; - case 8: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1alpha.OrderBy.decode(reader, reader.uint32())); - break; - case 9: - message.returnPropertyQuota = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * EnumValueDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.name = ""; - /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunRealtimeReportRequest} RunRealtimeReportRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunRealtimeReportRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * EnumValueDescriptorProto number. + * @member {number} number + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.number = 0; - /** - * Verifies a RunRealtimeReportRequest message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunRealtimeReportRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.metricFilter); - if (error) - return "metricFilter." + error; - } - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } - } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1alpha.OrderBy.verify(message.orderBys[i]); - if (error) - return "orderBys." + error; - } - } - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; - return null; - }; + /** + * EnumValueDescriptorProto options. + * @member {google.protobuf.IEnumValueOptions|null|undefined} options + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + */ + EnumValueDescriptorProto.prototype.options = null; - /** - * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunRealtimeReportRequest} RunRealtimeReportRequest - */ - RunRealtimeReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunRealtimeReportRequest) - return object; - var message = new $root.google.analytics.data.v1alpha.RunRealtimeReportRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1alpha.Metric.fromObject(object.metrics[i]); - } - } - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.metricFilter); - } - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } - } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportRequest.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1alpha.OrderBy.fromObject(object.orderBys[i]); - } - } - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); - return message; - }; + /** + * Creates a new EnumValueDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto instance + */ + EnumValueDescriptorProto.create = function create(properties) { + return new EnumValueDescriptorProto(properties); + }; - /** - * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @static - * @param {google.analytics.data.v1alpha.RunRealtimeReportRequest} message RunRealtimeReportRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunRealtimeReportRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.metricAggregations = []; - object.orderBys = []; - } - if (options.defaults) { - object.property = ""; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; - object.dimensionFilter = null; - object.metricFilter = null; - object.returnPropertyQuota = false; - } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1alpha.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1alpha.Metric.toObject(message.metrics[j], options); - } - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.metricFilter, options); - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1alpha.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; - } - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1alpha.OrderBy.toObject(message.orderBys[j], options); - } - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; - return object; - }; + /** + * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.number != null && Object.hasOwnProperty.call(message, "number")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Converts this RunRealtimeReportRequest to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunRealtimeReportRequest - * @instance - * @returns {Object.} JSON object - */ - RunRealtimeReportRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - return RunRealtimeReportRequest; - })(); + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.number = reader.int32(); + break; + case 3: + message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - v1alpha.RunRealtimeReportResponse = (function() { + /** + * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Properties of a RunRealtimeReportResponse. - * @memberof google.analytics.data.v1alpha - * @interface IRunRealtimeReportResponse - * @property {Array.|null} [dimensionHeaders] RunRealtimeReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunRealtimeReportResponse metricHeaders - * @property {Array.|null} [rows] RunRealtimeReportResponse rows - * @property {Array.|null} [totals] RunRealtimeReportResponse totals - * @property {Array.|null} [maximums] RunRealtimeReportResponse maximums - * @property {Array.|null} [minimums] RunRealtimeReportResponse minimums - * @property {number|null} [rowCount] RunRealtimeReportResponse rowCount - * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunRealtimeReportResponse propertyQuota - */ + /** + * Verifies an EnumValueDescriptorProto message. + * @function verify + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumValueDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.number != null && message.hasOwnProperty("number")) + if (!$util.isInteger(message.number)) + return "number: integer expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.EnumValueOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; - /** - * Constructs a new RunRealtimeReportResponse. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a RunRealtimeReportResponse. - * @implements IRunRealtimeReportResponse - * @constructor - * @param {google.analytics.data.v1alpha.IRunRealtimeReportResponse=} [properties] Properties to set - */ - function RunRealtimeReportResponse(properties) { - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.totals = []; - this.maximums = []; - this.minimums = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto + */ + EnumValueDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumValueDescriptorProto) + return object; + var message = new $root.google.protobuf.EnumValueDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.number != null) + message.number = object.number | 0; + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options); + } + return message; + }; - /** - * RunRealtimeReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.dimensionHeaders = $util.emptyArray; + /** + * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumValueDescriptorProto + * @static + * @param {google.protobuf.EnumValueDescriptorProto} message EnumValueDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumValueDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.number = 0; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.number != null && message.hasOwnProperty("number")) + object.number = message.number; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options); + return object; + }; - /** - * RunRealtimeReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.metricHeaders = $util.emptyArray; + /** + * Converts this EnumValueDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.EnumValueDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + EnumValueDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * RunRealtimeReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.rows = $util.emptyArray; + return EnumValueDescriptorProto; + })(); - /** - * RunRealtimeReportResponse totals. - * @member {Array.} totals - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.totals = $util.emptyArray; + protobuf.ServiceDescriptorProto = (function() { - /** - * RunRealtimeReportResponse maximums. - * @member {Array.} maximums - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.maximums = $util.emptyArray; + /** + * Properties of a ServiceDescriptorProto. + * @memberof google.protobuf + * @interface IServiceDescriptorProto + * @property {string|null} [name] ServiceDescriptorProto name + * @property {Array.|null} [method] ServiceDescriptorProto method + * @property {google.protobuf.IServiceOptions|null} [options] ServiceDescriptorProto options + */ - /** - * RunRealtimeReportResponse minimums. - * @member {Array.} minimums - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.minimums = $util.emptyArray; + /** + * Constructs a new ServiceDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a ServiceDescriptorProto. + * @implements IServiceDescriptorProto + * @constructor + * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set + */ + function ServiceDescriptorProto(properties) { + this.method = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RunRealtimeReportResponse rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.rowCount = 0; + /** + * ServiceDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.name = ""; - /** - * RunRealtimeReportResponse propertyQuota. - * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - */ - RunRealtimeReportResponse.prototype.propertyQuota = null; + /** + * ServiceDescriptorProto method. + * @member {Array.} method + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.method = $util.emptyArray; - /** - * Creates a new RunRealtimeReportResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.RunRealtimeReportResponse} RunRealtimeReportResponse instance - */ - RunRealtimeReportResponse.create = function create(properties) { - return new RunRealtimeReportResponse(properties); - }; + /** + * ServiceDescriptorProto options. + * @member {google.protobuf.IServiceOptions|null|undefined} options + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + */ + ServiceDescriptorProto.prototype.options = null; - /** - * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunRealtimeReportResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.totals != null && message.totals.length) - for (var i = 0; i < message.totals.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.maximums != null && message.maximums.length) - for (var i = 0; i < message.maximums.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.minimums != null && message.minimums.length) - for (var i = 0; i < message.minimums.length; ++i) - $root.google.analytics.data.v1alpha.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - return writer; - }; + /** + * Creates a new ServiceDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto instance + */ + ServiceDescriptorProto.create = function create(properties) { + return new ServiceDescriptorProto(properties); + }; - /** - * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunRealtimeReportResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {google.analytics.data.v1alpha.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RunRealtimeReportResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.method != null && message.method.length) + for (var i = 0; i < message.method.length; ++i) + $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.RunRealtimeReportResponse} RunRealtimeReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunRealtimeReportResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunRealtimeReportResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); - break; - case 2: - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.totals && message.totals.length)) - message.totals = []; - message.totals.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.maximums && message.maximums.length)) - message.maximums = []; - message.maximums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.minimums && message.minimums.length)) - message.minimums = []; - message.minimums.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); - break; - case 7: - message.rowCount = reader.int32(); - break; - case 8: - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.RunRealtimeReportResponse} RunRealtimeReportResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RunRealtimeReportResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + if (!(message.method && message.method.length)) + message.method = []; + message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); + break; + case 3: + message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Verifies a RunRealtimeReportResponse message. - * @function verify - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RunRealtimeReportResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - if (message.rows != null && message.hasOwnProperty("rows")) { - if (!Array.isArray(message.rows)) - return "rows: array expected"; - for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.rows[i]); - if (error) - return "rows." + error; - } - } - if (message.totals != null && message.hasOwnProperty("totals")) { - if (!Array.isArray(message.totals)) - return "totals: array expected"; - for (var i = 0; i < message.totals.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.totals[i]); - if (error) - return "totals." + error; - } - } - if (message.maximums != null && message.hasOwnProperty("maximums")) { - if (!Array.isArray(message.maximums)) - return "maximums: array expected"; - for (var i = 0; i < message.maximums.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.maximums[i]); - if (error) - return "maximums." + error; - } - } - if (message.minimums != null && message.hasOwnProperty("minimums")) { - if (!Array.isArray(message.minimums)) - return "minimums: array expected"; - for (var i = 0; i < message.minimums.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Row.verify(message.minimums[i]); - if (error) - return "minimums." + error; - } - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); - if (error) - return "propertyQuota." + error; - } - return null; - }; + /** + * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.RunRealtimeReportResponse} RunRealtimeReportResponse - */ - RunRealtimeReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.RunRealtimeReportResponse) - return object; - var message = new $root.google.analytics.data.v1alpha.RunRealtimeReportResponse(); - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } - } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); - } - } - if (object.totals) { - if (!Array.isArray(object.totals)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.totals: array expected"); - message.totals = []; - for (var i = 0; i < object.totals.length; ++i) { - if (typeof object.totals[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.totals: object expected"); - message.totals[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.totals[i]); - } - } - if (object.maximums) { - if (!Array.isArray(object.maximums)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.maximums: array expected"); - message.maximums = []; - for (var i = 0; i < object.maximums.length; ++i) { - if (typeof object.maximums[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.maximums: object expected"); - message.maximums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.maximums[i]); - } - } - if (object.minimums) { - if (!Array.isArray(object.minimums)) - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.minimums: array expected"); - message.minimums = []; - for (var i = 0; i < object.minimums.length; ++i) { - if (typeof object.minimums[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.minimums: object expected"); - message.minimums[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.minimums[i]); - } - } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1alpha.RunRealtimeReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); - } - return message; - }; + /** + * Verifies a ServiceDescriptorProto message. + * @function verify + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ServiceDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.method != null && message.hasOwnProperty("method")) { + if (!Array.isArray(message.method)) + return "method: array expected"; + for (var i = 0; i < message.method.length; ++i) { + var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i]); + if (error) + return "method." + error; + } + } + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.ServiceOptions.verify(message.options); + if (error) + return "options." + error; + } + return null; + }; - /** - * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @static - * @param {google.analytics.data.v1alpha.RunRealtimeReportResponse} message RunRealtimeReportResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RunRealtimeReportResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dimensionHeaders = []; - object.metricHeaders = []; - object.rows = []; - object.totals = []; - object.maximums = []; - object.minimums = []; - } - if (options.defaults) { - object.rowCount = 0; - object.propertyQuota = null; - } - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); - } - if (message.totals && message.totals.length) { - object.totals = []; - for (var j = 0; j < message.totals.length; ++j) - object.totals[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.totals[j], options); - } - if (message.maximums && message.maximums.length) { - object.maximums = []; - for (var j = 0; j < message.maximums.length; ++j) - object.maximums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.maximums[j], options); - } - if (message.minimums && message.minimums.length) { - object.minimums = []; - for (var j = 0; j < message.minimums.length; ++j) - object.minimums[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.minimums[j], options); - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); - return object; - }; + /** + * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto + */ + ServiceDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ServiceDescriptorProto) + return object; + var message = new $root.google.protobuf.ServiceDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.method) { + if (!Array.isArray(object.method)) + throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected"); + message.method = []; + for (var i = 0; i < object.method.length; ++i) { + if (typeof object.method[i] !== "object") + throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected"); + message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i]); + } + } + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options); + } + return message; + }; - /** - * Converts this RunRealtimeReportResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.RunRealtimeReportResponse - * @instance - * @returns {Object.} JSON object - */ - RunRealtimeReportResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ServiceDescriptorProto + * @static + * @param {google.protobuf.ServiceDescriptorProto} message ServiceDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ServiceDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.method = []; + if (options.defaults) { + object.name = ""; + object.options = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.method && message.method.length) { + object.method = []; + for (var j = 0; j < message.method.length; ++j) + object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options); + } + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options); + return object; + }; - return RunRealtimeReportResponse; - })(); + /** + * Converts this ServiceDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.ServiceDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + ServiceDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - v1alpha.DateRange = (function() { + return ServiceDescriptorProto; + })(); - /** - * Properties of a DateRange. - * @memberof google.analytics.data.v1alpha - * @interface IDateRange - * @property {string|null} [startDate] DateRange startDate - * @property {string|null} [endDate] DateRange endDate - * @property {string|null} [name] DateRange name - */ + protobuf.MethodDescriptorProto = (function() { - /** - * Constructs a new DateRange. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DateRange. - * @implements IDateRange - * @constructor - * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set - */ - function DateRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a MethodDescriptorProto. + * @memberof google.protobuf + * @interface IMethodDescriptorProto + * @property {string|null} [name] MethodDescriptorProto name + * @property {string|null} [inputType] MethodDescriptorProto inputType + * @property {string|null} [outputType] MethodDescriptorProto outputType + * @property {google.protobuf.IMethodOptions|null} [options] MethodDescriptorProto options + * @property {boolean|null} [clientStreaming] MethodDescriptorProto clientStreaming + * @property {boolean|null} [serverStreaming] MethodDescriptorProto serverStreaming + */ - /** - * DateRange startDate. - * @member {string} startDate - * @memberof google.analytics.data.v1alpha.DateRange - * @instance - */ - DateRange.prototype.startDate = ""; + /** + * Constructs a new MethodDescriptorProto. + * @memberof google.protobuf + * @classdesc Represents a MethodDescriptorProto. + * @implements IMethodDescriptorProto + * @constructor + * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set + */ + function MethodDescriptorProto(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * DateRange endDate. - * @member {string} endDate - * @memberof google.analytics.data.v1alpha.DateRange - * @instance - */ - DateRange.prototype.endDate = ""; + /** + * MethodDescriptorProto name. + * @member {string} name + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.name = ""; - /** - * DateRange name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.DateRange - * @instance - */ - DateRange.prototype.name = ""; + /** + * MethodDescriptorProto inputType. + * @member {string} inputType + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.inputType = ""; - /** - * Creates a new DateRange instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DateRange} DateRange instance - */ - DateRange.create = function create(properties) { - return new DateRange(properties); - }; + /** + * MethodDescriptorProto outputType. + * @member {string} outputType + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.outputType = ""; - /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DateRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); - if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); - return writer; - }; + /** + * MethodDescriptorProto options. + * @member {google.protobuf.IMethodOptions|null|undefined} options + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.options = null; - /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DateRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * MethodDescriptorProto clientStreaming. + * @member {boolean} clientStreaming + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.clientStreaming = false; - /** - * Decodes a DateRange message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DateRange} DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DateRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DateRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.startDate = reader.string(); - break; - case 2: - message.endDate = reader.string(); - break; - case 3: - message.name = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * MethodDescriptorProto serverStreaming. + * @member {boolean} serverStreaming + * @memberof google.protobuf.MethodDescriptorProto + * @instance + */ + MethodDescriptorProto.prototype.serverStreaming = false; - /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DateRange} DateRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DateRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a new MethodDescriptorProto instance using the specified properties. + * @function create + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto instance + */ + MethodDescriptorProto.create = function create(properties) { + return new MethodDescriptorProto(properties); + }; - /** - * Verifies a DateRange message. - * @function verify - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DateRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startDate != null && message.hasOwnProperty("startDate")) - if (!$util.isString(message.startDate)) - return "startDate: string expected"; - if (message.endDate != null && message.hasOwnProperty("endDate")) - if (!$util.isString(message.endDate)) - return "endDate: string expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - return null; - }; + /** + * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodDescriptorProto.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.inputType); + if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType); + if (message.options != null && Object.hasOwnProperty.call(message, "options")) + $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming); + if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.serverStreaming); + return writer; + }; - /** - * Creates a DateRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DateRange} DateRange - */ - DateRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DateRange) - return object; - var message = new $root.google.analytics.data.v1alpha.DateRange(); - if (object.startDate != null) - message.startDate = String(object.startDate); - if (object.endDate != null) - message.endDate = String(object.endDate); - if (object.name != null) - message.name = String(object.name); - return message; - }; + /** + * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DateRange - * @static - * @param {google.analytics.data.v1alpha.DateRange} message DateRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DateRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.startDate = ""; - object.endDate = ""; - object.name = ""; - } - if (message.startDate != null && message.hasOwnProperty("startDate")) - object.startDate = message.startDate; - if (message.endDate != null && message.hasOwnProperty("endDate")) - object.endDate = message.endDate; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - return object; - }; + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodDescriptorProto.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodDescriptorProto(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.inputType = reader.string(); + break; + case 3: + message.outputType = reader.string(); + break; + case 4: + message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); + break; + case 5: + message.clientStreaming = reader.bool(); + break; + case 6: + message.serverStreaming = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Converts this DateRange to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DateRange - * @instance - * @returns {Object.} JSON object - */ - DateRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodDescriptorProto.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - return DateRange; - })(); + /** + * Verifies a MethodDescriptorProto message. + * @function verify + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MethodDescriptorProto.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.inputType != null && message.hasOwnProperty("inputType")) + if (!$util.isString(message.inputType)) + return "inputType: string expected"; + if (message.outputType != null && message.hasOwnProperty("outputType")) + if (!$util.isString(message.outputType)) + return "outputType: string expected"; + if (message.options != null && message.hasOwnProperty("options")) { + var error = $root.google.protobuf.MethodOptions.verify(message.options); + if (error) + return "options." + error; + } + if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + if (typeof message.clientStreaming !== "boolean") + return "clientStreaming: boolean expected"; + if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + if (typeof message.serverStreaming !== "boolean") + return "serverStreaming: boolean expected"; + return null; + }; - v1alpha.Entity = (function() { + /** + * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto + */ + MethodDescriptorProto.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MethodDescriptorProto) + return object; + var message = new $root.google.protobuf.MethodDescriptorProto(); + if (object.name != null) + message.name = String(object.name); + if (object.inputType != null) + message.inputType = String(object.inputType); + if (object.outputType != null) + message.outputType = String(object.outputType); + if (object.options != null) { + if (typeof object.options !== "object") + throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected"); + message.options = $root.google.protobuf.MethodOptions.fromObject(object.options); + } + if (object.clientStreaming != null) + message.clientStreaming = Boolean(object.clientStreaming); + if (object.serverStreaming != null) + message.serverStreaming = Boolean(object.serverStreaming); + return message; + }; - /** - * Properties of an Entity. - * @memberof google.analytics.data.v1alpha - * @interface IEntity - * @property {string|null} [propertyId] Entity propertyId - */ + /** + * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MethodDescriptorProto + * @static + * @param {google.protobuf.MethodDescriptorProto} message MethodDescriptorProto + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MethodDescriptorProto.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.inputType = ""; + object.outputType = ""; + object.options = null; + object.clientStreaming = false; + object.serverStreaming = false; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.inputType != null && message.hasOwnProperty("inputType")) + object.inputType = message.inputType; + if (message.outputType != null && message.hasOwnProperty("outputType")) + object.outputType = message.outputType; + if (message.options != null && message.hasOwnProperty("options")) + object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options); + if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) + object.clientStreaming = message.clientStreaming; + if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) + object.serverStreaming = message.serverStreaming; + return object; + }; - /** - * Constructs a new Entity. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents an Entity. - * @implements IEntity - * @constructor - * @param {google.analytics.data.v1alpha.IEntity=} [properties] Properties to set - */ - function Entity(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Converts this MethodDescriptorProto to JSON. + * @function toJSON + * @memberof google.protobuf.MethodDescriptorProto + * @instance + * @returns {Object.} JSON object + */ + MethodDescriptorProto.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Entity propertyId. - * @member {string} propertyId - * @memberof google.analytics.data.v1alpha.Entity - * @instance - */ - Entity.prototype.propertyId = ""; + return MethodDescriptorProto; + })(); - /** - * Creates a new Entity instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {google.analytics.data.v1alpha.IEntity=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Entity} Entity instance - */ - Entity.create = function create(properties) { - return new Entity(properties); - }; + protobuf.FileOptions = (function() { - /** - * Encodes the specified Entity message. Does not implicitly {@link google.analytics.data.v1alpha.Entity.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {google.analytics.data.v1alpha.IEntity} message Entity message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Entity.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.propertyId != null && Object.hasOwnProperty.call(message, "propertyId")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.propertyId); - return writer; - }; + /** + * Properties of a FileOptions. + * @memberof google.protobuf + * @interface IFileOptions + * @property {string|null} [javaPackage] FileOptions javaPackage + * @property {string|null} [javaOuterClassname] FileOptions javaOuterClassname + * @property {boolean|null} [javaMultipleFiles] FileOptions javaMultipleFiles + * @property {boolean|null} [javaGenerateEqualsAndHash] FileOptions javaGenerateEqualsAndHash + * @property {boolean|null} [javaStringCheckUtf8] FileOptions javaStringCheckUtf8 + * @property {google.protobuf.FileOptions.OptimizeMode|null} [optimizeFor] FileOptions optimizeFor + * @property {string|null} [goPackage] FileOptions goPackage + * @property {boolean|null} [ccGenericServices] FileOptions ccGenericServices + * @property {boolean|null} [javaGenericServices] FileOptions javaGenericServices + * @property {boolean|null} [pyGenericServices] FileOptions pyGenericServices + * @property {boolean|null} [phpGenericServices] FileOptions phpGenericServices + * @property {boolean|null} [deprecated] FileOptions deprecated + * @property {boolean|null} [ccEnableArenas] FileOptions ccEnableArenas + * @property {string|null} [objcClassPrefix] FileOptions objcClassPrefix + * @property {string|null} [csharpNamespace] FileOptions csharpNamespace + * @property {string|null} [swiftPrefix] FileOptions swiftPrefix + * @property {string|null} [phpClassPrefix] FileOptions phpClassPrefix + * @property {string|null} [phpNamespace] FileOptions phpNamespace + * @property {string|null} [phpMetadataNamespace] FileOptions phpMetadataNamespace + * @property {string|null} [rubyPackage] FileOptions rubyPackage + * @property {Array.|null} [uninterpretedOption] FileOptions uninterpretedOption + * @property {Array.|null} [".google.api.resourceDefinition"] FileOptions .google.api.resourceDefinition + */ - /** - * Encodes the specified Entity message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Entity.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {google.analytics.data.v1alpha.IEntity} message Entity message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Entity.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Constructs a new FileOptions. + * @memberof google.protobuf + * @classdesc Represents a FileOptions. + * @implements IFileOptions + * @constructor + * @param {google.protobuf.IFileOptions=} [properties] Properties to set + */ + function FileOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.resourceDefinition"] = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Decodes an Entity message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Entity} Entity - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Entity.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Entity(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.propertyId = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FileOptions javaPackage. + * @member {string} javaPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaPackage = ""; - /** - * Decodes an Entity message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Entity} Entity - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Entity.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FileOptions javaOuterClassname. + * @member {string} javaOuterClassname + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaOuterClassname = ""; - /** - * Verifies an Entity message. - * @function verify - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Entity.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.propertyId != null && message.hasOwnProperty("propertyId")) - if (!$util.isString(message.propertyId)) - return "propertyId: string expected"; - return null; - }; + /** + * FileOptions javaMultipleFiles. + * @member {boolean} javaMultipleFiles + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaMultipleFiles = false; - /** - * Creates an Entity message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Entity} Entity - */ - Entity.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Entity) - return object; - var message = new $root.google.analytics.data.v1alpha.Entity(); - if (object.propertyId != null) - message.propertyId = String(object.propertyId); - return message; - }; + /** + * FileOptions javaGenerateEqualsAndHash. + * @member {boolean} javaGenerateEqualsAndHash + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaGenerateEqualsAndHash = false; - /** - * Creates a plain object from an Entity message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Entity - * @static - * @param {google.analytics.data.v1alpha.Entity} message Entity - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Entity.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.propertyId = ""; - if (message.propertyId != null && message.hasOwnProperty("propertyId")) - object.propertyId = message.propertyId; - return object; - }; + /** + * FileOptions javaStringCheckUtf8. + * @member {boolean} javaStringCheckUtf8 + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaStringCheckUtf8 = false; - /** - * Converts this Entity to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Entity - * @instance - * @returns {Object.} JSON object - */ - Entity.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FileOptions optimizeFor. + * @member {google.protobuf.FileOptions.OptimizeMode} optimizeFor + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.optimizeFor = 1; - return Entity; - })(); + /** + * FileOptions goPackage. + * @member {string} goPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.goPackage = ""; - v1alpha.Dimension = (function() { + /** + * FileOptions ccGenericServices. + * @member {boolean} ccGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.ccGenericServices = false; - /** - * Properties of a Dimension. - * @memberof google.analytics.data.v1alpha - * @interface IDimension - * @property {string|null} [name] Dimension name - * @property {google.analytics.data.v1alpha.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression - */ + /** + * FileOptions javaGenericServices. + * @member {boolean} javaGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.javaGenericServices = false; - /** - * Constructs a new Dimension. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Dimension. - * @implements IDimension - * @constructor - * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set - */ - function Dimension(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * FileOptions pyGenericServices. + * @member {boolean} pyGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.pyGenericServices = false; - /** - * Dimension name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Dimension - * @instance - */ - Dimension.prototype.name = ""; + /** + * FileOptions phpGenericServices. + * @member {boolean} phpGenericServices + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpGenericServices = false; - /** - * Dimension dimensionExpression. - * @member {google.analytics.data.v1alpha.IDimensionExpression|null|undefined} dimensionExpression - * @memberof google.analytics.data.v1alpha.Dimension - * @instance - */ - Dimension.prototype.dimensionExpression = null; + /** + * FileOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.deprecated = false; - /** - * Creates a new Dimension instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Dimension} Dimension instance - */ - Dimension.create = function create(properties) { - return new Dimension(properties); - }; - - /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Dimension.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) - $root.google.analytics.data.v1alpha.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Dimension.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a Dimension message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Dimension} Dimension - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Dimension.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Dimension(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Dimension} Dimension - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Dimension.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FileOptions ccEnableArenas. + * @member {boolean} ccEnableArenas + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.ccEnableArenas = true; - /** - * Verifies a Dimension message. - * @function verify - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Dimension.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.verify(message.dimensionExpression); - if (error) - return "dimensionExpression." + error; - } - return null; - }; + /** + * FileOptions objcClassPrefix. + * @member {string} objcClassPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.objcClassPrefix = ""; - /** - * Creates a Dimension message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Dimension} Dimension - */ - Dimension.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Dimension) - return object; - var message = new $root.google.analytics.data.v1alpha.Dimension(); - if (object.name != null) - message.name = String(object.name); - if (object.dimensionExpression != null) { - if (typeof object.dimensionExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.Dimension.dimensionExpression: object expected"); - message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.fromObject(object.dimensionExpression); - } - return message; - }; + /** + * FileOptions csharpNamespace. + * @member {string} csharpNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.csharpNamespace = ""; - /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Dimension - * @static - * @param {google.analytics.data.v1alpha.Dimension} message Dimension - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Dimension.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.dimensionExpression = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) - object.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.toObject(message.dimensionExpression, options); - return object; - }; + /** + * FileOptions swiftPrefix. + * @member {string} swiftPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.swiftPrefix = ""; - /** - * Converts this Dimension to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Dimension - * @instance - * @returns {Object.} JSON object - */ - Dimension.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FileOptions phpClassPrefix. + * @member {string} phpClassPrefix + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpClassPrefix = ""; - return Dimension; - })(); + /** + * FileOptions phpNamespace. + * @member {string} phpNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpNamespace = ""; - v1alpha.DimensionExpression = (function() { + /** + * FileOptions phpMetadataNamespace. + * @member {string} phpMetadataNamespace + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.phpMetadataNamespace = ""; - /** - * Properties of a DimensionExpression. - * @memberof google.analytics.data.v1alpha - * @interface IDimensionExpression - * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase - * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase - * @property {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate - */ + /** + * FileOptions rubyPackage. + * @member {string} rubyPackage + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.rubyPackage = ""; - /** - * Constructs a new DimensionExpression. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionExpression. - * @implements IDimensionExpression - * @constructor - * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set - */ - function DimensionExpression(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * FileOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * DimensionExpression lowerCase. - * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} lowerCase - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @instance - */ - DimensionExpression.prototype.lowerCase = null; + /** + * FileOptions .google.api.resourceDefinition. + * @member {Array.} .google.api.resourceDefinition + * @memberof google.protobuf.FileOptions + * @instance + */ + FileOptions.prototype[".google.api.resourceDefinition"] = $util.emptyArray; - /** - * DimensionExpression upperCase. - * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} upperCase - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @instance - */ - DimensionExpression.prototype.upperCase = null; + /** + * Creates a new FileOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions=} [properties] Properties to set + * @returns {google.protobuf.FileOptions} FileOptions instance + */ + FileOptions.create = function create(properties) { + return new FileOptions(properties); + }; - /** - * DimensionExpression concatenate. - * @member {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null|undefined} concatenate - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @instance - */ - DimensionExpression.prototype.concatenate = null; + /** + * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage); + if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.javaOuterClassname); + if (message.optimizeFor != null && Object.hasOwnProperty.call(message, "optimizeFor")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.optimizeFor); + if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, "javaMultipleFiles")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.javaMultipleFiles); + if (message.goPackage != null && Object.hasOwnProperty.call(message, "goPackage")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.goPackage); + if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, "ccGenericServices")) + writer.uint32(/* id 16, wireType 0 =*/128).bool(message.ccGenericServices); + if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, "javaGenericServices")) + writer.uint32(/* id 17, wireType 0 =*/136).bool(message.javaGenericServices); + if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, "pyGenericServices")) + writer.uint32(/* id 18, wireType 0 =*/144).bool(message.pyGenericServices); + if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, "javaGenerateEqualsAndHash")) + writer.uint32(/* id 20, wireType 0 =*/160).bool(message.javaGenerateEqualsAndHash); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 23, wireType 0 =*/184).bool(message.deprecated); + if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, "javaStringCheckUtf8")) + writer.uint32(/* id 27, wireType 0 =*/216).bool(message.javaStringCheckUtf8); + if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, "ccEnableArenas")) + writer.uint32(/* id 31, wireType 0 =*/248).bool(message.ccEnableArenas); + if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, "objcClassPrefix")) + writer.uint32(/* id 36, wireType 2 =*/290).string(message.objcClassPrefix); + if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, "csharpNamespace")) + writer.uint32(/* id 37, wireType 2 =*/298).string(message.csharpNamespace); + if (message.swiftPrefix != null && Object.hasOwnProperty.call(message, "swiftPrefix")) + writer.uint32(/* id 39, wireType 2 =*/314).string(message.swiftPrefix); + if (message.phpClassPrefix != null && Object.hasOwnProperty.call(message, "phpClassPrefix")) + writer.uint32(/* id 40, wireType 2 =*/322).string(message.phpClassPrefix); + if (message.phpNamespace != null && Object.hasOwnProperty.call(message, "phpNamespace")) + writer.uint32(/* id 41, wireType 2 =*/330).string(message.phpNamespace); + if (message.phpGenericServices != null && Object.hasOwnProperty.call(message, "phpGenericServices")) + writer.uint32(/* id 42, wireType 0 =*/336).bool(message.phpGenericServices); + if (message.phpMetadataNamespace != null && Object.hasOwnProperty.call(message, "phpMetadataNamespace")) + writer.uint32(/* id 44, wireType 2 =*/354).string(message.phpMetadataNamespace); + if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) + writer.uint32(/* id 45, wireType 2 =*/362).string(message.rubyPackage); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.resourceDefinition"] != null && message[".google.api.resourceDefinition"].length) + for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) + $root.google.api.ResourceDescriptor.encode(message[".google.api.resourceDefinition"][i], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + return writer; + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FileOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * DimensionExpression oneExpression. - * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @instance - */ - Object.defineProperty(DimensionExpression.prototype, "oneExpression", { - get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Decodes a FileOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FileOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FileOptions} FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.javaPackage = reader.string(); + break; + case 8: + message.javaOuterClassname = reader.string(); + break; + case 10: + message.javaMultipleFiles = reader.bool(); + break; + case 20: + message.javaGenerateEqualsAndHash = reader.bool(); + break; + case 27: + message.javaStringCheckUtf8 = reader.bool(); + break; + case 9: + message.optimizeFor = reader.int32(); + break; + case 11: + message.goPackage = reader.string(); + break; + case 16: + message.ccGenericServices = reader.bool(); + break; + case 17: + message.javaGenericServices = reader.bool(); + break; + case 18: + message.pyGenericServices = reader.bool(); + break; + case 42: + message.phpGenericServices = reader.bool(); + break; + case 23: + message.deprecated = reader.bool(); + break; + case 31: + message.ccEnableArenas = reader.bool(); + break; + case 36: + message.objcClassPrefix = reader.string(); + break; + case 37: + message.csharpNamespace = reader.string(); + break; + case 39: + message.swiftPrefix = reader.string(); + break; + case 40: + message.phpClassPrefix = reader.string(); + break; + case 41: + message.phpNamespace = reader.string(); + break; + case 44: + message.phpMetadataNamespace = reader.string(); + break; + case 45: + message.rubyPackage = reader.string(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1053: + if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) + message[".google.api.resourceDefinition"] = []; + message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a new DimensionExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression instance - */ - DimensionExpression.create = function create(properties) { - return new DimensionExpression(properties); - }; + /** + * Decodes a FileOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FileOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FileOptions} FileOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FileOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) - $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) - $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) - $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Verifies a FileOptions message. + * @function verify + * @memberof google.protobuf.FileOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FileOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + if (!$util.isString(message.javaPackage)) + return "javaPackage: string expected"; + if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + if (!$util.isString(message.javaOuterClassname)) + return "javaOuterClassname: string expected"; + if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + if (typeof message.javaMultipleFiles !== "boolean") + return "javaMultipleFiles: boolean expected"; + if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + if (typeof message.javaGenerateEqualsAndHash !== "boolean") + return "javaGenerateEqualsAndHash: boolean expected"; + if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + if (typeof message.javaStringCheckUtf8 !== "boolean") + return "javaStringCheckUtf8: boolean expected"; + if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + switch (message.optimizeFor) { + default: + return "optimizeFor: enum value expected"; + case 1: + case 2: + case 3: + break; + } + if (message.goPackage != null && message.hasOwnProperty("goPackage")) + if (!$util.isString(message.goPackage)) + return "goPackage: string expected"; + if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + if (typeof message.ccGenericServices !== "boolean") + return "ccGenericServices: boolean expected"; + if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + if (typeof message.javaGenericServices !== "boolean") + return "javaGenericServices: boolean expected"; + if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + if (typeof message.pyGenericServices !== "boolean") + return "pyGenericServices: boolean expected"; + if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + if (typeof message.phpGenericServices !== "boolean") + return "phpGenericServices: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + if (typeof message.ccEnableArenas !== "boolean") + return "ccEnableArenas: boolean expected"; + if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + if (!$util.isString(message.objcClassPrefix)) + return "objcClassPrefix: string expected"; + if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + if (!$util.isString(message.csharpNamespace)) + return "csharpNamespace: string expected"; + if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + if (!$util.isString(message.swiftPrefix)) + return "swiftPrefix: string expected"; + if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + if (!$util.isString(message.phpClassPrefix)) + return "phpClassPrefix: string expected"; + if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + if (!$util.isString(message.phpNamespace)) + return "phpNamespace: string expected"; + if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + if (!$util.isString(message.phpMetadataNamespace)) + return "phpMetadataNamespace: string expected"; + if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + if (!$util.isString(message.rubyPackage)) + return "rubyPackage: string expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.resourceDefinition"] != null && message.hasOwnProperty(".google.api.resourceDefinition")) { + if (!Array.isArray(message[".google.api.resourceDefinition"])) + return ".google.api.resourceDefinition: array expected"; + for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) { + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resourceDefinition"][i]); + if (error) + return ".google.api.resourceDefinition." + error; + } + } + return null; + }; - /** - * Decodes a DimensionExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 4: - message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); - break; - case 5: - message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); - break; - case 6: - message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a FileOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FileOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FileOptions} FileOptions + */ + FileOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FileOptions) + return object; + var message = new $root.google.protobuf.FileOptions(); + if (object.javaPackage != null) + message.javaPackage = String(object.javaPackage); + if (object.javaOuterClassname != null) + message.javaOuterClassname = String(object.javaOuterClassname); + if (object.javaMultipleFiles != null) + message.javaMultipleFiles = Boolean(object.javaMultipleFiles); + if (object.javaGenerateEqualsAndHash != null) + message.javaGenerateEqualsAndHash = Boolean(object.javaGenerateEqualsAndHash); + if (object.javaStringCheckUtf8 != null) + message.javaStringCheckUtf8 = Boolean(object.javaStringCheckUtf8); + switch (object.optimizeFor) { + case "SPEED": + case 1: + message.optimizeFor = 1; + break; + case "CODE_SIZE": + case 2: + message.optimizeFor = 2; + break; + case "LITE_RUNTIME": + case 3: + message.optimizeFor = 3; + break; + } + if (object.goPackage != null) + message.goPackage = String(object.goPackage); + if (object.ccGenericServices != null) + message.ccGenericServices = Boolean(object.ccGenericServices); + if (object.javaGenericServices != null) + message.javaGenericServices = Boolean(object.javaGenericServices); + if (object.pyGenericServices != null) + message.pyGenericServices = Boolean(object.pyGenericServices); + if (object.phpGenericServices != null) + message.phpGenericServices = Boolean(object.phpGenericServices); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.ccEnableArenas != null) + message.ccEnableArenas = Boolean(object.ccEnableArenas); + if (object.objcClassPrefix != null) + message.objcClassPrefix = String(object.objcClassPrefix); + if (object.csharpNamespace != null) + message.csharpNamespace = String(object.csharpNamespace); + if (object.swiftPrefix != null) + message.swiftPrefix = String(object.swiftPrefix); + if (object.phpClassPrefix != null) + message.phpClassPrefix = String(object.phpClassPrefix); + if (object.phpNamespace != null) + message.phpNamespace = String(object.phpNamespace); + if (object.phpMetadataNamespace != null) + message.phpMetadataNamespace = String(object.phpMetadataNamespace); + if (object.rubyPackage != null) + message.rubyPackage = String(object.rubyPackage); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.resourceDefinition"]) { + if (!Array.isArray(object[".google.api.resourceDefinition"])) + throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: array expected"); + message[".google.api.resourceDefinition"] = []; + for (var i = 0; i < object[".google.api.resourceDefinition"].length; ++i) { + if (typeof object[".google.api.resourceDefinition"][i] !== "object") + throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: object expected"); + message[".google.api.resourceDefinition"][i] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resourceDefinition"][i]); + } + } + return message; + }; - /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a plain object from a FileOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FileOptions + * @static + * @param {google.protobuf.FileOptions} message FileOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FileOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.resourceDefinition"] = []; + } + if (options.defaults) { + object.javaPackage = ""; + object.javaOuterClassname = ""; + object.optimizeFor = options.enums === String ? "SPEED" : 1; + object.javaMultipleFiles = false; + object.goPackage = ""; + object.ccGenericServices = false; + object.javaGenericServices = false; + object.pyGenericServices = false; + object.javaGenerateEqualsAndHash = false; + object.deprecated = false; + object.javaStringCheckUtf8 = false; + object.ccEnableArenas = true; + object.objcClassPrefix = ""; + object.csharpNamespace = ""; + object.swiftPrefix = ""; + object.phpClassPrefix = ""; + object.phpNamespace = ""; + object.phpGenericServices = false; + object.phpMetadataNamespace = ""; + object.rubyPackage = ""; + } + if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) + object.javaPackage = message.javaPackage; + if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) + object.javaOuterClassname = message.javaOuterClassname; + if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) + object.optimizeFor = options.enums === String ? $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] : message.optimizeFor; + if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) + object.javaMultipleFiles = message.javaMultipleFiles; + if (message.goPackage != null && message.hasOwnProperty("goPackage")) + object.goPackage = message.goPackage; + if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) + object.ccGenericServices = message.ccGenericServices; + if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) + object.javaGenericServices = message.javaGenericServices; + if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) + object.pyGenericServices = message.pyGenericServices; + if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) + object.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) + object.javaStringCheckUtf8 = message.javaStringCheckUtf8; + if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) + object.ccEnableArenas = message.ccEnableArenas; + if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) + object.objcClassPrefix = message.objcClassPrefix; + if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) + object.csharpNamespace = message.csharpNamespace; + if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) + object.swiftPrefix = message.swiftPrefix; + if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) + object.phpClassPrefix = message.phpClassPrefix; + if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) + object.phpNamespace = message.phpNamespace; + if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) + object.phpGenericServices = message.phpGenericServices; + if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) + object.phpMetadataNamespace = message.phpMetadataNamespace; + if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) + object.rubyPackage = message.rubyPackage; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length) { + object[".google.api.resourceDefinition"] = []; + for (var j = 0; j < message[".google.api.resourceDefinition"].length; ++j) + object[".google.api.resourceDefinition"][j] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resourceDefinition"][j], options); + } + return object; + }; - /** - * Verifies a DimensionExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DimensionExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.lowerCase); - if (error) - return "lowerCase." + error; - } - } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.upperCase); - if (error) - return "upperCase." + error; - } - } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; - { - var error = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify(message.concatenate); - if (error) - return "concatenate." + error; - } - } - return null; - }; + /** + * Converts this FileOptions to JSON. + * @function toJSON + * @memberof google.protobuf.FileOptions + * @instance + * @returns {Object.} JSON object + */ + FileOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression - */ - DimensionExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression(); - if (object.lowerCase != null) { - if (typeof object.lowerCase !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.lowerCase: object expected"); - message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.lowerCase); - } - if (object.upperCase != null) { - if (typeof object.upperCase !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.upperCase: object expected"); - message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.upperCase); - } - if (object.concatenate != null) { - if (typeof object.concatenate !== "object") - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.concatenate: object expected"); - message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); - } - return message; - }; + /** + * OptimizeMode enum. + * @name google.protobuf.FileOptions.OptimizeMode + * @enum {number} + * @property {number} SPEED=1 SPEED value + * @property {number} CODE_SIZE=2 CODE_SIZE value + * @property {number} LITE_RUNTIME=3 LITE_RUNTIME value + */ + FileOptions.OptimizeMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "SPEED"] = 1; + values[valuesById[2] = "CODE_SIZE"] = 2; + values[valuesById[3] = "LITE_RUNTIME"] = 3; + return values; + })(); - /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression} message DimensionExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DimensionExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - object.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); - if (options.oneofs) - object.oneExpression = "lowerCase"; - } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - object.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.upperCase, options); - if (options.oneofs) - object.oneExpression = "upperCase"; - } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - object.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); - if (options.oneofs) - object.oneExpression = "concatenate"; - } - return object; - }; + return FileOptions; + })(); - /** - * Converts this DimensionExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @instance - * @returns {Object.} JSON object - */ - DimensionExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + protobuf.MessageOptions = (function() { - DimensionExpression.CaseExpression = (function() { + /** + * Properties of a MessageOptions. + * @memberof google.protobuf + * @interface IMessageOptions + * @property {boolean|null} [messageSetWireFormat] MessageOptions messageSetWireFormat + * @property {boolean|null} [noStandardDescriptorAccessor] MessageOptions noStandardDescriptorAccessor + * @property {boolean|null} [deprecated] MessageOptions deprecated + * @property {boolean|null} [mapEntry] MessageOptions mapEntry + * @property {Array.|null} [uninterpretedOption] MessageOptions uninterpretedOption + * @property {google.api.IResourceDescriptor|null} [".google.api.resource"] MessageOptions .google.api.resource + */ - /** - * Properties of a CaseExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @interface ICaseExpression - * @property {string|null} [dimensionName] CaseExpression dimensionName - */ + /** + * Constructs a new MessageOptions. + * @memberof google.protobuf + * @classdesc Represents a MessageOptions. + * @implements IMessageOptions + * @constructor + * @param {google.protobuf.IMessageOptions=} [properties] Properties to set + */ + function MessageOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new CaseExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @classdesc Represents a CaseExpression. - * @implements ICaseExpression - * @constructor - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set - */ - function CaseExpression(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * MessageOptions messageSetWireFormat. + * @member {boolean} messageSetWireFormat + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.messageSetWireFormat = false; - /** - * CaseExpression dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @instance - */ - CaseExpression.prototype.dimensionName = ""; + /** + * MessageOptions noStandardDescriptorAccessor. + * @member {boolean} noStandardDescriptorAccessor + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.noStandardDescriptorAccessor = false; - /** - * Creates a new CaseExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression instance - */ - CaseExpression.create = function create(properties) { - return new CaseExpression(properties); - }; + /** + * MessageOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.deprecated = false; - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - return writer; - }; + /** + * MessageOptions mapEntry. + * @member {boolean} mapEntry + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.mapEntry = false; - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * MessageOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * MessageOptions .google.api.resource. + * @member {google.api.IResourceDescriptor|null|undefined} .google.api.resource + * @memberof google.protobuf.MessageOptions + * @instance + */ + MessageOptions.prototype[".google.api.resource"] = null; - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a new MessageOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions=} [properties] Properties to set + * @returns {google.protobuf.MessageOptions} MessageOptions instance + */ + MessageOptions.create = function create(properties) { + return new MessageOptions(properties); + }; - /** - * Verifies a CaseExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CaseExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - return null; - }; + /** + * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat); + if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.noStandardDescriptorAccessor); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.mapEntry != null && Object.hasOwnProperty.call(message, "mapEntry")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.mapEntry); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) + $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); + return writer; + }; - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression - */ - CaseExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - return message; - }; + /** + * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} message CaseExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CaseExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.dimensionName = ""; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - return object; - }; + /** + * Decodes a MessageOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MessageOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MessageOptions} MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MessageOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.messageSetWireFormat = reader.bool(); + break; + case 2: + message.noStandardDescriptorAccessor = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 7: + message.mapEntry = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1053: + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Converts this CaseExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression - * @instance - * @returns {Object.} JSON object - */ - CaseExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a MessageOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MessageOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MessageOptions} MessageOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - return CaseExpression; - })(); + /** + * Verifies a MessageOptions message. + * @function verify + * @memberof google.protobuf.MessageOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + if (typeof message.messageSetWireFormat !== "boolean") + return "messageSetWireFormat: boolean expected"; + if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + if (typeof message.noStandardDescriptorAccessor !== "boolean") + return "noStandardDescriptorAccessor: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + if (typeof message.mapEntry !== "boolean") + return "mapEntry: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) { + var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"]); + if (error) + return ".google.api.resource." + error; + } + return null; + }; - DimensionExpression.ConcatenateExpression = (function() { + /** + * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MessageOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MessageOptions} MessageOptions + */ + MessageOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MessageOptions) + return object; + var message = new $root.google.protobuf.MessageOptions(); + if (object.messageSetWireFormat != null) + message.messageSetWireFormat = Boolean(object.messageSetWireFormat); + if (object.noStandardDescriptorAccessor != null) + message.noStandardDescriptorAccessor = Boolean(object.noStandardDescriptorAccessor); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.mapEntry != null) + message.mapEntry = Boolean(object.mapEntry); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.resource"] != null) { + if (typeof object[".google.api.resource"] !== "object") + throw TypeError(".google.protobuf.MessageOptions..google.api.resource: object expected"); + message[".google.api.resource"] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resource"]); + } + return message; + }; - /** - * Properties of a ConcatenateExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @interface IConcatenateExpression - * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames - * @property {string|null} [delimiter] ConcatenateExpression delimiter - */ + /** + * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MessageOptions + * @static + * @param {google.protobuf.MessageOptions} message MessageOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.messageSetWireFormat = false; + object.noStandardDescriptorAccessor = false; + object.deprecated = false; + object.mapEntry = false; + object[".google.api.resource"] = null; + } + if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) + object.messageSetWireFormat = message.messageSetWireFormat; + if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) + object.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) + object.mapEntry = message.mapEntry; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) + object[".google.api.resource"] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resource"], options); + return object; + }; - /** - * Constructs a new ConcatenateExpression. - * @memberof google.analytics.data.v1alpha.DimensionExpression - * @classdesc Represents a ConcatenateExpression. - * @implements IConcatenateExpression - * @constructor - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - */ - function ConcatenateExpression(properties) { - this.dimensionNames = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Converts this MessageOptions to JSON. + * @function toJSON + * @memberof google.protobuf.MessageOptions + * @instance + * @returns {Object.} JSON object + */ + MessageOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * ConcatenateExpression dimensionNames. - * @member {Array.} dimensionNames - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; + return MessageOptions; + })(); - /** - * ConcatenateExpression delimiter. - * @member {string} delimiter - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.delimiter = ""; + protobuf.FieldOptions = (function() { - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance - */ - ConcatenateExpression.create = function create(properties) { - return new ConcatenateExpression(properties); - }; + /** + * Properties of a FieldOptions. + * @memberof google.protobuf + * @interface IFieldOptions + * @property {google.protobuf.FieldOptions.CType|null} [ctype] FieldOptions ctype + * @property {boolean|null} [packed] FieldOptions packed + * @property {google.protobuf.FieldOptions.JSType|null} [jstype] FieldOptions jstype + * @property {boolean|null} [lazy] FieldOptions lazy + * @property {boolean|null} [deprecated] FieldOptions deprecated + * @property {boolean|null} [weak] FieldOptions weak + * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption + * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior + * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference + */ - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionNames != null && message.dimensionNames.length) - for (var i = 0; i < message.dimensionNames.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); - if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); - return writer; - }; - - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Constructs a new FieldOptions. + * @memberof google.protobuf + * @classdesc Represents a FieldOptions. + * @implements IFieldOptions + * @constructor + * @param {google.protobuf.IFieldOptions=} [properties] Properties to set + */ + function FieldOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.fieldBehavior"] = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.dimensionNames && message.dimensionNames.length)) - message.dimensionNames = []; - message.dimensionNames.push(reader.string()); - break; - case 2: - message.delimiter = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FieldOptions ctype. + * @member {google.protobuf.FieldOptions.CType} ctype + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.ctype = 0; - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * FieldOptions packed. + * @member {boolean} packed + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.packed = false; - /** - * Verifies a ConcatenateExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ConcatenateExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { - if (!Array.isArray(message.dimensionNames)) - return "dimensionNames: array expected"; - for (var i = 0; i < message.dimensionNames.length; ++i) - if (!$util.isString(message.dimensionNames[i])) - return "dimensionNames: string[] expected"; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - if (!$util.isString(message.delimiter)) - return "delimiter: string expected"; - return null; - }; + /** + * FieldOptions jstype. + * @member {google.protobuf.FieldOptions.JSType} jstype + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.jstype = 0; - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression - */ - ConcatenateExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); - if (object.dimensionNames) { - if (!Array.isArray(object.dimensionNames)) - throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); - message.dimensionNames = []; - for (var i = 0; i < object.dimensionNames.length; ++i) - message.dimensionNames[i] = String(object.dimensionNames[i]); - } - if (object.delimiter != null) - message.delimiter = String(object.delimiter); - return message; - }; + /** + * FieldOptions lazy. + * @member {boolean} lazy + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.lazy = false; - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} message ConcatenateExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ConcatenateExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.dimensionNames = []; - if (options.defaults) - object.delimiter = ""; - if (message.dimensionNames && message.dimensionNames.length) { - object.dimensionNames = []; - for (var j = 0; j < message.dimensionNames.length; ++j) - object.dimensionNames[j] = message.dimensionNames[j]; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - object.delimiter = message.delimiter; - return object; - }; + /** + * FieldOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.deprecated = false; - /** - * Converts this ConcatenateExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression - * @instance - * @returns {Object.} JSON object - */ - ConcatenateExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FieldOptions weak. + * @member {boolean} weak + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.weak = false; - return ConcatenateExpression; - })(); + /** + * FieldOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype.uninterpretedOption = $util.emptyArray; - return DimensionExpression; - })(); + /** + * FieldOptions .google.api.fieldBehavior. + * @member {Array.} .google.api.fieldBehavior + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray; - v1alpha.Metric = (function() { + /** + * FieldOptions .google.api.resourceReference. + * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.resourceReference"] = null; - /** - * Properties of a Metric. - * @memberof google.analytics.data.v1alpha - * @interface IMetric - * @property {string|null} [name] Metric name - * @property {string|null} [expression] Metric expression - * @property {boolean|null} [invisible] Metric invisible - */ + /** + * Creates a new FieldOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions=} [properties] Properties to set + * @returns {google.protobuf.FieldOptions} FieldOptions instance + */ + FieldOptions.create = function create(properties) { + return new FieldOptions(properties); + }; - /** - * Constructs a new Metric. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Metric. - * @implements IMetric - * @constructor - * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set - */ - function Metric(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype); + if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.packed); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.lazy != null && Object.hasOwnProperty.call(message, "lazy")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.lazy); + if (message.jstype != null && Object.hasOwnProperty.call(message, "jstype")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype); + if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.fieldBehavior"] != null && message[".google.api.fieldBehavior"].length) { + writer.uint32(/* id 1052, wireType 2 =*/8418).fork(); + for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) + writer.int32(message[".google.api.fieldBehavior"][i]); + writer.ldelim(); + } + if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) + $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); + return writer; + }; - /** - * Metric name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.name = ""; + /** + * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Metric expression. - * @member {string} expression - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.expression = ""; + /** + * Decodes a FieldOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.FieldOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.FieldOptions} FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ctype = reader.int32(); + break; + case 2: + message.packed = reader.bool(); + break; + case 6: + message.jstype = reader.int32(); + break; + case 5: + message.lazy = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 10: + message.weak = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1052: + if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length)) + message[".google.api.fieldBehavior"] = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message[".google.api.fieldBehavior"].push(reader.int32()); + } else + message[".google.api.fieldBehavior"].push(reader.int32()); + break; + case 1055: + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Metric invisible. - * @member {boolean} invisible - * @memberof google.analytics.data.v1alpha.Metric - * @instance - */ - Metric.prototype.invisible = false; + /** + * Decodes a FieldOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.FieldOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.FieldOptions} FieldOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a new Metric instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {google.analytics.data.v1alpha.IMetric=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Metric} Metric instance - */ - Metric.create = function create(properties) { - return new Metric(properties); - }; + /** + * Verifies a FieldOptions message. + * @function verify + * @memberof google.protobuf.FieldOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ctype != null && message.hasOwnProperty("ctype")) + switch (message.ctype) { + default: + return "ctype: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.packed != null && message.hasOwnProperty("packed")) + if (typeof message.packed !== "boolean") + return "packed: boolean expected"; + if (message.jstype != null && message.hasOwnProperty("jstype")) + switch (message.jstype) { + default: + return "jstype: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.lazy != null && message.hasOwnProperty("lazy")) + if (typeof message.lazy !== "boolean") + return "lazy: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.weak != null && message.hasOwnProperty("weak")) + if (typeof message.weak !== "boolean") + return "weak: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.fieldBehavior"] != null && message.hasOwnProperty(".google.api.fieldBehavior")) { + if (!Array.isArray(message[".google.api.fieldBehavior"])) + return ".google.api.fieldBehavior: array expected"; + for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) + switch (message[".google.api.fieldBehavior"][i]) { + default: + return ".google.api.fieldBehavior: enum value[] expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + } + if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { + var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]); + if (error) + return ".google.api.resourceReference." + error; + } + return null; + }; - /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Metric.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.expression); - if (message.invisible != null && Object.hasOwnProperty.call(message, "invisible")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.invisible); - return writer; - }; - - /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Metric.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {google.analytics.data.v1alpha.IMetric} message Metric message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Metric.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a Metric message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Metric} Metric - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Metric.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Metric(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.expression = reader.string(); - break; - case 3: - message.invisible = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } + /** + * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.FieldOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.FieldOptions} FieldOptions + */ + FieldOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.FieldOptions) + return object; + var message = new $root.google.protobuf.FieldOptions(); + switch (object.ctype) { + case "STRING": + case 0: + message.ctype = 0; + break; + case "CORD": + case 1: + message.ctype = 1; + break; + case "STRING_PIECE": + case 2: + message.ctype = 2; + break; + } + if (object.packed != null) + message.packed = Boolean(object.packed); + switch (object.jstype) { + case "JS_NORMAL": + case 0: + message.jstype = 0; + break; + case "JS_STRING": + case 1: + message.jstype = 1; + break; + case "JS_NUMBER": + case 2: + message.jstype = 2; + break; + } + if (object.lazy != null) + message.lazy = Boolean(object.lazy); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.weak != null) + message.weak = Boolean(object.weak); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.fieldBehavior"]) { + if (!Array.isArray(object[".google.api.fieldBehavior"])) + throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected"); + message[".google.api.fieldBehavior"] = []; + for (var i = 0; i < object[".google.api.fieldBehavior"].length; ++i) + switch (object[".google.api.fieldBehavior"][i]) { + default: + case "FIELD_BEHAVIOR_UNSPECIFIED": + case 0: + message[".google.api.fieldBehavior"][i] = 0; + break; + case "OPTIONAL": + case 1: + message[".google.api.fieldBehavior"][i] = 1; + break; + case "REQUIRED": + case 2: + message[".google.api.fieldBehavior"][i] = 2; + break; + case "OUTPUT_ONLY": + case 3: + message[".google.api.fieldBehavior"][i] = 3; + break; + case "INPUT_ONLY": + case 4: + message[".google.api.fieldBehavior"][i] = 4; + break; + case "IMMUTABLE": + case 5: + message[".google.api.fieldBehavior"][i] = 5; + break; + case "UNORDERED_LIST": + case 6: + message[".google.api.fieldBehavior"][i] = 6; + break; + case "NON_EMPTY_DEFAULT": + case 7: + message[".google.api.fieldBehavior"][i] = 7; + break; } - return message; - }; - - /** - * Decodes a Metric message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Metric} Metric - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Metric.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + if (object[".google.api.resourceReference"] != null) { + if (typeof object[".google.api.resourceReference"] !== "object") + throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected"); + message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]); + } + return message; + }; - /** - * Verifies a Metric message. - * @function verify - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Metric.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.expression != null && message.hasOwnProperty("expression")) - if (!$util.isString(message.expression)) - return "expression: string expected"; - if (message.invisible != null && message.hasOwnProperty("invisible")) - if (typeof message.invisible !== "boolean") - return "invisible: boolean expected"; - return null; - }; + /** + * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldOptions + * @static + * @param {google.protobuf.FieldOptions} message FieldOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.fieldBehavior"] = []; + } + if (options.defaults) { + object.ctype = options.enums === String ? "STRING" : 0; + object.packed = false; + object.deprecated = false; + object.lazy = false; + object.jstype = options.enums === String ? "JS_NORMAL" : 0; + object.weak = false; + object[".google.api.resourceReference"] = null; + } + if (message.ctype != null && message.hasOwnProperty("ctype")) + object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; + if (message.packed != null && message.hasOwnProperty("packed")) + object.packed = message.packed; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.lazy != null && message.hasOwnProperty("lazy")) + object.lazy = message.lazy; + if (message.jstype != null && message.hasOwnProperty("jstype")) + object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype; + if (message.weak != null && message.hasOwnProperty("weak")) + object.weak = message.weak; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length) { + object[".google.api.fieldBehavior"] = []; + for (var j = 0; j < message[".google.api.fieldBehavior"].length; ++j) + object[".google.api.fieldBehavior"][j] = options.enums === String ? $root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]] : message[".google.api.fieldBehavior"][j]; + } + if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) + object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); + return object; + }; - /** - * Creates a Metric message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Metric} Metric - */ - Metric.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Metric) - return object; - var message = new $root.google.analytics.data.v1alpha.Metric(); - if (object.name != null) - message.name = String(object.name); - if (object.expression != null) - message.expression = String(object.expression); - if (object.invisible != null) - message.invisible = Boolean(object.invisible); - return message; - }; + /** + * Converts this FieldOptions to JSON. + * @function toJSON + * @memberof google.protobuf.FieldOptions + * @instance + * @returns {Object.} JSON object + */ + FieldOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Metric - * @static - * @param {google.analytics.data.v1alpha.Metric} message Metric - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Metric.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.expression = ""; - object.invisible = false; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.expression != null && message.hasOwnProperty("expression")) - object.expression = message.expression; - if (message.invisible != null && message.hasOwnProperty("invisible")) - object.invisible = message.invisible; - return object; - }; + /** + * CType enum. + * @name google.protobuf.FieldOptions.CType + * @enum {number} + * @property {number} STRING=0 STRING value + * @property {number} CORD=1 CORD value + * @property {number} STRING_PIECE=2 STRING_PIECE value + */ + FieldOptions.CType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STRING"] = 0; + values[valuesById[1] = "CORD"] = 1; + values[valuesById[2] = "STRING_PIECE"] = 2; + return values; + })(); - /** - * Converts this Metric to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Metric - * @instance - * @returns {Object.} JSON object - */ - Metric.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * JSType enum. + * @name google.protobuf.FieldOptions.JSType + * @enum {number} + * @property {number} JS_NORMAL=0 JS_NORMAL value + * @property {number} JS_STRING=1 JS_STRING value + * @property {number} JS_NUMBER=2 JS_NUMBER value + */ + FieldOptions.JSType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "JS_NORMAL"] = 0; + values[valuesById[1] = "JS_STRING"] = 1; + values[valuesById[2] = "JS_NUMBER"] = 2; + return values; + })(); - return Metric; - })(); + return FieldOptions; + })(); - v1alpha.FilterExpression = (function() { + protobuf.OneofOptions = (function() { - /** - * Properties of a FilterExpression. - * @memberof google.analytics.data.v1alpha - * @interface IFilterExpression - * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [andGroup] FilterExpression andGroup - * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [orGroup] FilterExpression orGroup - * @property {google.analytics.data.v1alpha.IFilterExpression|null} [notExpression] FilterExpression notExpression - * @property {google.analytics.data.v1alpha.IFilter|null} [filter] FilterExpression filter - */ + /** + * Properties of an OneofOptions. + * @memberof google.protobuf + * @interface IOneofOptions + * @property {Array.|null} [uninterpretedOption] OneofOptions uninterpretedOption + */ - /** - * Constructs a new FilterExpression. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FilterExpression. - * @implements IFilterExpression - * @constructor - * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set - */ - function FilterExpression(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new OneofOptions. + * @memberof google.protobuf + * @classdesc Represents an OneofOptions. + * @implements IOneofOptions + * @constructor + * @param {google.protobuf.IOneofOptions=} [properties] Properties to set + */ + function OneofOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * FilterExpression andGroup. - * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.andGroup = null; + /** + * OneofOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.OneofOptions + * @instance + */ + OneofOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * FilterExpression orGroup. - * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.orGroup = null; + /** + * Creates a new OneofOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions=} [properties] Properties to set + * @returns {google.protobuf.OneofOptions} OneofOptions instance + */ + OneofOptions.create = function create(properties) { + return new OneofOptions(properties); + }; - /** - * FilterExpression notExpression. - * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.notExpression = null; + /** + * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; - /** - * FilterExpression filter. - * @member {google.analytics.data.v1alpha.IFilter|null|undefined} filter - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - FilterExpression.prototype.filter = null; + /** + * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OneofOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Decodes an OneofOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.OneofOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.OneofOptions} OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * FilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - */ - Object.defineProperty(FilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Decodes an OneofOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.OneofOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.OneofOptions} OneofOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OneofOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a new FilterExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression instance - */ - FilterExpression.create = function create(properties) { - return new FilterExpression(properties); - }; + /** + * Verifies an OneofOptions message. + * @function verify + * @memberof google.protobuf.OneofOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OneofOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; - /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FilterExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) - $root.google.analytics.data.v1alpha.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - return writer; - }; + /** + * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.OneofOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.OneofOptions} OneofOptions + */ + OneofOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.OneofOptions) + return object; + var message = new $root.google.protobuf.OneofOptions(); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; - /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.OneofOptions + * @static + * @param {google.protobuf.OneofOptions} message OneofOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OneofOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; - /** - * Decodes a FilterExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FilterExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); - break; - case 2: - message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); - break; - case 3: - message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); - break; - case 4: - message.filter = $root.google.analytics.data.v1alpha.Filter.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Converts this OneofOptions to JSON. + * @function toJSON + * @memberof google.protobuf.OneofOptions + * @instance + * @returns {Object.} JSON object + */ + OneofOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FilterExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + return OneofOptions; + })(); - /** - * Verifies a FilterExpression message. - * @function verify - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FilterExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.andGroup); - if (error) - return "andGroup." + error; - } - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.orGroup); - if (error) - return "orGroup." + error; - } - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.notExpression); - if (error) - return "notExpression." + error; - } - } - if (message.filter != null && message.hasOwnProperty("filter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.verify(message.filter); - if (error) - return "filter." + error; - } - } - return null; - }; + protobuf.EnumOptions = (function() { - /** - * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression - */ - FilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FilterExpression) - return object; - var message = new $root.google.analytics.data.v1alpha.FilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.andGroup); - } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.orGroup); - } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.notExpression); - } - if (object.filter != null) { - if (typeof object.filter !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpression.filter: object expected"); - message.filter = $root.google.analytics.data.v1alpha.Filter.fromObject(object.filter); - } - return message; - }; + /** + * Properties of an EnumOptions. + * @memberof google.protobuf + * @interface IEnumOptions + * @property {boolean|null} [allowAlias] EnumOptions allowAlias + * @property {boolean|null} [deprecated] EnumOptions deprecated + * @property {Array.|null} [uninterpretedOption] EnumOptions uninterpretedOption + */ - /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.FilterExpression - * @static - * @param {google.analytics.data.v1alpha.FilterExpression} message FilterExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FilterExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.andGroup, options); - if (options.oneofs) - object.expr = "andGroup"; - } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.orGroup, options); - if (options.oneofs) - object.expr = "orGroup"; - } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.notExpression, options); - if (options.oneofs) - object.expr = "notExpression"; - } - if (message.filter != null && message.hasOwnProperty("filter")) { - object.filter = $root.google.analytics.data.v1alpha.Filter.toObject(message.filter, options); - if (options.oneofs) - object.expr = "filter"; - } - return object; - }; + /** + * Constructs a new EnumOptions. + * @memberof google.protobuf + * @classdesc Represents an EnumOptions. + * @implements IEnumOptions + * @constructor + * @param {google.protobuf.IEnumOptions=} [properties] Properties to set + */ + function EnumOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Converts this FilterExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.FilterExpression - * @instance - * @returns {Object.} JSON object - */ - FilterExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * EnumOptions allowAlias. + * @member {boolean} allowAlias + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.allowAlias = false; - return FilterExpression; - })(); + /** + * EnumOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.deprecated = false; - v1alpha.FilterExpressionList = (function() { + /** + * EnumOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.EnumOptions + * @instance + */ + EnumOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * Properties of a FilterExpressionList. - * @memberof google.analytics.data.v1alpha - * @interface IFilterExpressionList - * @property {Array.|null} [expressions] FilterExpressionList expressions - */ + /** + * Creates a new EnumOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions=} [properties] Properties to set + * @returns {google.protobuf.EnumOptions} EnumOptions instance + */ + EnumOptions.create = function create(properties) { + return new EnumOptions(properties); + }; - /** - * Constructs a new FilterExpressionList. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a FilterExpressionList. - * @implements IFilterExpressionList - * @constructor - * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set - */ - function FilterExpressionList(properties) { - this.expressions = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; - /** - * FilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @instance - */ - FilterExpressionList.prototype.expressions = $util.emptyArray; + /** + * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a new FilterExpressionList instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList instance - */ - FilterExpressionList.create = function create(properties) { - return new FilterExpressionList(properties); - }; + /** + * Decodes an EnumOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumOptions} EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.allowAlias = reader.bool(); + break; + case 3: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FilterExpressionList.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1alpha.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Decodes an EnumOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumOptions} EnumOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Verifies an EnumOptions message. + * @function verify + * @memberof google.protobuf.EnumOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + if (typeof message.allowAlias !== "boolean") + return "allowAlias: boolean expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; - /** - * Decodes a FilterExpressionList message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FilterExpressionList.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumOptions} EnumOptions + */ + EnumOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumOptions) + return object; + var message = new $root.google.protobuf.EnumOptions(); + if (object.allowAlias != null) + message.allowAlias = Boolean(object.allowAlias); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; - /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumOptions + * @static + * @param {google.protobuf.EnumOptions} message EnumOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.allowAlias = false; + object.deprecated = false; + } + if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) + object.allowAlias = message.allowAlias; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; - /** - * Verifies a FilterExpressionList message. - * @function verify - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FilterExpressionList.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.expressions[i]); - if (error) - return "expressions." + error; - } - } - return null; - }; + /** + * Converts this EnumOptions to JSON. + * @function toJSON + * @memberof google.protobuf.EnumOptions + * @instance + * @returns {Object.} JSON object + */ + EnumOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList - */ - FilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.FilterExpressionList) - return object; - var message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.expressions[i]); - } - } - return message; - }; + return EnumOptions; + })(); - /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @static - * @param {google.analytics.data.v1alpha.FilterExpressionList} message FilterExpressionList - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FilterExpressionList.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.expressions[j], options); - } - return object; - }; + protobuf.EnumValueOptions = (function() { - /** - * Converts this FilterExpressionList to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.FilterExpressionList - * @instance - * @returns {Object.} JSON object - */ - FilterExpressionList.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Properties of an EnumValueOptions. + * @memberof google.protobuf + * @interface IEnumValueOptions + * @property {boolean|null} [deprecated] EnumValueOptions deprecated + * @property {Array.|null} [uninterpretedOption] EnumValueOptions uninterpretedOption + */ - return FilterExpressionList; - })(); + /** + * Constructs a new EnumValueOptions. + * @memberof google.protobuf + * @classdesc Represents an EnumValueOptions. + * @implements IEnumValueOptions + * @constructor + * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set + */ + function EnumValueOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - v1alpha.Filter = (function() { + /** + * EnumValueOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.EnumValueOptions + * @instance + */ + EnumValueOptions.prototype.deprecated = false; - /** - * Properties of a Filter. - * @memberof google.analytics.data.v1alpha - * @interface IFilter - * @property {string|null} [fieldName] Filter fieldName - * @property {boolean|null} [nullFilter] Filter nullFilter - * @property {google.analytics.data.v1alpha.Filter.IStringFilter|null} [stringFilter] Filter stringFilter - * @property {google.analytics.data.v1alpha.Filter.IInListFilter|null} [inListFilter] Filter inListFilter - * @property {google.analytics.data.v1alpha.Filter.INumericFilter|null} [numericFilter] Filter numericFilter - * @property {google.analytics.data.v1alpha.Filter.IBetweenFilter|null} [betweenFilter] Filter betweenFilter - */ + /** + * EnumValueOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.EnumValueOptions + * @instance + */ + EnumValueOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * Constructs a new Filter. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Filter. - * @implements IFilter - * @constructor - * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set - */ - function Filter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new EnumValueOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions instance + */ + EnumValueOptions.create = function create(properties) { + return new EnumValueOptions(properties); + }; - /** - * Filter fieldName. - * @member {string} fieldName - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.fieldName = ""; + /** + * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + return writer; + }; - /** - * Filter nullFilter. - * @member {boolean|null|undefined} nullFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.nullFilter = null; + /** + * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EnumValueOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Filter stringFilter. - * @member {google.analytics.data.v1alpha.Filter.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.stringFilter = null; + /** + * Decodes an EnumValueOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Filter inListFilter. - * @member {google.analytics.data.v1alpha.Filter.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.inListFilter = null; + /** + * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EnumValueOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Filter numericFilter. - * @member {google.analytics.data.v1alpha.Filter.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.numericFilter = null; + /** + * Verifies an EnumValueOptions message. + * @function verify + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EnumValueOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + return null; + }; - /** - * Filter betweenFilter. - * @member {google.analytics.data.v1alpha.Filter.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Filter.prototype.betweenFilter = null; + /** + * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.EnumValueOptions} EnumValueOptions + */ + EnumValueOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.EnumValueOptions) + return object; + var message = new $root.google.protobuf.EnumValueOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + return message; + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.EnumValueOptions + * @static + * @param {google.protobuf.EnumValueOptions} message EnumValueOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EnumValueOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) + object.deprecated = false; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + return object; + }; - /** - * Filter oneFilter. - * @member {"nullFilter"|"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1alpha.Filter - * @instance - */ - Object.defineProperty(Filter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["nullFilter", "stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Converts this EnumValueOptions to JSON. + * @function toJSON + * @memberof google.protobuf.EnumValueOptions + * @instance + * @returns {Object.} JSON object + */ + EnumValueOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a new Filter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter} Filter instance - */ - Filter.create = function create(properties) { - return new Filter(properties); - }; - - /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Filter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); - if (message.nullFilter != null && Object.hasOwnProperty.call(message, "nullFilter")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.nullFilter); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1alpha.Filter.StringFilter.encode(message.stringFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1alpha.Filter.InListFilter.encode(message.inListFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1alpha.Filter.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1alpha.Filter.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Filter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + return EnumValueOptions; + })(); - /** - * Decodes a Filter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter} Filter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Filter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.fieldName = reader.string(); - break; - case 2: - message.nullFilter = reader.bool(); - break; - case 3: - message.stringFilter = $root.google.analytics.data.v1alpha.Filter.StringFilter.decode(reader, reader.uint32()); - break; - case 4: - message.inListFilter = $root.google.analytics.data.v1alpha.Filter.InListFilter.decode(reader, reader.uint32()); - break; - case 5: - message.numericFilter = $root.google.analytics.data.v1alpha.Filter.NumericFilter.decode(reader, reader.uint32()); - break; - case 6: - message.betweenFilter = $root.google.analytics.data.v1alpha.Filter.BetweenFilter.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + protobuf.ServiceOptions = (function() { - /** - * Decodes a Filter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter} Filter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Filter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a ServiceOptions. + * @memberof google.protobuf + * @interface IServiceOptions + * @property {boolean|null} [deprecated] ServiceOptions deprecated + * @property {Array.|null} [uninterpretedOption] ServiceOptions uninterpretedOption + * @property {string|null} [".google.api.defaultHost"] ServiceOptions .google.api.defaultHost + * @property {string|null} [".google.api.oauthScopes"] ServiceOptions .google.api.oauthScopes + */ - /** - * Verifies a Filter message. - * @function verify - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Filter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - if (!$util.isString(message.fieldName)) - return "fieldName: string expected"; - if (message.nullFilter != null && message.hasOwnProperty("nullFilter")) { - properties.oneFilter = 1; - if (typeof message.nullFilter !== "boolean") - return "nullFilter: boolean expected"; - } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.StringFilter.verify(message.stringFilter); - if (error) - return "stringFilter." + error; - } - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.InListFilter.verify(message.inListFilter); - if (error) - return "inListFilter." + error; - } - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.NumericFilter.verify(message.numericFilter); - if (error) - return "numericFilter." + error; - } - } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; - { - var error = $root.google.analytics.data.v1alpha.Filter.BetweenFilter.verify(message.betweenFilter); - if (error) - return "betweenFilter." + error; - } - } - return null; - }; + /** + * Constructs a new ServiceOptions. + * @memberof google.protobuf + * @classdesc Represents a ServiceOptions. + * @implements IServiceOptions + * @constructor + * @param {google.protobuf.IServiceOptions=} [properties] Properties to set + */ + function ServiceOptions(properties) { + this.uninterpretedOption = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter} Filter - */ - Filter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter) - return object; - var message = new $root.google.analytics.data.v1alpha.Filter(); - if (object.fieldName != null) - message.fieldName = String(object.fieldName); - if (object.nullFilter != null) - message.nullFilter = Boolean(object.nullFilter); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1alpha.Filter.StringFilter.fromObject(object.stringFilter); - } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1alpha.Filter.InListFilter.fromObject(object.inListFilter); - } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1alpha.Filter.NumericFilter.fromObject(object.numericFilter); - } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1alpha.Filter.BetweenFilter.fromObject(object.betweenFilter); - } - return message; - }; + /** + * ServiceOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype.deprecated = false; - /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Filter - * @static - * @param {google.analytics.data.v1alpha.Filter} message Filter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Filter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.fieldName = ""; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - object.fieldName = message.fieldName; - if (message.nullFilter != null && message.hasOwnProperty("nullFilter")) { - object.nullFilter = message.nullFilter; - if (options.oneofs) - object.oneFilter = "nullFilter"; - } - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1alpha.Filter.StringFilter.toObject(message.stringFilter, options); - if (options.oneofs) - object.oneFilter = "stringFilter"; - } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1alpha.Filter.InListFilter.toObject(message.inListFilter, options); - if (options.oneofs) - object.oneFilter = "inListFilter"; - } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1alpha.Filter.NumericFilter.toObject(message.numericFilter, options); - if (options.oneofs) - object.oneFilter = "numericFilter"; - } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1alpha.Filter.BetweenFilter.toObject(message.betweenFilter, options); - if (options.oneofs) - object.oneFilter = "betweenFilter"; - } - return object; - }; + /** + * ServiceOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype.uninterpretedOption = $util.emptyArray; - /** - * Converts this Filter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter - * @instance - * @returns {Object.} JSON object - */ - Filter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * ServiceOptions .google.api.defaultHost. + * @member {string} .google.api.defaultHost + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype[".google.api.defaultHost"] = ""; - Filter.StringFilter = (function() { + /** + * ServiceOptions .google.api.oauthScopes. + * @member {string} .google.api.oauthScopes + * @memberof google.protobuf.ServiceOptions + * @instance + */ + ServiceOptions.prototype[".google.api.oauthScopes"] = ""; - /** - * Properties of a StringFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @interface IStringFilter - * @property {google.analytics.data.v1alpha.Filter.StringFilter.MatchType|null} [matchType] StringFilter matchType - * @property {string|null} [value] StringFilter value - * @property {boolean|null} [caseSensitive] StringFilter caseSensitive - */ + /** + * Creates a new ServiceOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions=} [properties] Properties to set + * @returns {google.protobuf.ServiceOptions} ServiceOptions instance + */ + ServiceOptions.create = function create(properties) { + return new ServiceOptions(properties); + }; - /** - * Constructs a new StringFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @classdesc Represents a StringFilter. - * @implements IStringFilter - * @constructor - * @param {google.analytics.data.v1alpha.Filter.IStringFilter=} [properties] Properties to set - */ - function StringFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) + writer.uint32(/* id 1049, wireType 2 =*/8394).string(message[".google.api.defaultHost"]); + if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) + writer.uint32(/* id 1050, wireType 2 =*/8402).string(message[".google.api.oauthScopes"]); + return writer; + }; - /** - * StringFilter matchType. - * @member {google.analytics.data.v1alpha.Filter.StringFilter.MatchType} matchType - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @instance - */ - StringFilter.prototype.matchType = 0; + /** + * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ServiceOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * StringFilter value. - * @member {string} value - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @instance - */ - StringFilter.prototype.value = ""; + /** + * Decodes a ServiceOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.ServiceOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 33: + message.deprecated = reader.bool(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 1049: + message[".google.api.defaultHost"] = reader.string(); + break; + case 1050: + message[".google.api.oauthScopes"] = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * StringFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @instance - */ - StringFilter.prototype.caseSensitive = false; + /** + * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.ServiceOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ServiceOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a new StringFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IStringFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter.StringFilter} StringFilter instance - */ - StringFilter.create = function create(properties) { - return new StringFilter(properties); - }; + /** + * Verifies a ServiceOptions message. + * @function verify + * @memberof google.protobuf.ServiceOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ServiceOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + if (!$util.isString(message[".google.api.defaultHost"])) + return ".google.api.defaultHost: string expected"; + if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + if (!$util.isString(message[".google.api.oauthScopes"])) + return ".google.api.oauthScopes: string expected"; + return null; + }; - /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.StringFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); - return writer; - }; + /** + * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.ServiceOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.ServiceOptions} ServiceOptions + */ + ServiceOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.ServiceOptions) + return object; + var message = new $root.google.protobuf.ServiceOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.defaultHost"] != null) + message[".google.api.defaultHost"] = String(object[".google.api.defaultHost"]); + if (object[".google.api.oauthScopes"] != null) + message[".google.api.oauthScopes"] = String(object[".google.api.oauthScopes"]); + return message; + }; - /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.StringFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.ServiceOptions + * @static + * @param {google.protobuf.ServiceOptions} message ServiceOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ServiceOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.uninterpretedOption = []; + if (options.defaults) { + object.deprecated = false; + object[".google.api.defaultHost"] = ""; + object[".google.api.oauthScopes"] = ""; + } + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) + object[".google.api.defaultHost"] = message[".google.api.defaultHost"]; + if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) + object[".google.api.oauthScopes"] = message[".google.api.oauthScopes"]; + return object; + }; - /** - * Decodes a StringFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter.StringFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.matchType = reader.int32(); - break; - case 2: - message.value = reader.string(); - break; - case 3: - message.caseSensitive = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Converts this ServiceOptions to JSON. + * @function toJSON + * @memberof google.protobuf.ServiceOptions + * @instance + * @returns {Object.} JSON object + */ + ServiceOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + return ServiceOptions; + })(); - /** - * Verifies a StringFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StringFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.matchType != null && message.hasOwnProperty("matchType")) - switch (message.matchType) { - default: - return "matchType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - break; - } - if (message.value != null && message.hasOwnProperty("value")) - if (!$util.isString(message.value)) - return "value: string expected"; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; + protobuf.MethodOptions = (function() { - /** - * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter.StringFilter} StringFilter - */ - StringFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter.StringFilter) - return object; - var message = new $root.google.analytics.data.v1alpha.Filter.StringFilter(); - switch (object.matchType) { - case "MATCH_TYPE_UNSPECIFIED": - case 0: - message.matchType = 0; - break; - case "EXACT": - case 1: - message.matchType = 1; - break; - case "BEGINS_WITH": - case 2: - message.matchType = 2; - break; - case "ENDS_WITH": - case 3: - message.matchType = 3; - break; - case "CONTAINS": - case 4: - message.matchType = 4; - break; - case "FULL_REGEXP": - case 5: - message.matchType = 5; - break; - case "PARTIAL_REGEXP": - case 6: - message.matchType = 6; - break; - } - if (object.value != null) - message.value = String(object.value); - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; + /** + * Properties of a MethodOptions. + * @memberof google.protobuf + * @interface IMethodOptions + * @property {boolean|null} [deprecated] MethodOptions deprecated + * @property {google.protobuf.MethodOptions.IdempotencyLevel|null} [idempotencyLevel] MethodOptions idempotencyLevel + * @property {Array.|null} [uninterpretedOption] MethodOptions uninterpretedOption + * @property {google.api.IHttpRule|null} [".google.api.http"] MethodOptions .google.api.http + * @property {Array.|null} [".google.api.methodSignature"] MethodOptions .google.api.methodSignature + */ - /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.StringFilter} message StringFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StringFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; - object.value = ""; - object.caseSensitive = false; - } - if (message.matchType != null && message.hasOwnProperty("matchType")) - object.matchType = options.enums === String ? $root.google.analytics.data.v1alpha.Filter.StringFilter.MatchType[message.matchType] : message.matchType; - if (message.value != null && message.hasOwnProperty("value")) - object.value = message.value; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; - return object; - }; + /** + * Constructs a new MethodOptions. + * @memberof google.protobuf + * @classdesc Represents a MethodOptions. + * @implements IMethodOptions + * @constructor + * @param {google.protobuf.IMethodOptions=} [properties] Properties to set + */ + function MethodOptions(properties) { + this.uninterpretedOption = []; + this[".google.api.methodSignature"] = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Converts this StringFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter.StringFilter - * @instance - * @returns {Object.} JSON object - */ - StringFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * MethodOptions deprecated. + * @member {boolean} deprecated + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.deprecated = false; - /** - * MatchType enum. - * @name google.analytics.data.v1alpha.Filter.StringFilter.MatchType - * @enum {number} - * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value - * @property {number} EXACT=1 EXACT value - * @property {number} BEGINS_WITH=2 BEGINS_WITH value - * @property {number} ENDS_WITH=3 ENDS_WITH value - * @property {number} CONTAINS=4 CONTAINS value - * @property {number} FULL_REGEXP=5 FULL_REGEXP value - * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value - */ - StringFilter.MatchType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "EXACT"] = 1; - values[valuesById[2] = "BEGINS_WITH"] = 2; - values[valuesById[3] = "ENDS_WITH"] = 3; - values[valuesById[4] = "CONTAINS"] = 4; - values[valuesById[5] = "FULL_REGEXP"] = 5; - values[valuesById[6] = "PARTIAL_REGEXP"] = 6; - return values; - })(); + /** + * MethodOptions idempotencyLevel. + * @member {google.protobuf.MethodOptions.IdempotencyLevel} idempotencyLevel + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.idempotencyLevel = 0; - return StringFilter; - })(); + /** + * MethodOptions uninterpretedOption. + * @member {Array.} uninterpretedOption + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype.uninterpretedOption = $util.emptyArray; - Filter.InListFilter = (function() { + /** + * MethodOptions .google.api.http. + * @member {google.api.IHttpRule|null|undefined} .google.api.http + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype[".google.api.http"] = null; - /** - * Properties of an InListFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @interface IInListFilter - * @property {Array.|null} [values] InListFilter values - * @property {boolean|null} [caseSensitive] InListFilter caseSensitive - */ + /** + * MethodOptions .google.api.methodSignature. + * @member {Array.} .google.api.methodSignature + * @memberof google.protobuf.MethodOptions + * @instance + */ + MethodOptions.prototype[".google.api.methodSignature"] = $util.emptyArray; - /** - * Constructs a new InListFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @classdesc Represents an InListFilter. - * @implements IInListFilter - * @constructor - * @param {google.analytics.data.v1alpha.Filter.IInListFilter=} [properties] Properties to set - */ - function InListFilter(properties) { - this.values = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new MethodOptions instance using the specified properties. + * @function create + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions=} [properties] Properties to set + * @returns {google.protobuf.MethodOptions} MethodOptions instance + */ + MethodOptions.create = function create(properties) { + return new MethodOptions(properties); + }; - /** - * InListFilter values. - * @member {Array.} values - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @instance - */ - InListFilter.prototype.values = $util.emptyArray; + /** + * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @function encode + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodOptions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) + writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); + if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) + writer.uint32(/* id 34, wireType 0 =*/272).int32(message.idempotencyLevel); + if (message.uninterpretedOption != null && message.uninterpretedOption.length) + for (var i = 0; i < message.uninterpretedOption.length; ++i) + $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); + if (message[".google.api.methodSignature"] != null && message[".google.api.methodSignature"].length) + for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) + writer.uint32(/* id 1051, wireType 2 =*/8410).string(message[".google.api.methodSignature"][i]); + if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) + $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork()).ldelim(); + return writer; + }; - /** - * InListFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @instance - */ - InListFilter.prototype.caseSensitive = false; + /** + * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MethodOptions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a new InListFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IInListFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter.InListFilter} InListFilter instance - */ - InListFilter.create = function create(properties) { - return new InListFilter(properties); - }; + /** + * Decodes a MethodOptions message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.MethodOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.MethodOptions} MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodOptions.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodOptions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 33: + message.deprecated = reader.bool(); + break; + case 34: + message.idempotencyLevel = reader.int32(); + break; + case 999: + if (!(message.uninterpretedOption && message.uninterpretedOption.length)) + message.uninterpretedOption = []; + message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + break; + case 72295728: + message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); + break; + case 1051: + if (!(message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length)) + message[".google.api.methodSignature"] = []; + message[".google.api.methodSignature"].push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.InListFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.values != null && message.values.length) - for (var i = 0; i < message.values.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); - return writer; - }; + /** + * Decodes a MethodOptions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.MethodOptions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.MethodOptions} MethodOptions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MethodOptions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.InListFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Verifies a MethodOptions message. + * @function verify + * @memberof google.protobuf.MethodOptions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MethodOptions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + if (typeof message.deprecated !== "boolean") + return "deprecated: boolean expected"; + if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + switch (message.idempotencyLevel) { + default: + return "idempotencyLevel: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { + if (!Array.isArray(message.uninterpretedOption)) + return "uninterpretedOption: array expected"; + for (var i = 0; i < message.uninterpretedOption.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (error) + return "uninterpretedOption." + error; + } + } + if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) { + var error = $root.google.api.HttpRule.verify(message[".google.api.http"]); + if (error) + return ".google.api.http." + error; + } + if (message[".google.api.methodSignature"] != null && message.hasOwnProperty(".google.api.methodSignature")) { + if (!Array.isArray(message[".google.api.methodSignature"])) + return ".google.api.methodSignature: array expected"; + for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) + if (!$util.isString(message[".google.api.methodSignature"][i])) + return ".google.api.methodSignature: string[] expected"; + } + return null; + }; - /** - * Decodes an InListFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter.InListFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.values && message.values.length)) - message.values = []; - message.values.push(reader.string()); - break; - case 2: - message.caseSensitive = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.MethodOptions + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.MethodOptions} MethodOptions + */ + MethodOptions.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.MethodOptions) + return object; + var message = new $root.google.protobuf.MethodOptions(); + if (object.deprecated != null) + message.deprecated = Boolean(object.deprecated); + switch (object.idempotencyLevel) { + case "IDEMPOTENCY_UNKNOWN": + case 0: + message.idempotencyLevel = 0; + break; + case "NO_SIDE_EFFECTS": + case 1: + message.idempotencyLevel = 1; + break; + case "IDEMPOTENT": + case 2: + message.idempotencyLevel = 2; + break; + } + if (object.uninterpretedOption) { + if (!Array.isArray(object.uninterpretedOption)) + throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected"); + message.uninterpretedOption = []; + for (var i = 0; i < object.uninterpretedOption.length; ++i) { + if (typeof object.uninterpretedOption[i] !== "object") + throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected"); + message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + } + } + if (object[".google.api.http"] != null) { + if (typeof object[".google.api.http"] !== "object") + throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected"); + message[".google.api.http"] = $root.google.api.HttpRule.fromObject(object[".google.api.http"]); + } + if (object[".google.api.methodSignature"]) { + if (!Array.isArray(object[".google.api.methodSignature"])) + throw TypeError(".google.protobuf.MethodOptions..google.api.methodSignature: array expected"); + message[".google.api.methodSignature"] = []; + for (var i = 0; i < object[".google.api.methodSignature"].length; ++i) + message[".google.api.methodSignature"][i] = String(object[".google.api.methodSignature"][i]); + } + return message; + }; - /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.MethodOptions + * @static + * @param {google.protobuf.MethodOptions} message MethodOptions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MethodOptions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.uninterpretedOption = []; + object[".google.api.methodSignature"] = []; + } + if (options.defaults) { + object.deprecated = false; + object.idempotencyLevel = options.enums === String ? "IDEMPOTENCY_UNKNOWN" : 0; + object[".google.api.http"] = null; + } + if (message.deprecated != null && message.hasOwnProperty("deprecated")) + object.deprecated = message.deprecated; + if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) + object.idempotencyLevel = options.enums === String ? $root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel] : message.idempotencyLevel; + if (message.uninterpretedOption && message.uninterpretedOption.length) { + object.uninterpretedOption = []; + for (var j = 0; j < message.uninterpretedOption.length; ++j) + object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + } + if (message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length) { + object[".google.api.methodSignature"] = []; + for (var j = 0; j < message[".google.api.methodSignature"].length; ++j) + object[".google.api.methodSignature"][j] = message[".google.api.methodSignature"][j]; + } + if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) + object[".google.api.http"] = $root.google.api.HttpRule.toObject(message[".google.api.http"], options); + return object; + }; - /** - * Verifies an InListFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - InListFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.values != null && message.hasOwnProperty("values")) { - if (!Array.isArray(message.values)) - return "values: array expected"; - for (var i = 0; i < message.values.length; ++i) - if (!$util.isString(message.values[i])) - return "values: string[] expected"; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; + /** + * Converts this MethodOptions to JSON. + * @function toJSON + * @memberof google.protobuf.MethodOptions + * @instance + * @returns {Object.} JSON object + */ + MethodOptions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter.InListFilter} InListFilter - */ - InListFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter.InListFilter) - return object; - var message = new $root.google.analytics.data.v1alpha.Filter.InListFilter(); - if (object.values) { - if (!Array.isArray(object.values)) - throw TypeError(".google.analytics.data.v1alpha.Filter.InListFilter.values: array expected"); - message.values = []; - for (var i = 0; i < object.values.length; ++i) - message.values[i] = String(object.values[i]); - } - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; + /** + * IdempotencyLevel enum. + * @name google.protobuf.MethodOptions.IdempotencyLevel + * @enum {number} + * @property {number} IDEMPOTENCY_UNKNOWN=0 IDEMPOTENCY_UNKNOWN value + * @property {number} NO_SIDE_EFFECTS=1 NO_SIDE_EFFECTS value + * @property {number} IDEMPOTENT=2 IDEMPOTENT value + */ + MethodOptions.IdempotencyLevel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "IDEMPOTENCY_UNKNOWN"] = 0; + values[valuesById[1] = "NO_SIDE_EFFECTS"] = 1; + values[valuesById[2] = "IDEMPOTENT"] = 2; + return values; + })(); - /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.InListFilter} message InListFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - InListFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.values = []; - if (options.defaults) - object.caseSensitive = false; - if (message.values && message.values.length) { - object.values = []; - for (var j = 0; j < message.values.length; ++j) - object.values[j] = message.values[j]; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; - return object; - }; + return MethodOptions; + })(); - /** - * Converts this InListFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter.InListFilter - * @instance - * @returns {Object.} JSON object - */ - InListFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + protobuf.UninterpretedOption = (function() { - return InListFilter; - })(); + /** + * Properties of an UninterpretedOption. + * @memberof google.protobuf + * @interface IUninterpretedOption + * @property {Array.|null} [name] UninterpretedOption name + * @property {string|null} [identifierValue] UninterpretedOption identifierValue + * @property {number|Long|null} [positiveIntValue] UninterpretedOption positiveIntValue + * @property {number|Long|null} [negativeIntValue] UninterpretedOption negativeIntValue + * @property {number|null} [doubleValue] UninterpretedOption doubleValue + * @property {Uint8Array|null} [stringValue] UninterpretedOption stringValue + * @property {string|null} [aggregateValue] UninterpretedOption aggregateValue + */ - Filter.NumericFilter = (function() { + /** + * Constructs a new UninterpretedOption. + * @memberof google.protobuf + * @classdesc Represents an UninterpretedOption. + * @implements IUninterpretedOption + * @constructor + * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set + */ + function UninterpretedOption(properties) { + this.name = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Properties of a NumericFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @interface INumericFilter - * @property {google.analytics.data.v1alpha.Filter.NumericFilter.Operation|null} [operation] NumericFilter operation - * @property {google.analytics.data.v1alpha.INumericValue|null} [value] NumericFilter value - */ + /** + * UninterpretedOption name. + * @member {Array.} name + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.name = $util.emptyArray; - /** - * Constructs a new NumericFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @classdesc Represents a NumericFilter. - * @implements INumericFilter - * @constructor - * @param {google.analytics.data.v1alpha.Filter.INumericFilter=} [properties] Properties to set - */ - function NumericFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * UninterpretedOption identifierValue. + * @member {string} identifierValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.identifierValue = ""; - /** - * NumericFilter operation. - * @member {google.analytics.data.v1alpha.Filter.NumericFilter.Operation} operation - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @instance - */ - NumericFilter.prototype.operation = 0; + /** + * UninterpretedOption positiveIntValue. + * @member {number|Long} positiveIntValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.positiveIntValue = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * NumericFilter value. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} value - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @instance - */ - NumericFilter.prototype.value = null; + /** + * UninterpretedOption negativeIntValue. + * @member {number|Long} negativeIntValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.negativeIntValue = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Creates a new NumericFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.INumericFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter.NumericFilter} NumericFilter instance - */ - NumericFilter.create = function create(properties) { - return new NumericFilter(properties); - }; + /** + * UninterpretedOption doubleValue. + * @member {number} doubleValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.doubleValue = 0; - /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.NumericFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.INumericFilter} message NumericFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NumericFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * UninterpretedOption stringValue. + * @member {Uint8Array} stringValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.stringValue = $util.newBuffer([]); - /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.NumericFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.INumericFilter} message NumericFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * UninterpretedOption aggregateValue. + * @member {string} aggregateValue + * @memberof google.protobuf.UninterpretedOption + * @instance + */ + UninterpretedOption.prototype.aggregateValue = ""; - /** - * Decodes a NumericFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter.NumericFilter} NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NumericFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter.NumericFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.operation = reader.int32(); - break; - case 2: - message.value = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new UninterpretedOption instance using the specified properties. + * @function create + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption instance + */ + UninterpretedOption.create = function create(properties) { + return new UninterpretedOption(properties); + }; - /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter.NumericFilter} NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NumericFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @function encode + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UninterpretedOption.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && message.name.length) + for (var i = 0; i < message.name.length; ++i) + $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue); + if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.positiveIntValue); + if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, "negativeIntValue")) + writer.uint32(/* id 5, wireType 0 =*/40).int64(message.negativeIntValue); + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) + writer.uint32(/* id 6, wireType 1 =*/49).double(message.doubleValue); + if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) + writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.stringValue); + if (message.aggregateValue != null && Object.hasOwnProperty.call(message, "aggregateValue")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.aggregateValue); + return writer; + }; - /** - * Verifies a NumericFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - NumericFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) - switch (message.operation) { - default: - return "operation: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - break; - } - if (message.value != null && message.hasOwnProperty("value")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.value); - if (error) - return "value." + error; - } - return null; - }; + /** + * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + UninterpretedOption.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter.NumericFilter} NumericFilter - */ - NumericFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter.NumericFilter) - return object; - var message = new $root.google.analytics.data.v1alpha.Filter.NumericFilter(); - switch (object.operation) { - case "OPERATION_UNSPECIFIED": - case 0: - message.operation = 0; - break; - case "EQUAL": - case 1: - message.operation = 1; - break; - case "LESS_THAN": - case 2: - message.operation = 2; - break; - case "LESS_THAN_OR_EQUAL": - case 3: - message.operation = 3; - break; - case "GREATER_THAN": - case 4: - message.operation = 4; - break; - case "GREATER_THAN_OR_EQUAL": - case 5: - message.operation = 5; - break; - } - if (object.value != null) { - if (typeof object.value !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.NumericFilter.value: object expected"); - message.value = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.value); - } - return message; - }; + /** + * Decodes an UninterpretedOption message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UninterpretedOption.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + if (!(message.name && message.name.length)) + message.name = []; + message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); + break; + case 3: + message.identifierValue = reader.string(); + break; + case 4: + message.positiveIntValue = reader.uint64(); + break; + case 5: + message.negativeIntValue = reader.int64(); + break; + case 6: + message.doubleValue = reader.double(); + break; + case 7: + message.stringValue = reader.bytes(); + break; + case 8: + message.aggregateValue = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.NumericFilter} message NumericFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - NumericFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; - object.value = null; - } - if (message.operation != null && message.hasOwnProperty("operation")) - object.operation = options.enums === String ? $root.google.analytics.data.v1alpha.Filter.NumericFilter.Operation[message.operation] : message.operation; - if (message.value != null && message.hasOwnProperty("value")) - object.value = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.value, options); - return object; - }; + /** + * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + UninterpretedOption.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Converts this NumericFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter.NumericFilter - * @instance - * @returns {Object.} JSON object - */ - NumericFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Verifies an UninterpretedOption message. + * @function verify + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + UninterpretedOption.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) { + if (!Array.isArray(message.name)) + return "name: array expected"; + for (var i = 0; i < message.name.length; ++i) { + var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i]); + if (error) + return "name." + error; + } + } + if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + if (!$util.isString(message.identifierValue)) + return "identifierValue: string expected"; + if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (!$util.isInteger(message.positiveIntValue) && !(message.positiveIntValue && $util.isInteger(message.positiveIntValue.low) && $util.isInteger(message.positiveIntValue.high))) + return "positiveIntValue: integer|Long expected"; + if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (!$util.isInteger(message.negativeIntValue) && !(message.negativeIntValue && $util.isInteger(message.negativeIntValue.low) && $util.isInteger(message.negativeIntValue.high))) + return "negativeIntValue: integer|Long expected"; + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + if (typeof message.doubleValue !== "number") + return "doubleValue: number expected"; + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + if (!(message.stringValue && typeof message.stringValue.length === "number" || $util.isString(message.stringValue))) + return "stringValue: buffer expected"; + if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + if (!$util.isString(message.aggregateValue)) + return "aggregateValue: string expected"; + return null; + }; - /** - * Operation enum. - * @name google.analytics.data.v1alpha.Filter.NumericFilter.Operation - * @enum {number} - * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value - * @property {number} EQUAL=1 EQUAL value - * @property {number} LESS_THAN=2 LESS_THAN value - * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value - * @property {number} GREATER_THAN=4 GREATER_THAN value - * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value - */ - NumericFilter.Operation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "EQUAL"] = 1; - values[valuesById[2] = "LESS_THAN"] = 2; - values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; - values[valuesById[4] = "GREATER_THAN"] = 4; - values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; - return values; - })(); + /** + * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + */ + UninterpretedOption.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.UninterpretedOption) + return object; + var message = new $root.google.protobuf.UninterpretedOption(); + if (object.name) { + if (!Array.isArray(object.name)) + throw TypeError(".google.protobuf.UninterpretedOption.name: array expected"); + message.name = []; + for (var i = 0; i < object.name.length; ++i) { + if (typeof object.name[i] !== "object") + throw TypeError(".google.protobuf.UninterpretedOption.name: object expected"); + message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i]); + } + } + if (object.identifierValue != null) + message.identifierValue = String(object.identifierValue); + if (object.positiveIntValue != null) + if ($util.Long) + (message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue)).unsigned = true; + else if (typeof object.positiveIntValue === "string") + message.positiveIntValue = parseInt(object.positiveIntValue, 10); + else if (typeof object.positiveIntValue === "number") + message.positiveIntValue = object.positiveIntValue; + else if (typeof object.positiveIntValue === "object") + message.positiveIntValue = new $util.LongBits(object.positiveIntValue.low >>> 0, object.positiveIntValue.high >>> 0).toNumber(true); + if (object.negativeIntValue != null) + if ($util.Long) + (message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue)).unsigned = false; + else if (typeof object.negativeIntValue === "string") + message.negativeIntValue = parseInt(object.negativeIntValue, 10); + else if (typeof object.negativeIntValue === "number") + message.negativeIntValue = object.negativeIntValue; + else if (typeof object.negativeIntValue === "object") + message.negativeIntValue = new $util.LongBits(object.negativeIntValue.low >>> 0, object.negativeIntValue.high >>> 0).toNumber(); + if (object.doubleValue != null) + message.doubleValue = Number(object.doubleValue); + if (object.stringValue != null) + if (typeof object.stringValue === "string") + $util.base64.decode(object.stringValue, message.stringValue = $util.newBuffer($util.base64.length(object.stringValue)), 0); + else if (object.stringValue.length) + message.stringValue = object.stringValue; + if (object.aggregateValue != null) + message.aggregateValue = String(object.aggregateValue); + return message; + }; - return NumericFilter; - })(); + /** + * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.UninterpretedOption + * @static + * @param {google.protobuf.UninterpretedOption} message UninterpretedOption + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UninterpretedOption.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.name = []; + if (options.defaults) { + object.identifierValue = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.positiveIntValue = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.negativeIntValue = options.longs === String ? "0" : 0; + object.doubleValue = 0; + if (options.bytes === String) + object.stringValue = ""; + else { + object.stringValue = []; + if (options.bytes !== Array) + object.stringValue = $util.newBuffer(object.stringValue); + } + object.aggregateValue = ""; + } + if (message.name && message.name.length) { + object.name = []; + for (var j = 0; j < message.name.length; ++j) + object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options); + } + if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) + object.identifierValue = message.identifierValue; + if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) + if (typeof message.positiveIntValue === "number") + object.positiveIntValue = options.longs === String ? String(message.positiveIntValue) : message.positiveIntValue; + else + object.positiveIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.positiveIntValue) : options.longs === Number ? new $util.LongBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0).toNumber(true) : message.positiveIntValue; + if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) + if (typeof message.negativeIntValue === "number") + object.negativeIntValue = options.longs === String ? String(message.negativeIntValue) : message.negativeIntValue; + else + object.negativeIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.negativeIntValue) : options.longs === Number ? new $util.LongBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0).toNumber() : message.negativeIntValue; + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) + object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; + if (message.stringValue != null && message.hasOwnProperty("stringValue")) + object.stringValue = options.bytes === String ? $util.base64.encode(message.stringValue, 0, message.stringValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.stringValue) : message.stringValue; + if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) + object.aggregateValue = message.aggregateValue; + return object; + }; - Filter.BetweenFilter = (function() { + /** + * Converts this UninterpretedOption to JSON. + * @function toJSON + * @memberof google.protobuf.UninterpretedOption + * @instance + * @returns {Object.} JSON object + */ + UninterpretedOption.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Properties of a BetweenFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @interface IBetweenFilter - * @property {google.analytics.data.v1alpha.INumericValue|null} [fromValue] BetweenFilter fromValue - * @property {google.analytics.data.v1alpha.INumericValue|null} [toValue] BetweenFilter toValue - */ + UninterpretedOption.NamePart = (function() { - /** - * Constructs a new BetweenFilter. - * @memberof google.analytics.data.v1alpha.Filter - * @classdesc Represents a BetweenFilter. - * @implements IBetweenFilter - * @constructor - * @param {google.analytics.data.v1alpha.Filter.IBetweenFilter=} [properties] Properties to set - */ - function BetweenFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a NamePart. + * @memberof google.protobuf.UninterpretedOption + * @interface INamePart + * @property {string} namePart NamePart namePart + * @property {boolean} isExtension NamePart isExtension + */ - /** - * BetweenFilter fromValue. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} fromValue - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @instance - */ - BetweenFilter.prototype.fromValue = null; + /** + * Constructs a new NamePart. + * @memberof google.protobuf.UninterpretedOption + * @classdesc Represents a NamePart. + * @implements INamePart + * @constructor + * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set + */ + function NamePart(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * BetweenFilter toValue. - * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} toValue - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @instance - */ - BetweenFilter.prototype.toValue = null; + /** + * NamePart namePart. + * @member {string} namePart + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + */ + NamePart.prototype.namePart = ""; - /** - * Creates a new BetweenFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IBetweenFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Filter.BetweenFilter} BetweenFilter instance - */ - BetweenFilter.create = function create(properties) { - return new BetweenFilter(properties); - }; + /** + * NamePart isExtension. + * @member {boolean} isExtension + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + */ + NamePart.prototype.isExtension = false; - /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.BetweenFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BetweenFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) - $root.google.analytics.data.v1alpha.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Creates a new NamePart instance using the specified properties. + * @function create + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart instance + */ + NamePart.create = function create(properties) { + return new NamePart(properties); + }; - /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.BetweenFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @function encode + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NamePart.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.namePart); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isExtension); + return writer; + }; - /** - * Decodes a BetweenFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Filter.BetweenFilter} BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BetweenFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter.BetweenFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); - break; - case 2: - message.toValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NamePart.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Filter.BetweenFilter} BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BetweenFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a NamePart message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NamePart.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption.NamePart(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.namePart = reader.string(); + break; + case 2: + message.isExtension = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("namePart")) + throw $util.ProtocolError("missing required 'namePart'", { instance: message }); + if (!message.hasOwnProperty("isExtension")) + throw $util.ProtocolError("missing required 'isExtension'", { instance: message }); + return message; + }; - /** - * Verifies a BetweenFilter message. - * @function verify - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BetweenFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.fromValue != null && message.hasOwnProperty("fromValue")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.fromValue); - if (error) - return "fromValue." + error; - } - if (message.toValue != null && message.hasOwnProperty("toValue")) { - var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.toValue); - if (error) - return "toValue." + error; - } - return null; - }; + /** + * Decodes a NamePart message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NamePart.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Filter.BetweenFilter} BetweenFilter - */ - BetweenFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Filter.BetweenFilter) - return object; - var message = new $root.google.analytics.data.v1alpha.Filter.BetweenFilter(); - if (object.fromValue != null) { - if (typeof object.fromValue !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.BetweenFilter.fromValue: object expected"); - message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.fromValue); - } - if (object.toValue != null) { - if (typeof object.toValue !== "object") - throw TypeError(".google.analytics.data.v1alpha.Filter.BetweenFilter.toValue: object expected"); - message.toValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.toValue); - } - return message; - }; + /** + * Verifies a NamePart message. + * @function verify + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NamePart.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (!$util.isString(message.namePart)) + return "namePart: string expected"; + if (typeof message.isExtension !== "boolean") + return "isExtension: boolean expected"; + return null; + }; - /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1alpha.Filter.BetweenFilter} message BetweenFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BetweenFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.fromValue = null; - object.toValue = null; - } - if (message.fromValue != null && message.hasOwnProperty("fromValue")) - object.fromValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.fromValue, options); - if (message.toValue != null && message.hasOwnProperty("toValue")) - object.toValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.toValue, options); - return object; - }; + /** + * Creates a NamePart message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart + */ + NamePart.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.UninterpretedOption.NamePart) + return object; + var message = new $root.google.protobuf.UninterpretedOption.NamePart(); + if (object.namePart != null) + message.namePart = String(object.namePart); + if (object.isExtension != null) + message.isExtension = Boolean(object.isExtension); + return message; + }; - /** - * Converts this BetweenFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.Filter.BetweenFilter - * @instance - * @returns {Object.} JSON object - */ - BetweenFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a NamePart message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.UninterpretedOption.NamePart + * @static + * @param {google.protobuf.UninterpretedOption.NamePart} message NamePart + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NamePart.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.namePart = ""; + object.isExtension = false; + } + if (message.namePart != null && message.hasOwnProperty("namePart")) + object.namePart = message.namePart; + if (message.isExtension != null && message.hasOwnProperty("isExtension")) + object.isExtension = message.isExtension; + return object; + }; - return BetweenFilter; - })(); + /** + * Converts this NamePart to JSON. + * @function toJSON + * @memberof google.protobuf.UninterpretedOption.NamePart + * @instance + * @returns {Object.} JSON object + */ + NamePart.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Filter; - })(); + return NamePart; + })(); - v1alpha.OrderBy = (function() { + return UninterpretedOption; + })(); - /** - * Properties of an OrderBy. - * @memberof google.analytics.data.v1alpha - * @interface IOrderBy - * @property {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null} [metric] OrderBy metric - * @property {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null} [dimension] OrderBy dimension - * @property {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy|null} [pivot] OrderBy pivot - * @property {boolean|null} [desc] OrderBy desc - */ + protobuf.SourceCodeInfo = (function() { - /** - * Constructs a new OrderBy. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents an OrderBy. - * @implements IOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set - */ - function OrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a SourceCodeInfo. + * @memberof google.protobuf + * @interface ISourceCodeInfo + * @property {Array.|null} [location] SourceCodeInfo location + */ - /** - * OrderBy metric. - * @member {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy|null|undefined} metric - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - */ - OrderBy.prototype.metric = null; + /** + * Constructs a new SourceCodeInfo. + * @memberof google.protobuf + * @classdesc Represents a SourceCodeInfo. + * @implements ISourceCodeInfo + * @constructor + * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set + */ + function SourceCodeInfo(properties) { + this.location = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * OrderBy dimension. - * @member {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy|null|undefined} dimension - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - */ - OrderBy.prototype.dimension = null; + /** + * SourceCodeInfo location. + * @member {Array.} location + * @memberof google.protobuf.SourceCodeInfo + * @instance + */ + SourceCodeInfo.prototype.location = $util.emptyArray; - /** - * OrderBy pivot. - * @member {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy|null|undefined} pivot - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - */ - OrderBy.prototype.pivot = null; + /** + * Creates a new SourceCodeInfo instance using the specified properties. + * @function create + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo instance + */ + SourceCodeInfo.create = function create(properties) { + return new SourceCodeInfo(properties); + }; - /** - * OrderBy desc. - * @member {boolean} desc - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - */ - OrderBy.prototype.desc = false; + /** + * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @function encode + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SourceCodeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.location != null && message.location.length) + for (var i = 0; i < message.location.length; ++i) + $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SourceCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * OrderBy oneOrderBy. - * @member {"metric"|"dimension"|"pivot"|undefined} oneOrderBy - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - */ - Object.defineProperty(OrderBy.prototype, "oneOrderBy", { - get: $util.oneOfGetter($oneOfFields = ["metric", "dimension", "pivot"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SourceCodeInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.location && message.location.length)) + message.location = []; + message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a new OrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {google.analytics.data.v1alpha.IOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy instance - */ - OrderBy.create = function create(properties) { - return new OrderBy(properties); - }; + /** + * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SourceCodeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) - $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.encode(message.metric, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.encode(message.dimension, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.pivot != null && Object.hasOwnProperty.call(message, "pivot")) - $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.encode(message.pivot, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.desc); - return writer; - }; + /** + * Verifies a SourceCodeInfo message. + * @function verify + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SourceCodeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.location != null && message.hasOwnProperty("location")) { + if (!Array.isArray(message.location)) + return "location: array expected"; + for (var i = 0; i < message.location.length; ++i) { + var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i]); + if (error) + return "location." + error; + } + } + return null; + }; - /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {google.analytics.data.v1alpha.IOrderBy} message OrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + */ + SourceCodeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.SourceCodeInfo) + return object; + var message = new $root.google.protobuf.SourceCodeInfo(); + if (object.location) { + if (!Array.isArray(object.location)) + throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected"); + message.location = []; + for (var i = 0; i < object.location.length; ++i) { + if (typeof object.location[i] !== "object") + throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected"); + message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i]); + } + } + return message; + }; - /** - * Decodes an OrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.decode(reader, reader.uint32()); - break; - case 2: - message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.decode(reader, reader.uint32()); - break; - case 3: - message.pivot = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.decode(reader, reader.uint32()); - break; - case 4: - message.desc = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.SourceCodeInfo + * @static + * @param {google.protobuf.SourceCodeInfo} message SourceCodeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SourceCodeInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.location = []; + if (message.location && message.location.length) { + object.location = []; + for (var j = 0; j < message.location.length; ++j) + object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options); + } + return object; + }; - /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Converts this SourceCodeInfo to JSON. + * @function toJSON + * @memberof google.protobuf.SourceCodeInfo + * @instance + * @returns {Object.} JSON object + */ + SourceCodeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Verifies an OrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - OrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { - properties.oneOrderBy = 1; - { - var error = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify(message.metric); - if (error) - return "metric." + error; - } - } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - if (properties.oneOrderBy === 1) - return "oneOrderBy: multiple values"; - properties.oneOrderBy = 1; - { - var error = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify(message.dimension); - if (error) - return "dimension." + error; - } - } - if (message.pivot != null && message.hasOwnProperty("pivot")) { - if (properties.oneOrderBy === 1) - return "oneOrderBy: multiple values"; - properties.oneOrderBy = 1; - { - var error = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.verify(message.pivot); - if (error) - return "pivot." + error; - } - } - if (message.desc != null && message.hasOwnProperty("desc")) - if (typeof message.desc !== "boolean") - return "desc: boolean expected"; - return null; - }; + SourceCodeInfo.Location = (function() { - /** - * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy} OrderBy - */ - OrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy(); - if (object.metric != null) { - if (typeof object.metric !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.metric: object expected"); - message.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.fromObject(object.metric); - } - if (object.dimension != null) { - if (typeof object.dimension !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.dimension: object expected"); - message.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.fromObject(object.dimension); - } - if (object.pivot != null) { - if (typeof object.pivot !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.pivot: object expected"); - message.pivot = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.fromObject(object.pivot); - } - if (object.desc != null) - message.desc = Boolean(object.desc); - return message; - }; + /** + * Properties of a Location. + * @memberof google.protobuf.SourceCodeInfo + * @interface ILocation + * @property {Array.|null} [path] Location path + * @property {Array.|null} [span] Location span + * @property {string|null} [leadingComments] Location leadingComments + * @property {string|null} [trailingComments] Location trailingComments + * @property {Array.|null} [leadingDetachedComments] Location leadingDetachedComments + */ - /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy} message OrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - OrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.desc = false; - if (message.metric != null && message.hasOwnProperty("metric")) { - object.metric = $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy.toObject(message.metric, options); - if (options.oneofs) - object.oneOrderBy = "metric"; - } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - object.dimension = $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.toObject(message.dimension, options); - if (options.oneofs) - object.oneOrderBy = "dimension"; - } - if (message.pivot != null && message.hasOwnProperty("pivot")) { - object.pivot = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.toObject(message.pivot, options); - if (options.oneofs) - object.oneOrderBy = "pivot"; - } - if (message.desc != null && message.hasOwnProperty("desc")) - object.desc = message.desc; - return object; - }; + /** + * Constructs a new Location. + * @memberof google.protobuf.SourceCodeInfo + * @classdesc Represents a Location. + * @implements ILocation + * @constructor + * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set + */ + function Location(properties) { + this.path = []; + this.span = []; + this.leadingDetachedComments = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Converts this OrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy - * @instance - * @returns {Object.} JSON object - */ - OrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Location path. + * @member {Array.} path + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.path = $util.emptyArray; - OrderBy.MetricOrderBy = (function() { + /** + * Location span. + * @member {Array.} span + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.span = $util.emptyArray; - /** - * Properties of a MetricOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @interface IMetricOrderBy - * @property {string|null} [metricName] MetricOrderBy metricName - */ + /** + * Location leadingComments. + * @member {string} leadingComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.leadingComments = ""; - /** - * Constructs a new MetricOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @classdesc Represents a MetricOrderBy. - * @implements IMetricOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set - */ - function MetricOrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Location trailingComments. + * @member {string} trailingComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.trailingComments = ""; - /** - * MetricOrderBy metricName. - * @member {string} metricName - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @instance - */ - MetricOrderBy.prototype.metricName = ""; + /** + * Location leadingDetachedComments. + * @member {Array.} leadingDetachedComments + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + */ + Location.prototype.leadingDetachedComments = $util.emptyArray; - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy instance - */ - MetricOrderBy.create = function create(properties) { - return new MetricOrderBy(properties); - }; + /** + * Creates a new Location instance using the specified properties. + * @function create + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set + * @returns {google.protobuf.SourceCodeInfo.Location} Location instance + */ + Location.create = function create(properties) { + return new Location(properties); + }; - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - return writer; - }; + /** + * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @function encode + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.path != null && message.path.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.path.length; ++i) + writer.int32(message.path[i]); + writer.ldelim(); + } + if (message.span != null && message.span.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.span.length; ++i) + writer.int32(message.span[i]); + writer.ldelim(); + } + if (message.leadingComments != null && Object.hasOwnProperty.call(message, "leadingComments")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.leadingComments); + if (message.trailingComments != null && Object.hasOwnProperty.call(message, "trailingComments")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.trailingComments); + if (message.leadingDetachedComments != null && message.leadingDetachedComments.length) + for (var i = 0; i < message.leadingDetachedComments.length; ++i) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.leadingDetachedComments[i]); + return writer; + }; - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Location.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metricName = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Decodes a Location message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.SourceCodeInfo.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo.Location(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else + message.path.push(reader.int32()); + break; + case 2: + if (!(message.span && message.span.length)) + message.span = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.span.push(reader.int32()); + } else + message.span.push(reader.int32()); + break; + case 3: + message.leadingComments = reader.string(); + break; + case 4: + message.trailingComments = reader.string(); + break; + case 6: + if (!(message.leadingDetachedComments && message.leadingDetachedComments.length)) + message.leadingDetachedComments = []; + message.leadingDetachedComments.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a Location message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.SourceCodeInfo.Location} Location + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Location.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a MetricOrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MetricOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.metricName != null && message.hasOwnProperty("metricName")) - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - return null; - }; + /** + * Verifies a Location message. + * @function verify + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Location.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.path != null && message.hasOwnProperty("path")) { + if (!Array.isArray(message.path)) + return "path: array expected"; + for (var i = 0; i < message.path.length; ++i) + if (!$util.isInteger(message.path[i])) + return "path: integer[] expected"; + } + if (message.span != null && message.hasOwnProperty("span")) { + if (!Array.isArray(message.span)) + return "span: array expected"; + for (var i = 0; i < message.span.length; ++i) + if (!$util.isInteger(message.span[i])) + return "span: integer[] expected"; + } + if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + if (!$util.isString(message.leadingComments)) + return "leadingComments: string expected"; + if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + if (!$util.isString(message.trailingComments)) + return "trailingComments: string expected"; + if (message.leadingDetachedComments != null && message.hasOwnProperty("leadingDetachedComments")) { + if (!Array.isArray(message.leadingDetachedComments)) + return "leadingDetachedComments: array expected"; + for (var i = 0; i < message.leadingDetachedComments.length; ++i) + if (!$util.isString(message.leadingDetachedComments[i])) + return "leadingDetachedComments: string[] expected"; + } + return null; + }; - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} MetricOrderBy - */ - MetricOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.MetricOrderBy(); - if (object.metricName != null) - message.metricName = String(object.metricName); - return message; - }; + /** + * Creates a Location message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.SourceCodeInfo.Location} Location + */ + Location.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.SourceCodeInfo.Location) + return object; + var message = new $root.google.protobuf.SourceCodeInfo.Location(); + if (object.path) { + if (!Array.isArray(object.path)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected"); + message.path = []; + for (var i = 0; i < object.path.length; ++i) + message.path[i] = object.path[i] | 0; + } + if (object.span) { + if (!Array.isArray(object.span)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.span: array expected"); + message.span = []; + for (var i = 0; i < object.span.length; ++i) + message.span[i] = object.span[i] | 0; + } + if (object.leadingComments != null) + message.leadingComments = String(object.leadingComments); + if (object.trailingComments != null) + message.trailingComments = String(object.trailingComments); + if (object.leadingDetachedComments) { + if (!Array.isArray(object.leadingDetachedComments)) + throw TypeError(".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected"); + message.leadingDetachedComments = []; + for (var i = 0; i < object.leadingDetachedComments.length; ++i) + message.leadingDetachedComments[i] = String(object.leadingDetachedComments[i]); + } + return message; + }; - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.MetricOrderBy} message MetricOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MetricOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metricName = ""; - if (message.metricName != null && message.hasOwnProperty("metricName")) - object.metricName = message.metricName; - return object; - }; + /** + * Creates a plain object from a Location message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.SourceCodeInfo.Location + * @static + * @param {google.protobuf.SourceCodeInfo.Location} message Location + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Location.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.path = []; + object.span = []; + object.leadingDetachedComments = []; + } + if (options.defaults) { + object.leadingComments = ""; + object.trailingComments = ""; + } + if (message.path && message.path.length) { + object.path = []; + for (var j = 0; j < message.path.length; ++j) + object.path[j] = message.path[j]; + } + if (message.span && message.span.length) { + object.span = []; + for (var j = 0; j < message.span.length; ++j) + object.span[j] = message.span[j]; + } + if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) + object.leadingComments = message.leadingComments; + if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) + object.trailingComments = message.trailingComments; + if (message.leadingDetachedComments && message.leadingDetachedComments.length) { + object.leadingDetachedComments = []; + for (var j = 0; j < message.leadingDetachedComments.length; ++j) + object.leadingDetachedComments[j] = message.leadingDetachedComments[j]; + } + return object; + }; - /** - * Converts this MetricOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.MetricOrderBy - * @instance - * @returns {Object.} JSON object - */ - MetricOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this Location to JSON. + * @function toJSON + * @memberof google.protobuf.SourceCodeInfo.Location + * @instance + * @returns {Object.} JSON object + */ + Location.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return MetricOrderBy; - })(); + return Location; + })(); - OrderBy.DimensionOrderBy = (function() { + return SourceCodeInfo; + })(); - /** - * Properties of a DimensionOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @interface IDimensionOrderBy - * @property {string|null} [dimensionName] DimensionOrderBy dimensionName - * @property {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType|null} [orderType] DimensionOrderBy orderType - */ + protobuf.GeneratedCodeInfo = (function() { - /** - * Constructs a new DimensionOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @classdesc Represents a DimensionOrderBy. - * @implements IDimensionOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set - */ - function DimensionOrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a GeneratedCodeInfo. + * @memberof google.protobuf + * @interface IGeneratedCodeInfo + * @property {Array.|null} [annotation] GeneratedCodeInfo annotation + */ - /** - * DimensionOrderBy dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.dimensionName = ""; + /** + * Constructs a new GeneratedCodeInfo. + * @memberof google.protobuf + * @classdesc Represents a GeneratedCodeInfo. + * @implements IGeneratedCodeInfo + * @constructor + * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set + */ + function GeneratedCodeInfo(properties) { + this.annotation = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * DimensionOrderBy orderType. - * @member {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType} orderType - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.orderType = 0; + /** + * GeneratedCodeInfo annotation. + * @member {Array.} annotation + * @memberof google.protobuf.GeneratedCodeInfo + * @instance + */ + GeneratedCodeInfo.prototype.annotation = $util.emptyArray; - /** - * Creates a new DimensionOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy instance - */ - DimensionOrderBy.create = function create(properties) { - return new DimensionOrderBy(properties); - }; + /** + * Creates a new GeneratedCodeInfo instance using the specified properties. + * @function create + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo instance + */ + GeneratedCodeInfo.create = function create(properties) { + return new GeneratedCodeInfo(properties); + }; - /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - if (message.orderType != null && Object.hasOwnProperty.call(message, "orderType")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.orderType); - return writer; - }; + /** + * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @function encode + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GeneratedCodeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.annotation != null && message.annotation.length) + for (var i = 0; i < message.annotation.length; ++i) + $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GeneratedCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - case 2: - message.orderType = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GeneratedCodeInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.annotation && message.annotation.length)) + message.annotation = []; + message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GeneratedCodeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a DimensionOrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DimensionOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - if (message.orderType != null && message.hasOwnProperty("orderType")) - switch (message.orderType) { - default: - return "orderType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - return null; - }; + /** + * Verifies a GeneratedCodeInfo message. + * @function verify + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GeneratedCodeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.annotation != null && message.hasOwnProperty("annotation")) { + if (!Array.isArray(message.annotation)) + return "annotation: array expected"; + for (var i = 0; i < message.annotation.length; ++i) { + var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i]); + if (error) + return "annotation." + error; + } + } + return null; + }; - /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} DimensionOrderBy - */ - DimensionOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - switch (object.orderType) { - case "ORDER_TYPE_UNSPECIFIED": - case 0: - message.orderType = 0; - break; - case "ALPHANUMERIC": - case 1: - message.orderType = 1; - break; - case "CASE_INSENSITIVE_ALPHANUMERIC": - case 2: - message.orderType = 2; - break; - case "NUMERIC": - case 3: - message.orderType = 3; - break; - } - return message; - }; + /** + * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + */ + GeneratedCodeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.GeneratedCodeInfo) + return object; + var message = new $root.google.protobuf.GeneratedCodeInfo(); + if (object.annotation) { + if (!Array.isArray(object.annotation)) + throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected"); + message.annotation = []; + for (var i = 0; i < object.annotation.length; ++i) { + if (typeof object.annotation[i] !== "object") + throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected"); + message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i]); + } + } + return message; + }; - /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.DimensionOrderBy} message DimensionOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DimensionOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.dimensionName = ""; - object.orderType = options.enums === String ? "ORDER_TYPE_UNSPECIFIED" : 0; - } - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - if (message.orderType != null && message.hasOwnProperty("orderType")) - object.orderType = options.enums === String ? $root.google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType[message.orderType] : message.orderType; - return object; - }; + /** + * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.GeneratedCodeInfo + * @static + * @param {google.protobuf.GeneratedCodeInfo} message GeneratedCodeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GeneratedCodeInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.annotation = []; + if (message.annotation && message.annotation.length) { + object.annotation = []; + for (var j = 0; j < message.annotation.length; ++j) + object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options); + } + return object; + }; - /** - * Converts this DimensionOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.DimensionOrderBy - * @instance - * @returns {Object.} JSON object - */ - DimensionOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this GeneratedCodeInfo to JSON. + * @function toJSON + * @memberof google.protobuf.GeneratedCodeInfo + * @instance + * @returns {Object.} JSON object + */ + GeneratedCodeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * OrderType enum. - * @name google.analytics.data.v1alpha.OrderBy.DimensionOrderBy.OrderType - * @enum {number} - * @property {number} ORDER_TYPE_UNSPECIFIED=0 ORDER_TYPE_UNSPECIFIED value - * @property {number} ALPHANUMERIC=1 ALPHANUMERIC value - * @property {number} CASE_INSENSITIVE_ALPHANUMERIC=2 CASE_INSENSITIVE_ALPHANUMERIC value - * @property {number} NUMERIC=3 NUMERIC value - */ - DimensionOrderBy.OrderType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ORDER_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "ALPHANUMERIC"] = 1; - values[valuesById[2] = "CASE_INSENSITIVE_ALPHANUMERIC"] = 2; - values[valuesById[3] = "NUMERIC"] = 3; - return values; - })(); + GeneratedCodeInfo.Annotation = (function() { - return DimensionOrderBy; - })(); + /** + * Properties of an Annotation. + * @memberof google.protobuf.GeneratedCodeInfo + * @interface IAnnotation + * @property {Array.|null} [path] Annotation path + * @property {string|null} [sourceFile] Annotation sourceFile + * @property {number|null} [begin] Annotation begin + * @property {number|null} [end] Annotation end + */ - OrderBy.PivotOrderBy = (function() { + /** + * Constructs a new Annotation. + * @memberof google.protobuf.GeneratedCodeInfo + * @classdesc Represents an Annotation. + * @implements IAnnotation + * @constructor + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set + */ + function Annotation(properties) { + this.path = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Properties of a PivotOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @interface IPivotOrderBy - * @property {string|null} [metricName] PivotOrderBy metricName - * @property {Array.|null} [pivotSelections] PivotOrderBy pivotSelections - */ + /** + * Annotation path. + * @member {Array.} path + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.path = $util.emptyArray; - /** - * Constructs a new PivotOrderBy. - * @memberof google.analytics.data.v1alpha.OrderBy - * @classdesc Represents a PivotOrderBy. - * @implements IPivotOrderBy - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy=} [properties] Properties to set - */ - function PivotOrderBy(properties) { - this.pivotSelections = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Annotation sourceFile. + * @member {string} sourceFile + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.sourceFile = ""; - /** - * PivotOrderBy metricName. - * @member {string} metricName - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @instance - */ - PivotOrderBy.prototype.metricName = ""; + /** + * Annotation begin. + * @member {number} begin + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.begin = 0; - /** - * PivotOrderBy pivotSelections. - * @member {Array.} pivotSelections - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @instance - */ - PivotOrderBy.prototype.pivotSelections = $util.emptyArray; + /** + * Annotation end. + * @member {number} end + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + */ + Annotation.prototype.end = 0; - /** - * Creates a new PivotOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy} PivotOrderBy instance - */ - PivotOrderBy.create = function create(properties) { - return new PivotOrderBy(properties); - }; + /** + * Creates a new Annotation instance using the specified properties. + * @function create + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation instance + */ + Annotation.create = function create(properties) { + return new Annotation(properties); + }; - /** - * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - if (message.pivotSelections != null && message.pivotSelections.length) - for (var i = 0; i < message.pivotSelections.length; ++i) - $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.encode(message.pivotSelections[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @function encode + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Annotation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.path != null && message.path.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.path.length; ++i) + writer.int32(message.path[i]); + writer.ldelim(); + } + if (message.sourceFile != null && Object.hasOwnProperty.call(message, "sourceFile")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceFile); + if (message.begin != null && Object.hasOwnProperty.call(message, "begin")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin); + if (message.end != null && Object.hasOwnProperty.call(message, "end")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end); + return writer; + }; - /** - * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Annotation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a PivotOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy} PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metricName = reader.string(); - break; - case 2: - if (!(message.pivotSelections && message.pivotSelections.length)) - message.pivotSelections = []; - message.pivotSelections.push($root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Decodes an Annotation message from the specified reader or buffer. + * @function decode + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Annotation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.path && message.path.length)) + message.path = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.path.push(reader.int32()); + } else + message.path.push(reader.int32()); + break; + case 2: + message.sourceFile = reader.string(); + break; + case 3: + message.begin = reader.int32(); + break; + case 4: + message.end = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy} PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes an Annotation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Annotation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a PivotOrderBy message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PivotOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.metricName != null && message.hasOwnProperty("metricName")) - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - if (message.pivotSelections != null && message.hasOwnProperty("pivotSelections")) { - if (!Array.isArray(message.pivotSelections)) - return "pivotSelections: array expected"; - for (var i = 0; i < message.pivotSelections.length; ++i) { - var error = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.verify(message.pivotSelections[i]); - if (error) - return "pivotSelections." + error; - } - } - return null; - }; + /** + * Verifies an Annotation message. + * @function verify + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Annotation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.path != null && message.hasOwnProperty("path")) { + if (!Array.isArray(message.path)) + return "path: array expected"; + for (var i = 0; i < message.path.length; ++i) + if (!$util.isInteger(message.path[i])) + return "path: integer[] expected"; + } + if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + if (!$util.isString(message.sourceFile)) + return "sourceFile: string expected"; + if (message.begin != null && message.hasOwnProperty("begin")) + if (!$util.isInteger(message.begin)) + return "begin: integer expected"; + if (message.end != null && message.hasOwnProperty("end")) + if (!$util.isInteger(message.end)) + return "end: integer expected"; + return null; + }; - /** - * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy} PivotOrderBy - */ - PivotOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy(); - if (object.metricName != null) - message.metricName = String(object.metricName); - if (object.pivotSelections) { - if (!Array.isArray(object.pivotSelections)) - throw TypeError(".google.analytics.data.v1alpha.OrderBy.PivotOrderBy.pivotSelections: array expected"); - message.pivotSelections = []; - for (var i = 0; i < object.pivotSelections.length; ++i) { - if (typeof object.pivotSelections[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.OrderBy.PivotOrderBy.pivotSelections: object expected"); - message.pivotSelections[i] = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.fromObject(object.pivotSelections[i]); - } - } - return message; - }; + /** + * Creates an Annotation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {Object.} object Plain object + * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation + */ + Annotation.fromObject = function fromObject(object) { + if (object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation) + return object; + var message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); + if (object.path) { + if (!Array.isArray(object.path)) + throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected"); + message.path = []; + for (var i = 0; i < object.path.length; ++i) + message.path[i] = object.path[i] | 0; + } + if (object.sourceFile != null) + message.sourceFile = String(object.sourceFile); + if (object.begin != null) + message.begin = object.begin | 0; + if (object.end != null) + message.end = object.end | 0; + return message; + }; - /** - * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy} message PivotOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PivotOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.pivotSelections = []; - if (options.defaults) - object.metricName = ""; - if (message.metricName != null && message.hasOwnProperty("metricName")) - object.metricName = message.metricName; - if (message.pivotSelections && message.pivotSelections.length) { - object.pivotSelections = []; - for (var j = 0; j < message.pivotSelections.length; ++j) - object.pivotSelections[j] = $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.toObject(message.pivotSelections[j], options); - } - return object; - }; + /** + * Creates a plain object from an Annotation message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @static + * @param {google.protobuf.GeneratedCodeInfo.Annotation} message Annotation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Annotation.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.path = []; + if (options.defaults) { + object.sourceFile = ""; + object.begin = 0; + object.end = 0; + } + if (message.path && message.path.length) { + object.path = []; + for (var j = 0; j < message.path.length; ++j) + object.path[j] = message.path[j]; + } + if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) + object.sourceFile = message.sourceFile; + if (message.begin != null && message.hasOwnProperty("begin")) + object.begin = message.begin; + if (message.end != null && message.hasOwnProperty("end")) + object.end = message.end; + return object; + }; - /** - * Converts this PivotOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @instance - * @returns {Object.} JSON object - */ - PivotOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this Annotation to JSON. + * @function toJSON + * @memberof google.protobuf.GeneratedCodeInfo.Annotation + * @instance + * @returns {Object.} JSON object + */ + Annotation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - PivotOrderBy.PivotSelection = (function() { + return Annotation; + })(); - /** - * Properties of a PivotSelection. - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @interface IPivotSelection - * @property {string|null} [dimensionName] PivotSelection dimensionName - * @property {string|null} [dimensionValue] PivotSelection dimensionValue - */ + return GeneratedCodeInfo; + })(); - /** - * Constructs a new PivotSelection. - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy - * @classdesc Represents a PivotSelection. - * @implements IPivotSelection - * @constructor - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set - */ - function PivotSelection(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + return protobuf; + })(); - /** - * PivotSelection dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @instance - */ - PivotSelection.prototype.dimensionName = ""; + google.analytics = (function() { - /** - * PivotSelection dimensionValue. - * @member {string} dimensionValue - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @instance - */ - PivotSelection.prototype.dimensionValue = ""; + /** + * Namespace analytics. + * @memberof google + * @namespace + */ + var analytics = {}; - /** - * Creates a new PivotSelection instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection} PivotSelection instance - */ - PivotSelection.create = function create(properties) { - return new PivotSelection(properties); - }; + analytics.data = (function() { - /** - * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotSelection.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - if (message.dimensionValue != null && Object.hasOwnProperty.call(message, "dimensionValue")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimensionValue); - return writer; - }; + /** + * Namespace data. + * @memberof google.analytics + * @namespace + */ + var data = {}; - /** - * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotSelection.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + data.v1alpha = (function() { - /** - * Decodes a PivotSelection message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotSelection.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - case 2: - message.dimensionValue = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Namespace v1alpha. + * @memberof google.analytics.data + * @namespace + */ + var v1alpha = {}; - /** - * Decodes a PivotSelection message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotSelection.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + v1alpha.AlphaAnalyticsData = (function() { - /** - * Verifies a PivotSelection message. - * @function verify - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PivotSelection.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) - if (!$util.isString(message.dimensionValue)) - return "dimensionValue: string expected"; - return null; - }; + /** + * Constructs a new AlphaAnalyticsData service. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an AlphaAnalyticsData + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function AlphaAnalyticsData(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } - /** - * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - */ - PivotSelection.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection) - return object; - var message = new $root.google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - if (object.dimensionValue != null) - message.dimensionValue = String(object.dimensionValue); - return message; - }; + (AlphaAnalyticsData.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = AlphaAnalyticsData; - /** - * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection} message PivotSelection - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PivotSelection.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.dimensionName = ""; - object.dimensionValue = ""; - } - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) - object.dimensionValue = message.dimensionValue; - return object; - }; + /** + * Creates new AlphaAnalyticsData service using the specified rpc implementation. + * @function create + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {AlphaAnalyticsData} RPC service. Useful where requests and/or responses are streamed. + */ + AlphaAnalyticsData.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; - /** - * Converts this PivotSelection to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.OrderBy.PivotOrderBy.PivotSelection - * @instance - * @returns {Object.} JSON object - */ - PivotSelection.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Callback as used by {@link google.analytics.data.v1alpha.AlphaAnalyticsData#runFunnelReport}. + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @typedef RunFunnelReportCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1alpha.RunFunnelReportResponse} [response] RunFunnelReportResponse + */ - return PivotSelection; - })(); + /** + * Calls RunFunnelReport. + * @function runFunnelReport + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} request RunFunnelReportRequest message or plain object + * @param {google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReportCallback} callback Node-style callback called with the error, if any, and RunFunnelReportResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AlphaAnalyticsData.prototype.runFunnelReport = function runFunnelReport(request, callback) { + return this.rpcCall(runFunnelReport, $root.google.analytics.data.v1alpha.RunFunnelReportRequest, $root.google.analytics.data.v1alpha.RunFunnelReportResponse, request, callback); + }, "name", { value: "RunFunnelReport" }); - return PivotOrderBy; - })(); + /** + * Calls RunFunnelReport. + * @function runFunnelReport + * @memberof google.analytics.data.v1alpha.AlphaAnalyticsData + * @instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} request RunFunnelReportRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ - return OrderBy; + return AlphaAnalyticsData; })(); - v1alpha.Pivot = (function() { + v1alpha.RunFunnelReportRequest = (function() { /** - * Properties of a Pivot. + * Properties of a RunFunnelReportRequest. * @memberof google.analytics.data.v1alpha - * @interface IPivot - * @property {Array.|null} [fieldNames] Pivot fieldNames - * @property {Array.|null} [orderBys] Pivot orderBys - * @property {number|Long|null} [offset] Pivot offset - * @property {number|Long|null} [limit] Pivot limit - * @property {Array.|null} [metricAggregations] Pivot metricAggregations + * @interface IRunFunnelReportRequest + * @property {string|null} [property] RunFunnelReportRequest property + * @property {Array.|null} [dateRanges] RunFunnelReportRequest dateRanges + * @property {google.analytics.data.v1alpha.IFunnel|null} [funnel] RunFunnelReportRequest funnel + * @property {google.analytics.data.v1alpha.IFunnelBreakdown|null} [funnelBreakdown] RunFunnelReportRequest funnelBreakdown + * @property {google.analytics.data.v1alpha.IFunnelNextAction|null} [funnelNextAction] RunFunnelReportRequest funnelNextAction + * @property {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType|null} [funnelVisualizationType] RunFunnelReportRequest funnelVisualizationType + * @property {Array.|null} [segments] RunFunnelReportRequest segments + * @property {number|Long|null} [limit] RunFunnelReportRequest limit + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [dimensionFilter] RunFunnelReportRequest dimensionFilter + * @property {boolean|null} [returnPropertyQuota] RunFunnelReportRequest returnPropertyQuota */ /** - * Constructs a new Pivot. + * Constructs a new RunFunnelReportRequest. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Pivot. - * @implements IPivot + * @classdesc Represents a RunFunnelReportRequest. + * @implements IRunFunnelReportRequest * @constructor - * @param {google.analytics.data.v1alpha.IPivot=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set */ - function Pivot(properties) { - this.fieldNames = []; - this.orderBys = []; - this.metricAggregations = []; + function RunFunnelReportRequest(properties) { + this.dateRanges = []; + this.segments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -9412,144 +9091,198 @@ } /** - * Pivot fieldNames. - * @member {Array.} fieldNames - * @memberof google.analytics.data.v1alpha.Pivot + * RunFunnelReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - Pivot.prototype.fieldNames = $util.emptyArray; + RunFunnelReportRequest.prototype.property = ""; /** - * Pivot orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1alpha.Pivot + * RunFunnelReportRequest dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - Pivot.prototype.orderBys = $util.emptyArray; + RunFunnelReportRequest.prototype.dateRanges = $util.emptyArray; /** - * Pivot offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1alpha.Pivot + * RunFunnelReportRequest funnel. + * @member {google.analytics.data.v1alpha.IFunnel|null|undefined} funnel + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - Pivot.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + RunFunnelReportRequest.prototype.funnel = null; /** - * Pivot limit. + * RunFunnelReportRequest funnelBreakdown. + * @member {google.analytics.data.v1alpha.IFunnelBreakdown|null|undefined} funnelBreakdown + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelBreakdown = null; + + /** + * RunFunnelReportRequest funnelNextAction. + * @member {google.analytics.data.v1alpha.IFunnelNextAction|null|undefined} funnelNextAction + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelNextAction = null; + + /** + * RunFunnelReportRequest funnelVisualizationType. + * @member {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType} funnelVisualizationType + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.funnelVisualizationType = 0; + + /** + * RunFunnelReportRequest segments. + * @member {Array.} segments + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.segments = $util.emptyArray; + + /** + * RunFunnelReportRequest limit. * @member {number|Long} limit - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - Pivot.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + RunFunnelReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Pivot metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1alpha.Pivot + * RunFunnelReportRequest dimensionFilter. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance */ - Pivot.prototype.metricAggregations = $util.emptyArray; + RunFunnelReportRequest.prototype.dimensionFilter = null; /** - * Creates a new Pivot instance using the specified properties. + * RunFunnelReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest + * @instance + */ + RunFunnelReportRequest.prototype.returnPropertyQuota = false; + + /** + * Creates a new RunFunnelReportRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IPivot=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Pivot} Pivot instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest instance */ - Pivot.create = function create(properties) { - return new Pivot(properties); + RunFunnelReportRequest.create = function create(properties) { + return new RunFunnelReportRequest(properties); }; /** - * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1alpha.Pivot.verify|verify} messages. + * Encodes the specified RunFunnelReportRequest message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IPivot} message Pivot message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Pivot.encode = function encode(message, writer) { + RunFunnelReportRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldNames != null && message.fieldNames.length) - for (var i = 0; i < message.fieldNames.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldNames[i]); - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1alpha.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 3, wireType 0 =*/24).int64(message.offset); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dateRanges != null && message.dateRanges.length) + for (var i = 0; i < message.dateRanges.length; ++i) + $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.funnel != null && Object.hasOwnProperty.call(message, "funnel")) + $root.google.analytics.data.v1alpha.Funnel.encode(message.funnel, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelBreakdown != null && Object.hasOwnProperty.call(message, "funnelBreakdown")) + $root.google.analytics.data.v1alpha.FunnelBreakdown.encode(message.funnelBreakdown, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.funnelNextAction != null && Object.hasOwnProperty.call(message, "funnelNextAction")) + $root.google.analytics.data.v1alpha.FunnelNextAction.encode(message.funnelNextAction, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.funnelVisualizationType != null && Object.hasOwnProperty.call(message, "funnelVisualizationType")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.funnelVisualizationType); + if (message.segments != null && message.segments.length) + for (var i = 0; i < message.segments.length; ++i) + $root.google.analytics.data.v1alpha.Segment.encode(message.segments[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 4, wireType 0 =*/32).int64(message.limit); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 5, wireType 2 =*/42).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } + writer.uint32(/* id 9, wireType 0 =*/72).int64(message.limit); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 12, wireType 0 =*/96).bool(message.returnPropertyQuota); return writer; }; /** - * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Pivot.verify|verify} messages. + * Encodes the specified RunFunnelReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.IPivot} message Pivot message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportRequest} message RunFunnelReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Pivot.encodeDelimited = function encodeDelimited(message, writer) { + RunFunnelReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Pivot message from the specified reader or buffer. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Pivot.decode = function decode(reader, length) { + RunFunnelReportRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Pivot(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.fieldNames && message.fieldNames.length)) - message.fieldNames = []; - message.fieldNames.push(reader.string()); + message.property = reader.string(); break; case 2: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1alpha.OrderBy.decode(reader, reader.uint32())); + if (!(message.dateRanges && message.dateRanges.length)) + message.dateRanges = []; + message.dateRanges.push($root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32())); break; case 3: - message.offset = reader.int64(); + message.funnel = $root.google.analytics.data.v1alpha.Funnel.decode(reader, reader.uint32()); break; case 4: - message.limit = reader.int64(); + message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.decode(reader, reader.uint32()); break; case 5: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); + message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.decode(reader, reader.uint32()); + break; + case 6: + message.funnelVisualizationType = reader.int32(); + break; + case 7: + if (!(message.segments && message.segments.length)) + message.segments = []; + message.segments.push($root.google.analytics.data.v1alpha.Segment.decode(reader, reader.uint32())); + break; + case 9: + message.limit = reader.int64(); + break; + case 10: + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); + break; + case 12: + message.returnPropertyQuota = reader.bool(); break; default: reader.skipType(tag & 7); @@ -9560,110 +9293,154 @@ }; /** - * Decodes a Pivot message from the specified reader or buffer, length delimited. + * Decodes a RunFunnelReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Pivot.decodeDelimited = function decodeDelimited(reader) { + RunFunnelReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Pivot message. + * Verifies a RunFunnelReportRequest message. * @function verify - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Pivot.verify = function verify(message) { + RunFunnelReportRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.fieldNames != null && message.hasOwnProperty("fieldNames")) { - if (!Array.isArray(message.fieldNames)) - return "fieldNames: array expected"; - for (var i = 0; i < message.fieldNames.length; ++i) - if (!$util.isString(message.fieldNames[i])) - return "fieldNames: string[] expected"; + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { + if (!Array.isArray(message.dateRanges)) + return "dateRanges: array expected"; + for (var i = 0; i < message.dateRanges.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRanges[i]); + if (error) + return "dateRanges." + error; + } } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1alpha.OrderBy.verify(message.orderBys[i]); + if (message.funnel != null && message.hasOwnProperty("funnel")) { + var error = $root.google.analytics.data.v1alpha.Funnel.verify(message.funnel); + if (error) + return "funnel." + error; + } + if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) { + var error = $root.google.analytics.data.v1alpha.FunnelBreakdown.verify(message.funnelBreakdown); + if (error) + return "funnelBreakdown." + error; + } + if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) { + var error = $root.google.analytics.data.v1alpha.FunnelNextAction.verify(message.funnelNextAction); + if (error) + return "funnelNextAction." + error; + } + if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) + switch (message.funnelVisualizationType) { + default: + return "funnelVisualizationType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.segments != null && message.hasOwnProperty("segments")) { + if (!Array.isArray(message.segments)) + return "segments: array expected"; + for (var i = 0; i < message.segments.length; ++i) { + var error = $root.google.analytics.data.v1alpha.Segment.verify(message.segments[i]); if (error) - return "orderBys." + error; + return "segments." + error; } } - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) - return "offset: integer|Long expected"; if (message.limit != null && message.hasOwnProperty("limit")) if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) return "limit: integer|Long expected"; - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; } + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; return null; }; /** - * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * Creates a RunFunnelReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.RunFunnelReportRequest} RunFunnelReportRequest */ - Pivot.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Pivot) + RunFunnelReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportRequest) return object; - var message = new $root.google.analytics.data.v1alpha.Pivot(); - if (object.fieldNames) { - if (!Array.isArray(object.fieldNames)) - throw TypeError(".google.analytics.data.v1alpha.Pivot.fieldNames: array expected"); - message.fieldNames = []; - for (var i = 0; i < object.fieldNames.length; ++i) - message.fieldNames[i] = String(object.fieldNames[i]); + var message = new $root.google.analytics.data.v1alpha.RunFunnelReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dateRanges) { + if (!Array.isArray(object.dateRanges)) + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: array expected"); + message.dateRanges = []; + for (var i = 0; i < object.dateRanges.length; ++i) { + if (typeof object.dateRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dateRanges: object expected"); + message.dateRanges[i] = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRanges[i]); + } } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1alpha.Pivot.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Pivot.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1alpha.OrderBy.fromObject(object.orderBys[i]); + if (object.funnel != null) { + if (typeof object.funnel !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnel: object expected"); + message.funnel = $root.google.analytics.data.v1alpha.Funnel.fromObject(object.funnel); + } + if (object.funnelBreakdown != null) { + if (typeof object.funnelBreakdown !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelBreakdown: object expected"); + message.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.fromObject(object.funnelBreakdown); + } + if (object.funnelNextAction != null) { + if (typeof object.funnelNextAction !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.funnelNextAction: object expected"); + message.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.fromObject(object.funnelNextAction); + } + switch (object.funnelVisualizationType) { + case "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED": + case 0: + message.funnelVisualizationType = 0; + break; + case "STANDARD_FUNNEL": + case 1: + message.funnelVisualizationType = 1; + break; + case "TRENDED_FUNNEL": + case 2: + message.funnelVisualizationType = 2; + break; + } + if (object.segments) { + if (!Array.isArray(object.segments)) + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: array expected"); + message.segments = []; + for (var i = 0; i < object.segments.length; ++i) { + if (typeof object.segments[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.segments: object expected"); + message.segments[i] = $root.google.analytics.data.v1alpha.Segment.fromObject(object.segments[i]); } } - if (object.offset != null) - if ($util.Long) - (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; - else if (typeof object.offset === "string") - message.offset = parseInt(object.offset, 10); - else if (typeof object.offset === "number") - message.offset = object.offset; - else if (typeof object.offset === "object") - message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); if (object.limit != null) if ($util.Long) (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; @@ -9673,131 +9450,130 @@ message.limit = object.limit; else if (typeof object.limit === "object") message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1alpha.Pivot.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.dimensionFilter); } + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); return message; }; /** - * Creates a plain object from a Pivot message. Also converts values to other types if specified. + * Creates a plain object from a RunFunnelReportRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @static - * @param {google.analytics.data.v1alpha.Pivot} message Pivot + * @param {google.analytics.data.v1alpha.RunFunnelReportRequest} message RunFunnelReportRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Pivot.toObject = function toObject(message, options) { + RunFunnelReportRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) { - object.fieldNames = []; - object.orderBys = []; - object.metricAggregations = []; + object.dateRanges = []; + object.segments = []; } if (options.defaults) { - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.offset = options.longs === String ? "0" : 0; + object.property = ""; + object.funnel = null; + object.funnelBreakdown = null; + object.funnelNextAction = null; + object.funnelVisualizationType = options.enums === String ? "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED" : 0; if ($util.Long) { var long = new $util.Long(0, 0, false); object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else object.limit = options.longs === String ? "0" : 0; + object.dimensionFilter = null; + object.returnPropertyQuota = false; } - if (message.fieldNames && message.fieldNames.length) { - object.fieldNames = []; - for (var j = 0; j < message.fieldNames.length; ++j) - object.fieldNames[j] = message.fieldNames[j]; + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dateRanges && message.dateRanges.length) { + object.dateRanges = []; + for (var j = 0; j < message.dateRanges.length; ++j) + object.dateRanges[j] = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRanges[j], options); } - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1alpha.OrderBy.toObject(message.orderBys[j], options); + if (message.funnel != null && message.hasOwnProperty("funnel")) + object.funnel = $root.google.analytics.data.v1alpha.Funnel.toObject(message.funnel, options); + if (message.funnelBreakdown != null && message.hasOwnProperty("funnelBreakdown")) + object.funnelBreakdown = $root.google.analytics.data.v1alpha.FunnelBreakdown.toObject(message.funnelBreakdown, options); + if (message.funnelNextAction != null && message.hasOwnProperty("funnelNextAction")) + object.funnelNextAction = $root.google.analytics.data.v1alpha.FunnelNextAction.toObject(message.funnelNextAction, options); + if (message.funnelVisualizationType != null && message.hasOwnProperty("funnelVisualizationType")) + object.funnelVisualizationType = options.enums === String ? $root.google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType[message.funnelVisualizationType] : message.funnelVisualizationType; + if (message.segments && message.segments.length) { + object.segments = []; + for (var j = 0; j < message.segments.length; ++j) + object.segments[j] = $root.google.analytics.data.v1alpha.Segment.toObject(message.segments[j], options); } - if (message.offset != null && message.hasOwnProperty("offset")) - if (typeof message.offset === "number") - object.offset = options.longs === String ? String(message.offset) : message.offset; - else - object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; if (message.limit != null && message.hasOwnProperty("limit")) if (typeof message.limit === "number") object.limit = options.longs === String ? String(message.limit) : message.limit; else object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1alpha.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; - } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.dimensionFilter, options); + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; return object; }; /** - * Converts this Pivot to JSON. + * Converts this RunFunnelReportRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Pivot + * @memberof google.analytics.data.v1alpha.RunFunnelReportRequest * @instance * @returns {Object.} JSON object */ - Pivot.prototype.toJSON = function toJSON() { + RunFunnelReportRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Pivot; + /** + * FunnelVisualizationType enum. + * @name google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType + * @enum {number} + * @property {number} FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED=0 FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED value + * @property {number} STANDARD_FUNNEL=1 STANDARD_FUNNEL value + * @property {number} TRENDED_FUNNEL=2 TRENDED_FUNNEL value + */ + RunFunnelReportRequest.FunnelVisualizationType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "STANDARD_FUNNEL"] = 1; + values[valuesById[2] = "TRENDED_FUNNEL"] = 2; + return values; + })(); + + return RunFunnelReportRequest; })(); - v1alpha.CohortSpec = (function() { + v1alpha.RunFunnelReportResponse = (function() { /** - * Properties of a CohortSpec. + * Properties of a RunFunnelReportResponse. * @memberof google.analytics.data.v1alpha - * @interface ICohortSpec - * @property {Array.|null} [cohorts] CohortSpec cohorts - * @property {google.analytics.data.v1alpha.ICohortsRange|null} [cohortsRange] CohortSpec cohortsRange - * @property {google.analytics.data.v1alpha.ICohortReportSettings|null} [cohortReportSettings] CohortSpec cohortReportSettings + * @interface IRunFunnelReportResponse + * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelTable] RunFunnelReportResponse funnelTable + * @property {google.analytics.data.v1alpha.IFunnelSubReport|null} [funnelVisualization] RunFunnelReportResponse funnelVisualization + * @property {google.analytics.data.v1alpha.IPropertyQuota|null} [propertyQuota] RunFunnelReportResponse propertyQuota + * @property {string|null} [kind] RunFunnelReportResponse kind */ /** - * Constructs a new CohortSpec. + * Constructs a new RunFunnelReportResponse. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortSpec. - * @implements ICohortSpec + * @classdesc Represents a RunFunnelReportResponse. + * @implements IRunFunnelReportResponse * @constructor - * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set */ - function CohortSpec(properties) { - this.cohorts = []; + function RunFunnelReportResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -9805,104 +9581,114 @@ } /** - * CohortSpec cohorts. - * @member {Array.} cohorts - * @memberof google.analytics.data.v1alpha.CohortSpec + * RunFunnelReportResponse funnelTable. + * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelTable + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - CohortSpec.prototype.cohorts = $util.emptyArray; + RunFunnelReportResponse.prototype.funnelTable = null; /** - * CohortSpec cohortsRange. - * @member {google.analytics.data.v1alpha.ICohortsRange|null|undefined} cohortsRange - * @memberof google.analytics.data.v1alpha.CohortSpec + * RunFunnelReportResponse funnelVisualization. + * @member {google.analytics.data.v1alpha.IFunnelSubReport|null|undefined} funnelVisualization + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - CohortSpec.prototype.cohortsRange = null; + RunFunnelReportResponse.prototype.funnelVisualization = null; /** - * CohortSpec cohortReportSettings. - * @member {google.analytics.data.v1alpha.ICohortReportSettings|null|undefined} cohortReportSettings - * @memberof google.analytics.data.v1alpha.CohortSpec + * RunFunnelReportResponse propertyQuota. + * @member {google.analytics.data.v1alpha.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance */ - CohortSpec.prototype.cohortReportSettings = null; + RunFunnelReportResponse.prototype.propertyQuota = null; /** - * Creates a new CohortSpec instance using the specified properties. + * RunFunnelReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse + * @instance + */ + RunFunnelReportResponse.prototype.kind = ""; + + /** + * Creates a new RunFunnelReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.ICohortSpec=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec instance + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse instance */ - CohortSpec.create = function create(properties) { - return new CohortSpec(properties); + RunFunnelReportResponse.create = function create(properties) { + return new RunFunnelReportResponse(properties); }; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * Encodes the specified RunFunnelReportResponse message. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encode = function encode(message, writer) { + RunFunnelReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cohorts != null && message.cohorts.length) - for (var i = 0; i < message.cohorts.length; ++i) - $root.google.analytics.data.v1alpha.Cohort.encode(message.cohorts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.cohortsRange != null && Object.hasOwnProperty.call(message, "cohortsRange")) - $root.google.analytics.data.v1alpha.CohortsRange.encode(message.cohortsRange, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.cohortReportSettings != null && Object.hasOwnProperty.call(message, "cohortReportSettings")) - $root.google.analytics.data.v1alpha.CohortReportSettings.encode(message.cohortReportSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelTable != null && Object.hasOwnProperty.call(message, "funnelTable")) + $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelTable, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.funnelVisualization != null && Object.hasOwnProperty.call(message, "funnelVisualization")) + $root.google.analytics.data.v1alpha.FunnelSubReport.encode(message.funnelVisualization, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1alpha.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.kind); return writer; }; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortSpec.verify|verify} messages. + * Encodes the specified RunFunnelReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.RunFunnelReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IRunFunnelReportResponse} message RunFunnelReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encodeDelimited = function encodeDelimited(message, writer) { + RunFunnelReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes a RunFunnelReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decode = function decode(reader, length) { + RunFunnelReportResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortSpec(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.cohorts && message.cohorts.length)) - message.cohorts = []; - message.cohorts.push($root.google.analytics.data.v1alpha.Cohort.decode(reader, reader.uint32())); + message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); break; case 2: - message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.decode(reader, reader.uint32()); + message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.decode(reader, reader.uint32()); break; case 3: - message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.decode(reader, reader.uint32()); + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.decode(reader, reader.uint32()); + break; + case 4: + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -9913,154 +9699,149 @@ }; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes a RunFunnelReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decodeDelimited = function decodeDelimited(reader) { + RunFunnelReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortSpec message. + * Verifies a RunFunnelReportResponse message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortSpec.verify = function verify(message) { + RunFunnelReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cohorts != null && message.hasOwnProperty("cohorts")) { - if (!Array.isArray(message.cohorts)) - return "cohorts: array expected"; - for (var i = 0; i < message.cohorts.length; ++i) { - var error = $root.google.analytics.data.v1alpha.Cohort.verify(message.cohorts[i]); - if (error) - return "cohorts." + error; - } + if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) { + var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelTable); + if (error) + return "funnelTable." + error; } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) { - var error = $root.google.analytics.data.v1alpha.CohortsRange.verify(message.cohortsRange); + if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) { + var error = $root.google.analytics.data.v1alpha.FunnelSubReport.verify(message.funnelVisualization); if (error) - return "cohortsRange." + error; + return "funnelVisualization." + error; } - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) { - var error = $root.google.analytics.data.v1alpha.CohortReportSettings.verify(message.cohortReportSettings); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1alpha.PropertyQuota.verify(message.propertyQuota); if (error) - return "cohortReportSettings." + error; + return "propertyQuota." + error; } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates a RunFunnelReportResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.RunFunnelReportResponse} RunFunnelReportResponse */ - CohortSpec.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortSpec) + RunFunnelReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.RunFunnelReportResponse) return object; - var message = new $root.google.analytics.data.v1alpha.CohortSpec(); - if (object.cohorts) { - if (!Array.isArray(object.cohorts)) - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: array expected"); - message.cohorts = []; - for (var i = 0; i < object.cohorts.length; ++i) { - if (typeof object.cohorts[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohorts: object expected"); - message.cohorts[i] = $root.google.analytics.data.v1alpha.Cohort.fromObject(object.cohorts[i]); - } + var message = new $root.google.analytics.data.v1alpha.RunFunnelReportResponse(); + if (object.funnelTable != null) { + if (typeof object.funnelTable !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelTable: object expected"); + message.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelTable); } - if (object.cohortsRange != null) { - if (typeof object.cohortsRange !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortsRange: object expected"); - message.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.fromObject(object.cohortsRange); + if (object.funnelVisualization != null) { + if (typeof object.funnelVisualization !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.funnelVisualization: object expected"); + message.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.fromObject(object.funnelVisualization); } - if (object.cohortReportSettings != null) { - if (typeof object.cohortReportSettings !== "object") - throw TypeError(".google.analytics.data.v1alpha.CohortSpec.cohortReportSettings: object expected"); - message.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.fromObject(object.cohortReportSettings); + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1alpha.RunFunnelReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.fromObject(object.propertyQuota); } + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * Creates a plain object from a RunFunnelReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @static - * @param {google.analytics.data.v1alpha.CohortSpec} message CohortSpec + * @param {google.analytics.data.v1alpha.RunFunnelReportResponse} message RunFunnelReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortSpec.toObject = function toObject(message, options) { + RunFunnelReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.cohorts = []; if (options.defaults) { - object.cohortsRange = null; - object.cohortReportSettings = null; - } - if (message.cohorts && message.cohorts.length) { - object.cohorts = []; - for (var j = 0; j < message.cohorts.length; ++j) - object.cohorts[j] = $root.google.analytics.data.v1alpha.Cohort.toObject(message.cohorts[j], options); + object.funnelTable = null; + object.funnelVisualization = null; + object.propertyQuota = null; + object.kind = ""; } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) - object.cohortsRange = $root.google.analytics.data.v1alpha.CohortsRange.toObject(message.cohortsRange, options); - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) - object.cohortReportSettings = $root.google.analytics.data.v1alpha.CohortReportSettings.toObject(message.cohortReportSettings, options); + if (message.funnelTable != null && message.hasOwnProperty("funnelTable")) + object.funnelTable = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelTable, options); + if (message.funnelVisualization != null && message.hasOwnProperty("funnelVisualization")) + object.funnelVisualization = $root.google.analytics.data.v1alpha.FunnelSubReport.toObject(message.funnelVisualization, options); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1alpha.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this CohortSpec to JSON. + * Converts this RunFunnelReportResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortSpec + * @memberof google.analytics.data.v1alpha.RunFunnelReportResponse * @instance * @returns {Object.} JSON object */ - CohortSpec.prototype.toJSON = function toJSON() { + RunFunnelReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CohortSpec; + return RunFunnelReportResponse; })(); - v1alpha.Cohort = (function() { + v1alpha.DateRange = (function() { /** - * Properties of a Cohort. + * Properties of a DateRange. * @memberof google.analytics.data.v1alpha - * @interface ICohort - * @property {string|null} [name] Cohort name - * @property {string|null} [dimension] Cohort dimension - * @property {google.analytics.data.v1alpha.IDateRange|null} [dateRange] Cohort dateRange + * @interface IDateRange + * @property {string|null} [startDate] DateRange startDate + * @property {string|null} [endDate] DateRange endDate + * @property {string|null} [name] DateRange name */ /** - * Constructs a new Cohort. + * Constructs a new DateRange. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Cohort. - * @implements ICohort + * @classdesc Represents a DateRange. + * @implements IDateRange * @constructor - * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set */ - function Cohort(properties) { + function DateRange(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10068,101 +9849,101 @@ } /** - * Cohort name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.Cohort + * DateRange startDate. + * @member {string} startDate + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - Cohort.prototype.name = ""; + DateRange.prototype.startDate = ""; /** - * Cohort dimension. - * @member {string} dimension - * @memberof google.analytics.data.v1alpha.Cohort + * DateRange endDate. + * @member {string} endDate + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - Cohort.prototype.dimension = ""; + DateRange.prototype.endDate = ""; /** - * Cohort dateRange. - * @member {google.analytics.data.v1alpha.IDateRange|null|undefined} dateRange - * @memberof google.analytics.data.v1alpha.Cohort + * DateRange name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.DateRange * @instance */ - Cohort.prototype.dateRange = null; + DateRange.prototype.name = ""; /** - * Creates a new Cohort instance using the specified properties. + * Creates a new DateRange instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.ICohort=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Cohort} Cohort instance + * @param {google.analytics.data.v1alpha.IDateRange=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DateRange} DateRange instance */ - Cohort.create = function create(properties) { - return new Cohort(properties); + DateRange.create = function create(properties) { + return new DateRange(properties); }; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encode = function encode(message, writer) { + DateRange.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimension); - if (message.dateRange != null && Object.hasOwnProperty.call(message, "dateRange")) - $root.google.analytics.data.v1alpha.DateRange.encode(message.dateRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); return writer; }; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Cohort.verify|verify} messages. + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DateRange.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.IDateRange} message DateRange message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encodeDelimited = function encodeDelimited(message, writer) { + DateRange.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a DateRange message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.DateRange} DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decode = function decode(reader, length) { + DateRange.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Cohort(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DateRange(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.startDate = reader.string(); break; case 2: - message.dimension = reader.string(); + message.endDate = reader.string(); break; case 3: - message.dateRange = $root.google.analytics.data.v1alpha.DateRange.decode(reader, reader.uint32()); + message.name = reader.string(); break; default: reader.skipType(tag & 7); @@ -10173,131 +9954,125 @@ }; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a DateRange message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.DateRange} DateRange * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decodeDelimited = function decodeDelimited(reader) { + DateRange.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cohort message. + * Verifies a DateRange message. * @function verify - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cohort.verify = function verify(message) { + DateRange.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.startDate != null && message.hasOwnProperty("startDate")) + if (!$util.isString(message.startDate)) + return "startDate: string expected"; + if (message.endDate != null && message.hasOwnProperty("endDate")) + if (!$util.isString(message.endDate)) + return "endDate: string expected"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.dimension != null && message.hasOwnProperty("dimension")) - if (!$util.isString(message.dimension)) - return "dimension: string expected"; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) { - var error = $root.google.analytics.data.v1alpha.DateRange.verify(message.dateRange); - if (error) - return "dateRange." + error; - } return null; }; /** - * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.DateRange} DateRange */ - Cohort.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Cohort) + DateRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DateRange) return object; - var message = new $root.google.analytics.data.v1alpha.Cohort(); + var message = new $root.google.analytics.data.v1alpha.DateRange(); + if (object.startDate != null) + message.startDate = String(object.startDate); + if (object.endDate != null) + message.endDate = String(object.endDate); if (object.name != null) message.name = String(object.name); - if (object.dimension != null) - message.dimension = String(object.dimension); - if (object.dateRange != null) { - if (typeof object.dateRange !== "object") - throw TypeError(".google.analytics.data.v1alpha.Cohort.dateRange: object expected"); - message.dateRange = $root.google.analytics.data.v1alpha.DateRange.fromObject(object.dateRange); - } return message; }; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * Creates a plain object from a DateRange message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @static - * @param {google.analytics.data.v1alpha.Cohort} message Cohort + * @param {google.analytics.data.v1alpha.DateRange} message DateRange * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cohort.toObject = function toObject(message, options) { + DateRange.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { + object.startDate = ""; + object.endDate = ""; object.name = ""; - object.dimension = ""; - object.dateRange = null; } + if (message.startDate != null && message.hasOwnProperty("startDate")) + object.startDate = message.startDate; + if (message.endDate != null && message.hasOwnProperty("endDate")) + object.endDate = message.endDate; if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; - if (message.dimension != null && message.hasOwnProperty("dimension")) - object.dimension = message.dimension; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) - object.dateRange = $root.google.analytics.data.v1alpha.DateRange.toObject(message.dateRange, options); return object; }; /** - * Converts this Cohort to JSON. + * Converts this DateRange to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Cohort + * @memberof google.analytics.data.v1alpha.DateRange * @instance * @returns {Object.} JSON object */ - Cohort.prototype.toJSON = function toJSON() { + DateRange.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Cohort; + return DateRange; })(); - v1alpha.CohortsRange = (function() { + v1alpha.Dimension = (function() { /** - * Properties of a CohortsRange. + * Properties of a Dimension. * @memberof google.analytics.data.v1alpha - * @interface ICohortsRange - * @property {google.analytics.data.v1alpha.CohortsRange.Granularity|null} [granularity] CohortsRange granularity - * @property {number|null} [startOffset] CohortsRange startOffset - * @property {number|null} [endOffset] CohortsRange endOffset + * @interface IDimension + * @property {string|null} [name] Dimension name + * @property {google.analytics.data.v1alpha.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression */ /** - * Constructs a new CohortsRange. + * Constructs a new Dimension. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortsRange. - * @implements ICohortsRange + * @classdesc Represents a Dimension. + * @implements IDimension * @constructor - * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set */ - function CohortsRange(properties) { + function Dimension(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10305,101 +10080,88 @@ } /** - * CohortsRange granularity. - * @member {google.analytics.data.v1alpha.CohortsRange.Granularity} granularity - * @memberof google.analytics.data.v1alpha.CohortsRange - * @instance - */ - CohortsRange.prototype.granularity = 0; - - /** - * CohortsRange startOffset. - * @member {number} startOffset - * @memberof google.analytics.data.v1alpha.CohortsRange + * Dimension name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Dimension * @instance */ - CohortsRange.prototype.startOffset = 0; + Dimension.prototype.name = ""; /** - * CohortsRange endOffset. - * @member {number} endOffset - * @memberof google.analytics.data.v1alpha.CohortsRange + * Dimension dimensionExpression. + * @member {google.analytics.data.v1alpha.IDimensionExpression|null|undefined} dimensionExpression + * @memberof google.analytics.data.v1alpha.Dimension * @instance */ - CohortsRange.prototype.endOffset = 0; + Dimension.prototype.dimensionExpression = null; /** - * Creates a new CohortsRange instance using the specified properties. + * Creates a new Dimension instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.ICohortsRange=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange instance + * @param {google.analytics.data.v1alpha.IDimension=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Dimension} Dimension instance */ - CohortsRange.create = function create(properties) { - return new CohortsRange(properties); + Dimension.create = function create(properties) { + return new Dimension(properties); }; /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encode = function encode(message, writer) { + Dimension.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.granularity != null && Object.hasOwnProperty.call(message, "granularity")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.granularity); - if (message.startOffset != null && Object.hasOwnProperty.call(message, "startOffset")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startOffset); - if (message.endOffset != null && Object.hasOwnProperty.call(message, "endOffset")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.endOffset); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) + $root.google.analytics.data.v1alpha.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortsRange.verify|verify} messages. + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Dimension.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimension} message Dimension message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encodeDelimited = function encodeDelimited(message, writer) { + Dimension.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortsRange message from the specified reader or buffer. + * Decodes a Dimension message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.Dimension} Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decode = function decode(reader, length) { + Dimension.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortsRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Dimension(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granularity = reader.int32(); + message.name = reader.string(); break; case 2: - message.startOffset = reader.int32(); - break; - case 3: - message.endOffset = reader.int32(); + message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -10410,165 +10172,123 @@ }; /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * Decodes a Dimension message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.Dimension} Dimension * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decodeDelimited = function decodeDelimited(reader) { + Dimension.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortsRange message. + * Verifies a Dimension message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortsRange.verify = function verify(message) { + Dimension.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.granularity != null && message.hasOwnProperty("granularity")) - switch (message.granularity) { - default: - return "granularity: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - if (!$util.isInteger(message.startOffset)) - return "startOffset: integer expected"; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - if (!$util.isInteger(message.endOffset)) - return "endOffset: integer expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { + var error = $root.google.analytics.data.v1alpha.DimensionExpression.verify(message.dimensionExpression); + if (error) + return "dimensionExpression." + error; + } return null; }; /** - * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.Dimension} Dimension */ - CohortsRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortsRange) + Dimension.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Dimension) return object; - var message = new $root.google.analytics.data.v1alpha.CohortsRange(); - switch (object.granularity) { - case "GRANULARITY_UNSPECIFIED": - case 0: - message.granularity = 0; - break; - case "DAILY": - case 1: - message.granularity = 1; - break; - case "WEEKLY": - case 2: - message.granularity = 2; - break; - case "MONTHLY": - case 3: - message.granularity = 3; - break; + var message = new $root.google.analytics.data.v1alpha.Dimension(); + if (object.name != null) + message.name = String(object.name); + if (object.dimensionExpression != null) { + if (typeof object.dimensionExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.Dimension.dimensionExpression: object expected"); + message.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.fromObject(object.dimensionExpression); } - if (object.startOffset != null) - message.startOffset = object.startOffset | 0; - if (object.endOffset != null) - message.endOffset = object.endOffset | 0; return message; }; /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * Creates a plain object from a Dimension message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @static - * @param {google.analytics.data.v1alpha.CohortsRange} message CohortsRange + * @param {google.analytics.data.v1alpha.Dimension} message Dimension * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortsRange.toObject = function toObject(message, options) { + Dimension.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.granularity = options.enums === String ? "GRANULARITY_UNSPECIFIED" : 0; - object.startOffset = 0; - object.endOffset = 0; + object.name = ""; + object.dimensionExpression = null; } - if (message.granularity != null && message.hasOwnProperty("granularity")) - object.granularity = options.enums === String ? $root.google.analytics.data.v1alpha.CohortsRange.Granularity[message.granularity] : message.granularity; - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - object.startOffset = message.startOffset; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - object.endOffset = message.endOffset; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) + object.dimensionExpression = $root.google.analytics.data.v1alpha.DimensionExpression.toObject(message.dimensionExpression, options); return object; }; /** - * Converts this CohortsRange to JSON. + * Converts this Dimension to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortsRange + * @memberof google.analytics.data.v1alpha.Dimension * @instance * @returns {Object.} JSON object */ - CohortsRange.prototype.toJSON = function toJSON() { + Dimension.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * Granularity enum. - * @name google.analytics.data.v1alpha.CohortsRange.Granularity - * @enum {number} - * @property {number} GRANULARITY_UNSPECIFIED=0 GRANULARITY_UNSPECIFIED value - * @property {number} DAILY=1 DAILY value - * @property {number} WEEKLY=2 WEEKLY value - * @property {number} MONTHLY=3 MONTHLY value - */ - CohortsRange.Granularity = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "GRANULARITY_UNSPECIFIED"] = 0; - values[valuesById[1] = "DAILY"] = 1; - values[valuesById[2] = "WEEKLY"] = 2; - values[valuesById[3] = "MONTHLY"] = 3; - return values; - })(); - - return CohortsRange; + return Dimension; })(); - v1alpha.CohortReportSettings = (function() { + v1alpha.DimensionExpression = (function() { /** - * Properties of a CohortReportSettings. + * Properties of a DimensionExpression. * @memberof google.analytics.data.v1alpha - * @interface ICohortReportSettings - * @property {boolean|null} [accumulate] CohortReportSettings accumulate + * @interface IDimensionExpression + * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase + * @property {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase + * @property {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate */ /** - * Constructs a new CohortReportSettings. + * Constructs a new DimensionExpression. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a CohortReportSettings. - * @implements ICohortReportSettings + * @classdesc Represents a DimensionExpression. + * @implements IDimensionExpression * @constructor - * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set */ - function CohortReportSettings(properties) { + function DimensionExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10576,75 +10296,115 @@ } /** - * CohortReportSettings accumulate. - * @member {boolean} accumulate - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * DimensionExpression lowerCase. + * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} lowerCase + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance */ - CohortReportSettings.prototype.accumulate = false; + DimensionExpression.prototype.lowerCase = null; /** - * Creates a new CohortReportSettings instance using the specified properties. + * DimensionExpression upperCase. + * @member {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression|null|undefined} upperCase + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @instance + */ + DimensionExpression.prototype.upperCase = null; + + /** + * DimensionExpression concatenate. + * @member {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression|null|undefined} concatenate + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @instance + */ + DimensionExpression.prototype.concatenate = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * DimensionExpression oneExpression. + * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @instance + */ + Object.defineProperty(DimensionExpression.prototype, "oneExpression", { + get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DimensionExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings instance + * @param {google.analytics.data.v1alpha.IDimensionExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression instance */ - CohortReportSettings.create = function create(properties) { - return new CohortReportSettings(properties); + DimensionExpression.create = function create(properties) { + return new DimensionExpression(properties); }; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encode = function encode(message, writer) { + DimensionExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.accumulate != null && Object.hasOwnProperty.call(message, "accumulate")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.accumulate); + if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) + $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) + $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) + $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.CohortReportSettings.verify|verify} messages. + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionExpression} message DimensionExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encodeDelimited = function encodeDelimited(message, writer) { + DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * Decodes a DimensionExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decode = function decode(reader, length) { + DimensionExpression.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.accumulate = reader.bool(); + case 4: + message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + break; + case 5: + message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + break; + case 6: + message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -10655,183 +10415,702 @@ }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decodeDelimited = function decodeDelimited(reader) { + DimensionExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortReportSettings message. + * Verifies a DimensionExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortReportSettings.verify = function verify(message) { + DimensionExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - if (typeof message.accumulate !== "boolean") - return "accumulate: boolean expected"; + var properties = {}; + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.lowerCase); + if (error) + return "lowerCase." + error; + } + } + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify(message.upperCase); + if (error) + return "upperCase." + error; + } + } + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify(message.concatenate); + if (error) + return "concatenate." + error; + } + } return null; }; /** - * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.DimensionExpression} DimensionExpression */ - CohortReportSettings.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.CohortReportSettings) + DimensionExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression) return object; - var message = new $root.google.analytics.data.v1alpha.CohortReportSettings(); - if (object.accumulate != null) - message.accumulate = Boolean(object.accumulate); + var message = new $root.google.analytics.data.v1alpha.DimensionExpression(); + if (object.lowerCase != null) { + if (typeof object.lowerCase !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.lowerCase: object expected"); + message.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.lowerCase); + } + if (object.upperCase != null) { + if (typeof object.upperCase !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.upperCase: object expected"); + message.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.fromObject(object.upperCase); + } + if (object.concatenate != null) { + if (typeof object.concatenate !== "object") + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.concatenate: object expected"); + message.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); + } return message; }; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @static - * @param {google.analytics.data.v1alpha.CohortReportSettings} message CohortReportSettings + * @param {google.analytics.data.v1alpha.DimensionExpression} message DimensionExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortReportSettings.toObject = function toObject(message, options) { + DimensionExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.accumulate = false; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - object.accumulate = message.accumulate; + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + object.lowerCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); + if (options.oneofs) + object.oneExpression = "lowerCase"; + } + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + object.upperCase = $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression.toObject(message.upperCase, options); + if (options.oneofs) + object.oneExpression = "upperCase"; + } + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + object.concatenate = $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); + if (options.oneofs) + object.oneExpression = "concatenate"; + } return object; }; /** - * Converts this CohortReportSettings to JSON. + * Converts this DimensionExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.CohortReportSettings + * @memberof google.analytics.data.v1alpha.DimensionExpression * @instance * @returns {Object.} JSON object */ - CohortReportSettings.prototype.toJSON = function toJSON() { + DimensionExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CohortReportSettings; - })(); + DimensionExpression.CaseExpression = (function() { - v1alpha.ResponseMetaData = (function() { + /** + * Properties of a CaseExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @interface ICaseExpression + * @property {string|null} [dimensionName] CaseExpression dimensionName + */ - /** - * Properties of a ResponseMetaData. - * @memberof google.analytics.data.v1alpha - * @interface IResponseMetaData - * @property {boolean|null} [dataLossFromOtherRow] ResponseMetaData dataLossFromOtherRow - */ + /** + * Constructs a new CaseExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @classdesc Represents a CaseExpression. + * @implements ICaseExpression + * @constructor + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set + */ + function CaseExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new ResponseMetaData. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a ResponseMetaData. - * @implements IResponseMetaData - * @constructor - * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set - */ - function ResponseMetaData(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * CaseExpression dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @instance + */ + CaseExpression.prototype.dimensionName = ""; + + /** + * Creates a new CaseExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression instance + */ + CaseExpression.create = function create(properties) { + return new CaseExpression(properties); + }; + + /** + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + return writer; + }; + + /** + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CaseExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dimensionName = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CaseExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CaseExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + return null; + }; + + /** + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} CaseExpression + */ + CaseExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.DimensionExpression.CaseExpression(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + return message; + }; + + /** + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.CaseExpression} message CaseExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CaseExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.dimensionName = ""; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; + return object; + }; + + /** + * Converts this CaseExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.DimensionExpression.CaseExpression + * @instance + * @returns {Object.} JSON object + */ + CaseExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CaseExpression; + })(); + + DimensionExpression.ConcatenateExpression = (function() { + + /** + * Properties of a ConcatenateExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @interface IConcatenateExpression + * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames + * @property {string|null} [delimiter] ConcatenateExpression delimiter + */ + + /** + * Constructs a new ConcatenateExpression. + * @memberof google.analytics.data.v1alpha.DimensionExpression + * @classdesc Represents a ConcatenateExpression. + * @implements IConcatenateExpression + * @constructor + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + */ + function ConcatenateExpression(properties) { + this.dimensionNames = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ConcatenateExpression dimensionNames. + * @member {Array.} dimensionNames + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; + + /** + * ConcatenateExpression delimiter. + * @member {string} delimiter + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.delimiter = ""; + + /** + * Creates a new ConcatenateExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance + */ + ConcatenateExpression.create = function create(properties) { + return new ConcatenateExpression(properties); + }; + + /** + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionNames != null && message.dimensionNames.length) + for (var i = 0; i < message.dimensionNames.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); + if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); + return writer; + }; + + /** + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dimensionNames && message.dimensionNames.length)) + message.dimensionNames = []; + message.dimensionNames.push(reader.string()); + break; + case 2: + message.delimiter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ConcatenateExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConcatenateExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { + if (!Array.isArray(message.dimensionNames)) + return "dimensionNames: array expected"; + for (var i = 0; i < message.dimensionNames.length; ++i) + if (!$util.isString(message.dimensionNames[i])) + return "dimensionNames: string[] expected"; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + if (!$util.isString(message.delimiter)) + return "delimiter: string expected"; + return null; + }; + + /** + * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} ConcatenateExpression + */ + ConcatenateExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression(); + if (object.dimensionNames) { + if (!Array.isArray(object.dimensionNames)) + throw TypeError(".google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); + message.dimensionNames = []; + for (var i = 0; i < object.dimensionNames.length; ++i) + message.dimensionNames[i] = String(object.dimensionNames[i]); + } + if (object.delimiter != null) + message.delimiter = String(object.delimiter); + return message; + }; + + /** + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression} message ConcatenateExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConcatenateExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dimensionNames = []; + if (options.defaults) + object.delimiter = ""; + if (message.dimensionNames && message.dimensionNames.length) { + object.dimensionNames = []; + for (var j = 0; j < message.dimensionNames.length; ++j) + object.dimensionNames[j] = message.dimensionNames[j]; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + object.delimiter = message.delimiter; + return object; + }; + + /** + * Converts this ConcatenateExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.DimensionExpression.ConcatenateExpression + * @instance + * @returns {Object.} JSON object + */ + ConcatenateExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ConcatenateExpression; + })(); + + return DimensionExpression; + })(); + + v1alpha.FilterExpression = (function() { + + /** + * Properties of a FilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface IFilterExpression + * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [andGroup] FilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFilterExpressionList|null} [orGroup] FilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFilterExpression|null} [notExpression] FilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFilter|null} [filter] FilterExpression filter + */ + + /** + * Constructs a new FilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FilterExpression. + * @implements IFilterExpression + * @constructor + * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set + */ + function FilterExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } /** - * ResponseMetaData dataLossFromOtherRow. - * @member {boolean} dataLossFromOtherRow - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * FilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FilterExpression * @instance */ - ResponseMetaData.prototype.dataLossFromOtherRow = false; + FilterExpression.prototype.andGroup = null; /** - * Creates a new ResponseMetaData instance using the specified properties. + * FilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.orGroup = null; + + /** + * FilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.notExpression = null; + + /** + * FilterExpression filter. + * @member {google.analytics.data.v1alpha.IFilter|null|undefined} filter + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + FilterExpression.prototype.filter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FilterExpression + * @instance + */ + Object.defineProperty(FilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData instance + * @param {google.analytics.data.v1alpha.IFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression instance */ - ResponseMetaData.create = function create(properties) { - return new ResponseMetaData(properties); + FilterExpression.create = function create(properties) { + return new FilterExpression(properties); }; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResponseMetaData.encode = function encode(message, writer) { + FilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataLossFromOtherRow != null && Object.hasOwnProperty.call(message, "dataLossFromOtherRow")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.dataLossFromOtherRow); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.google.analytics.data.v1alpha.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.ResponseMetaData.verify|verify} messages. + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static - * @param {google.analytics.data.v1alpha.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpression} message FilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResponseMetaData.encodeDelimited = function encodeDelimited(message, writer) { + FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Decodes a FilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decode = function decode(reader, length) { + FilterExpression.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); + break; + case 2: + message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.decode(reader, reader.uint32()); + break; case 3: - message.dataLossFromOtherRow = reader.bool(); + message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32()); + break; + case 4: + message.filter = $root.google.analytics.data.v1alpha.Filter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -10842,107 +11121,178 @@ }; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decodeDelimited = function decodeDelimited(reader) { + FilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ResponseMetaData message. + * Verifies a FilterExpression message. * @function verify - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResponseMetaData.verify = function verify(message) { + FilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - if (typeof message.dataLossFromOtherRow !== "boolean") - return "dataLossFromOtherRow: boolean expected"; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.filter != null && message.hasOwnProperty("filter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.Filter.verify(message.filter); + if (error) + return "filter." + error; + } + } return null; }; /** - * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1alpha.FilterExpression} FilterExpression */ - ResponseMetaData.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.ResponseMetaData) + FilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FilterExpression) return object; - var message = new $root.google.analytics.data.v1alpha.ResponseMetaData(); - if (object.dataLossFromOtherRow != null) - message.dataLossFromOtherRow = Boolean(object.dataLossFromOtherRow); + var message = new $root.google.analytics.data.v1alpha.FilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.notExpression); + } + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpression.filter: object expected"); + message.filter = $root.google.analytics.data.v1alpha.Filter.fromObject(object.filter); + } return message; }; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @static - * @param {google.analytics.data.v1alpha.ResponseMetaData} message ResponseMetaData + * @param {google.analytics.data.v1alpha.FilterExpression} message FilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResponseMetaData.toObject = function toObject(message, options) { + FilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.dataLossFromOtherRow = false; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - object.dataLossFromOtherRow = message.dataLossFromOtherRow; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.filter != null && message.hasOwnProperty("filter")) { + object.filter = $root.google.analytics.data.v1alpha.Filter.toObject(message.filter, options); + if (options.oneofs) + object.expr = "filter"; + } return object; }; /** - * Converts this ResponseMetaData to JSON. + * Converts this FilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.ResponseMetaData + * @memberof google.analytics.data.v1alpha.FilterExpression * @instance * @returns {Object.} JSON object */ - ResponseMetaData.prototype.toJSON = function toJSON() { + FilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ResponseMetaData; + return FilterExpression; })(); - v1alpha.DimensionHeader = (function() { + v1alpha.FilterExpressionList = (function() { /** - * Properties of a DimensionHeader. + * Properties of a FilterExpressionList. * @memberof google.analytics.data.v1alpha - * @interface IDimensionHeader - * @property {string|null} [name] DimensionHeader name + * @interface IFilterExpressionList + * @property {Array.|null} [expressions] FilterExpressionList expressions */ /** - * Constructs a new DimensionHeader. + * Constructs a new FilterExpressionList. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionHeader. - * @implements IDimensionHeader + * @classdesc Represents a FilterExpressionList. + * @implements IFilterExpressionList * @constructor - * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set */ - function DimensionHeader(properties) { + function FilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -10950,75 +11300,78 @@ } /** - * DimensionHeader name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.DimensionHeader + * FilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @instance */ - DimensionHeader.prototype.name = ""; + FilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new DimensionHeader instance using the specified properties. + * Creates a new FilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader instance + * @param {google.analytics.data.v1alpha.IFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList instance */ - DimensionHeader.create = function create(properties) { - return new DimensionHeader(properties); + FilterExpressionList.create = function create(properties) { + return new FilterExpressionList(properties); }; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encode = function encode(message, writer) { + FilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilterExpressionList} message FilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a FilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decode = function decode(reader, length) { + FilterExpressionList.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FilterExpression.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -11029,108 +11382,128 @@ }; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decodeDelimited = function decodeDelimited(reader) { + FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionHeader message. + * Verifies a FilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionHeader.verify = function verify(message) { + FilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; + } + } return null; }; /** - * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1alpha.FilterExpressionList} FilterExpressionList */ - DimensionHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionHeader) + FilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FilterExpressionList) return object; - var message = new $root.google.analytics.data.v1alpha.DimensionHeader(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1alpha.FilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FilterExpression.fromObject(object.expressions[i]); + } + } return message; }; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @static - * @param {google.analytics.data.v1alpha.DimensionHeader} message DimensionHeader + * @param {google.analytics.data.v1alpha.FilterExpressionList} message FilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionHeader.toObject = function toObject(message, options) { + FilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FilterExpression.toObject(message.expressions[j], options); + } return object; }; /** - * Converts this DimensionHeader to JSON. + * Converts this FilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionHeader + * @memberof google.analytics.data.v1alpha.FilterExpressionList * @instance * @returns {Object.} JSON object */ - DimensionHeader.prototype.toJSON = function toJSON() { + FilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionHeader; + return FilterExpressionList; })(); - v1alpha.MetricHeader = (function() { + v1alpha.Filter = (function() { /** - * Properties of a MetricHeader. + * Properties of a Filter. * @memberof google.analytics.data.v1alpha - * @interface IMetricHeader - * @property {string|null} [name] MetricHeader name - * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricHeader type + * @interface IFilter + * @property {string|null} [fieldName] Filter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] Filter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] Filter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] Filter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] Filter betweenFilter */ /** - * Constructs a new MetricHeader. + * Constructs a new Filter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a MetricHeader. - * @implements IMetricHeader + * @classdesc Represents a Filter. + * @implements IFilter * @constructor - * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set */ - function MetricHeader(properties) { + function Filter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11138,88 +11511,141 @@ } /** - * MetricHeader name. - * @member {string} name - * @memberof google.analytics.data.v1alpha.MetricHeader + * Filter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.Filter * @instance */ - MetricHeader.prototype.name = ""; + Filter.prototype.fieldName = ""; /** - * MetricHeader type. - * @member {google.analytics.data.v1alpha.MetricType} type - * @memberof google.analytics.data.v1alpha.MetricHeader + * Filter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.Filter * @instance */ - MetricHeader.prototype.type = 0; + Filter.prototype.stringFilter = null; /** - * Creates a new MetricHeader instance using the specified properties. + * Filter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.inListFilter = null; + + /** + * Filter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.numericFilter = null; + + /** + * Filter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Filter.prototype.betweenFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Filter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.Filter + * @instance + */ + Object.defineProperty(Filter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Filter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader instance + * @param {google.analytics.data.v1alpha.IFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Filter} Filter instance */ - MetricHeader.create = function create(properties) { - return new MetricHeader(properties); + Filter.create = function create(properties) { + return new Filter(properties); }; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encode = function encode(message, writer) { + Filter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Filter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IFilter} message Filter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { + Filter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a Filter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.Filter} Filter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decode = function decode(reader, length) { + Filter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Filter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.fieldName = reader.string(); break; case 2: - message.type = reader.int32(); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + case 3: + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + case 4: + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + case 5: + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -11230,186 +11656,188 @@ }; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a Filter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.Filter} Filter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decodeDelimited = function decodeDelimited(reader) { + Filter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricHeader message. + * Verifies a Filter message. * @function verify - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricHeader.verify = function verify(message) { + Filter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 0: - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; } + } return null; }; /** - * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a Filter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1alpha.Filter} Filter */ - MetricHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.MetricHeader) + Filter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Filter) return object; - var message = new $root.google.analytics.data.v1alpha.MetricHeader(); - if (object.name != null) - message.name = String(object.name); - switch (object.type) { - case "METRIC_TYPE_UNSPECIFIED": - case 0: - message.type = 0; - break; - case "TYPE_INTEGER": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_SECONDS": - case 4: - message.type = 4; - break; - case "TYPE_MILLISECONDS": - case 5: - message.type = 5; - break; - case "TYPE_MINUTES": - case 6: - message.type = 6; - break; - case "TYPE_HOURS": - case 7: - message.type = 7; - break; - case "TYPE_STANDARD": - case 8: - message.type = 8; - break; - case "TYPE_CURRENCY": - case 9: - message.type = 9; - break; - case "TYPE_FEET": - case 10: - message.type = 10; - break; - case "TYPE_MILES": - case 11: - message.type = 11; - break; - case "TYPE_METERS": - case 12: - message.type = 12; - break; - case "TYPE_KILOMETERS": - case 13: - message.type = 13; - break; + var message = new $root.google.analytics.data.v1alpha.Filter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.Filter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); } return message; }; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * Creates a plain object from a Filter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @static - * @param {google.analytics.data.v1alpha.MetricHeader} message MetricHeader + * @param {google.analytics.data.v1alpha.Filter} message Filter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricHeader.toObject = function toObject(message, options) { + Filter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.name = ""; - object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + if (options.defaults) + object.fieldName = ""; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; return object; }; /** - * Converts this MetricHeader to JSON. + * Converts this Filter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.MetricHeader + * @memberof google.analytics.data.v1alpha.Filter * @instance * @returns {Object.} JSON object */ - MetricHeader.prototype.toJSON = function toJSON() { + Filter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MetricHeader; + return Filter; })(); - v1alpha.PivotHeader = (function() { + v1alpha.StringFilter = (function() { /** - * Properties of a PivotHeader. + * Properties of a StringFilter. * @memberof google.analytics.data.v1alpha - * @interface IPivotHeader - * @property {Array.|null} [pivotDimensionHeaders] PivotHeader pivotDimensionHeaders - * @property {number|null} [rowCount] PivotHeader rowCount + * @interface IStringFilter + * @property {google.analytics.data.v1alpha.StringFilter.MatchType|null} [matchType] StringFilter matchType + * @property {string|null} [value] StringFilter value + * @property {boolean|null} [caseSensitive] StringFilter caseSensitive */ /** - * Constructs a new PivotHeader. + * Constructs a new StringFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a PivotHeader. - * @implements IPivotHeader + * @classdesc Represents a StringFilter. + * @implements IStringFilter * @constructor - * @param {google.analytics.data.v1alpha.IPivotHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set */ - function PivotHeader(properties) { - this.pivotDimensionHeaders = []; + function StringFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11417,91 +11845,101 @@ } /** - * PivotHeader pivotDimensionHeaders. - * @member {Array.} pivotDimensionHeaders - * @memberof google.analytics.data.v1alpha.PivotHeader + * StringFilter matchType. + * @member {google.analytics.data.v1alpha.StringFilter.MatchType} matchType + * @memberof google.analytics.data.v1alpha.StringFilter * @instance */ - PivotHeader.prototype.pivotDimensionHeaders = $util.emptyArray; + StringFilter.prototype.matchType = 0; /** - * PivotHeader rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1alpha.PivotHeader + * StringFilter value. + * @member {string} value + * @memberof google.analytics.data.v1alpha.StringFilter * @instance */ - PivotHeader.prototype.rowCount = 0; + StringFilter.prototype.value = ""; /** - * Creates a new PivotHeader instance using the specified properties. + * StringFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1alpha.StringFilter + * @instance + */ + StringFilter.prototype.caseSensitive = false; + + /** + * Creates a new StringFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.IPivotHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.PivotHeader} PivotHeader instance + * @param {google.analytics.data.v1alpha.IStringFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter instance */ - PivotHeader.create = function create(properties) { - return new PivotHeader(properties); + StringFilter.create = function create(properties) { + return new StringFilter(properties); }; /** - * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1alpha.PivotHeader.verify|verify} messages. + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.IPivotHeader} message PivotHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotHeader.encode = function encode(message, writer) { + StringFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.pivotDimensionHeaders != null && message.pivotDimensionHeaders.length) - for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) - $root.google.analytics.data.v1alpha.PivotDimensionHeader.encode(message.pivotDimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.rowCount); + if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); return writer; }; /** - * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PivotHeader.verify|verify} messages. + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.StringFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.IPivotHeader} message PivotHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IStringFilter} message StringFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotHeader.encodeDelimited = function encodeDelimited(message, writer) { + StringFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PivotHeader message from the specified reader or buffer. + * Decodes a StringFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.PivotHeader} PivotHeader + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotHeader.decode = function decode(reader, length) { + StringFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PivotHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.StringFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.pivotDimensionHeaders && message.pivotDimensionHeaders.length)) - message.pivotDimensionHeaders = []; - message.pivotDimensionHeaders.push($root.google.analytics.data.v1alpha.PivotDimensionHeader.decode(reader, reader.uint32())); + message.matchType = reader.int32(); break; case 2: - message.rowCount = reader.int32(); + message.value = reader.string(); + break; + case 3: + message.caseSensitive = reader.bool(); break; default: reader.skipType(tag & 7); @@ -11512,134 +11950,188 @@ }; /** - * Decodes a PivotHeader message from the specified reader or buffer, length delimited. + * Decodes a StringFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.PivotHeader} PivotHeader + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotHeader.decodeDelimited = function decodeDelimited(reader) { + StringFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PivotHeader message. + * Verifies a StringFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PivotHeader.verify = function verify(message) { + StringFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.pivotDimensionHeaders != null && message.hasOwnProperty("pivotDimensionHeaders")) { - if (!Array.isArray(message.pivotDimensionHeaders)) - return "pivotDimensionHeaders: array expected"; - for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1alpha.PivotDimensionHeader.verify(message.pivotDimensionHeaders[i]); - if (error) - return "pivotDimensionHeaders." + error; + if (message.matchType != null && message.hasOwnProperty("matchType")) + switch (message.matchType) { + default: + return "matchType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; } - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isString(message.value)) + return "value: string expected"; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; return null; }; /** - * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. + * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.PivotHeader} PivotHeader + * @returns {google.analytics.data.v1alpha.StringFilter} StringFilter */ - PivotHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.PivotHeader) + StringFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.StringFilter) return object; - var message = new $root.google.analytics.data.v1alpha.PivotHeader(); - if (object.pivotDimensionHeaders) { - if (!Array.isArray(object.pivotDimensionHeaders)) - throw TypeError(".google.analytics.data.v1alpha.PivotHeader.pivotDimensionHeaders: array expected"); - message.pivotDimensionHeaders = []; - for (var i = 0; i < object.pivotDimensionHeaders.length; ++i) { - if (typeof object.pivotDimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.PivotHeader.pivotDimensionHeaders: object expected"); - message.pivotDimensionHeaders[i] = $root.google.analytics.data.v1alpha.PivotDimensionHeader.fromObject(object.pivotDimensionHeaders[i]); - } + var message = new $root.google.analytics.data.v1alpha.StringFilter(); + switch (object.matchType) { + case "MATCH_TYPE_UNSPECIFIED": + case 0: + message.matchType = 0; + break; + case "EXACT": + case 1: + message.matchType = 1; + break; + case "BEGINS_WITH": + case 2: + message.matchType = 2; + break; + case "ENDS_WITH": + case 3: + message.matchType = 3; + break; + case "CONTAINS": + case 4: + message.matchType = 4; + break; + case "FULL_REGEXP": + case 5: + message.matchType = 5; + break; + case "PARTIAL_REGEXP": + case 6: + message.matchType = 6; + break; } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; + if (object.value != null) + message.value = String(object.value); + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); return message; }; /** - * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @static - * @param {google.analytics.data.v1alpha.PivotHeader} message PivotHeader + * @param {google.analytics.data.v1alpha.StringFilter} message StringFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PivotHeader.toObject = function toObject(message, options) { + StringFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.pivotDimensionHeaders = []; - if (options.defaults) - object.rowCount = 0; - if (message.pivotDimensionHeaders && message.pivotDimensionHeaders.length) { - object.pivotDimensionHeaders = []; - for (var j = 0; j < message.pivotDimensionHeaders.length; ++j) - object.pivotDimensionHeaders[j] = $root.google.analytics.data.v1alpha.PivotDimensionHeader.toObject(message.pivotDimensionHeaders[j], options); + if (options.defaults) { + object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; + object.value = ""; + object.caseSensitive = false; } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; + if (message.matchType != null && message.hasOwnProperty("matchType")) + object.matchType = options.enums === String ? $root.google.analytics.data.v1alpha.StringFilter.MatchType[message.matchType] : message.matchType; + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; return object; }; /** - * Converts this PivotHeader to JSON. + * Converts this StringFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.PivotHeader + * @memberof google.analytics.data.v1alpha.StringFilter * @instance * @returns {Object.} JSON object */ - PivotHeader.prototype.toJSON = function toJSON() { + StringFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return PivotHeader; + /** + * MatchType enum. + * @name google.analytics.data.v1alpha.StringFilter.MatchType + * @enum {number} + * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value + * @property {number} EXACT=1 EXACT value + * @property {number} BEGINS_WITH=2 BEGINS_WITH value + * @property {number} ENDS_WITH=3 ENDS_WITH value + * @property {number} CONTAINS=4 CONTAINS value + * @property {number} FULL_REGEXP=5 FULL_REGEXP value + * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value + */ + StringFilter.MatchType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "EXACT"] = 1; + values[valuesById[2] = "BEGINS_WITH"] = 2; + values[valuesById[3] = "ENDS_WITH"] = 3; + values[valuesById[4] = "CONTAINS"] = 4; + values[valuesById[5] = "FULL_REGEXP"] = 5; + values[valuesById[6] = "PARTIAL_REGEXP"] = 6; + return values; + })(); + + return StringFilter; })(); - v1alpha.PivotDimensionHeader = (function() { + v1alpha.InListFilter = (function() { /** - * Properties of a PivotDimensionHeader. + * Properties of an InListFilter. * @memberof google.analytics.data.v1alpha - * @interface IPivotDimensionHeader - * @property {Array.|null} [dimensionValues] PivotDimensionHeader dimensionValues + * @interface IInListFilter + * @property {Array.|null} [values] InListFilter values + * @property {boolean|null} [caseSensitive] InListFilter caseSensitive */ /** - * Constructs a new PivotDimensionHeader. + * Constructs a new InListFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a PivotDimensionHeader. - * @implements IPivotDimensionHeader + * @classdesc Represents an InListFilter. + * @implements IInListFilter * @constructor - * @param {google.analytics.data.v1alpha.IPivotDimensionHeader=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set */ - function PivotDimensionHeader(properties) { - this.dimensionValues = []; + function InListFilter(properties) { + this.values = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11647,78 +12139,91 @@ } /** - * PivotDimensionHeader dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * InListFilter values. + * @member {Array.} values + * @memberof google.analytics.data.v1alpha.InListFilter * @instance */ - PivotDimensionHeader.prototype.dimensionValues = $util.emptyArray; + InListFilter.prototype.values = $util.emptyArray; /** - * Creates a new PivotDimensionHeader instance using the specified properties. + * InListFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1alpha.InListFilter + * @instance + */ + InListFilter.prototype.caseSensitive = false; + + /** + * Creates a new InListFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.IPivotDimensionHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.PivotDimensionHeader} PivotDimensionHeader instance + * @param {google.analytics.data.v1alpha.IInListFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter instance */ - PivotDimensionHeader.create = function create(properties) { - return new PivotDimensionHeader(properties); + InListFilter.create = function create(properties) { + return new InListFilter(properties); }; /** - * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.PivotDimensionHeader.verify|verify} messages. + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotDimensionHeader.encode = function encode(message, writer) { + InListFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1alpha.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.values != null && message.values.length) + for (var i = 0; i < message.values.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); return writer; }; /** - * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PivotDimensionHeader.verify|verify} messages. + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.InListFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {google.analytics.data.v1alpha.IInListFilter} message InListFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotDimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + InListFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * Decodes an InListFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotDimensionHeader.decode = function decode(reader, length) { + InListFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PivotDimensionHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.InListFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1alpha.DimensionValue.decode(reader, reader.uint32())); + if (!(message.values && message.values.length)) + message.values = []; + message.values.push(reader.string()); + break; + case 2: + message.caseSensitive = reader.bool(); break; default: reader.skipType(tag & 7); @@ -11729,127 +12234,129 @@ }; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * Decodes an InListFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotDimensionHeader.decodeDelimited = function decodeDelimited(reader) { + InListFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PivotDimensionHeader message. + * Verifies an InListFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PivotDimensionHeader.verify = function verify(message) { + InListFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionValue.verify(message.dimensionValues[i]); - if (error) - return "dimensionValues." + error; - } - } + if (message.values != null && message.hasOwnProperty("values")) { + if (!Array.isArray(message.values)) + return "values: array expected"; + for (var i = 0; i < message.values.length; ++i) + if (!$util.isString(message.values[i])) + return "values: string[] expected"; + } + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; return null; }; /** - * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1alpha.InListFilter} InListFilter */ - PivotDimensionHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.PivotDimensionHeader) + InListFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.InListFilter) return object; - var message = new $root.google.analytics.data.v1alpha.PivotDimensionHeader(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1alpha.PivotDimensionHeader.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.PivotDimensionHeader.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1alpha.DimensionValue.fromObject(object.dimensionValues[i]); - } - } + var message = new $root.google.analytics.data.v1alpha.InListFilter(); + if (object.values) { + if (!Array.isArray(object.values)) + throw TypeError(".google.analytics.data.v1alpha.InListFilter.values: array expected"); + message.values = []; + for (var i = 0; i < object.values.length; ++i) + message.values[i] = String(object.values[i]); + } + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); return message; }; /** - * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @static - * @param {google.analytics.data.v1alpha.PivotDimensionHeader} message PivotDimensionHeader + * @param {google.analytics.data.v1alpha.InListFilter} message InListFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PivotDimensionHeader.toObject = function toObject(message, options) { + InListFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.dimensionValues = []; - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1alpha.DimensionValue.toObject(message.dimensionValues[j], options); - } + object.values = []; + if (options.defaults) + object.caseSensitive = false; + if (message.values && message.values.length) { + object.values = []; + for (var j = 0; j < message.values.length; ++j) + object.values[j] = message.values[j]; + } + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; return object; }; /** - * Converts this PivotDimensionHeader to JSON. + * Converts this InListFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.PivotDimensionHeader + * @memberof google.analytics.data.v1alpha.InListFilter * @instance * @returns {Object.} JSON object */ - PivotDimensionHeader.prototype.toJSON = function toJSON() { + InListFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return PivotDimensionHeader; + return InListFilter; })(); - v1alpha.Row = (function() { + v1alpha.NumericFilter = (function() { /** - * Properties of a Row. + * Properties of a NumericFilter. * @memberof google.analytics.data.v1alpha - * @interface IRow - * @property {Array.|null} [dimensionValues] Row dimensionValues - * @property {Array.|null} [metricValues] Row metricValues + * @interface INumericFilter + * @property {google.analytics.data.v1alpha.NumericFilter.Operation|null} [operation] NumericFilter operation + * @property {google.analytics.data.v1alpha.INumericValue|null} [value] NumericFilter value */ /** - * Constructs a new Row. + * Constructs a new NumericFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a Row. - * @implements IRow + * @classdesc Represents a NumericFilter. + * @implements INumericFilter * @constructor - * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set */ - function Row(properties) { - this.dimensionValues = []; - this.metricValues = []; + function NumericFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11857,94 +12364,88 @@ } /** - * Row dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1alpha.Row + * NumericFilter operation. + * @member {google.analytics.data.v1alpha.NumericFilter.Operation} operation + * @memberof google.analytics.data.v1alpha.NumericFilter * @instance */ - Row.prototype.dimensionValues = $util.emptyArray; + NumericFilter.prototype.operation = 0; /** - * Row metricValues. - * @member {Array.} metricValues - * @memberof google.analytics.data.v1alpha.Row + * NumericFilter value. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} value + * @memberof google.analytics.data.v1alpha.NumericFilter * @instance */ - Row.prototype.metricValues = $util.emptyArray; + NumericFilter.prototype.value = null; /** - * Creates a new Row instance using the specified properties. + * Creates a new NumericFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.Row} Row instance + * @param {google.analytics.data.v1alpha.INumericFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter instance */ - Row.create = function create(properties) { - return new Row(properties); + NumericFilter.create = function create(properties) { + return new NumericFilter(properties); }; /** - * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + NumericFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1alpha.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricValues != null && message.metricValues.length) - for (var i = 0; i < message.metricValues.length; ++i) - $root.google.analytics.data.v1alpha.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.NumericFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1alpha.INumericFilter} message NumericFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encodeDelimited = function encodeDelimited(message, writer) { + NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a NumericFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decode = function decode(reader, length) { + NumericFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Row(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.NumericFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1alpha.DimensionValue.decode(reader, reader.uint32())); + message.operation = reader.int32(); break; case 2: - if (!(message.metricValues && message.metricValues.length)) - message.metricValues = []; - message.metricValues.push($root.google.analytics.data.v1alpha.MetricValue.decode(reader, reader.uint32())); + message.value = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -11955,150 +12456,177 @@ }; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decodeDelimited = function decodeDelimited(reader) { + NumericFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Row message. + * Verifies a NumericFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Row.verify = function verify(message) { + NumericFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.DimensionValue.verify(message.dimensionValues[i]); - if (error) - return "dimensionValues." + error; - } - } - if (message.metricValues != null && message.hasOwnProperty("metricValues")) { - if (!Array.isArray(message.metricValues)) - return "metricValues: array expected"; - for (var i = 0; i < message.metricValues.length; ++i) { - var error = $root.google.analytics.data.v1alpha.MetricValue.verify(message.metricValues[i]); - if (error) - return "metricValues." + error; + if (message.operation != null && message.hasOwnProperty("operation")) + switch (message.operation) { + default: + return "operation: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + break; } + if (message.value != null && message.hasOwnProperty("value")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.value); + if (error) + return "value." + error; } return null; }; /** - * Creates a Row message from a plain object. Also converts values to their respective internal types. + * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.Row} Row + * @returns {google.analytics.data.v1alpha.NumericFilter} NumericFilter */ - Row.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.Row) + NumericFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.NumericFilter) return object; - var message = new $root.google.analytics.data.v1alpha.Row(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1alpha.DimensionValue.fromObject(object.dimensionValues[i]); - } + var message = new $root.google.analytics.data.v1alpha.NumericFilter(); + switch (object.operation) { + case "OPERATION_UNSPECIFIED": + case 0: + message.operation = 0; + break; + case "EQUAL": + case 1: + message.operation = 1; + break; + case "LESS_THAN": + case 2: + message.operation = 2; + break; + case "LESS_THAN_OR_EQUAL": + case 3: + message.operation = 3; + break; + case "GREATER_THAN": + case 4: + message.operation = 4; + break; + case "GREATER_THAN_OR_EQUAL": + case 5: + message.operation = 5; + break; } - if (object.metricValues) { - if (!Array.isArray(object.metricValues)) - throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: array expected"); - message.metricValues = []; - for (var i = 0; i < object.metricValues.length; ++i) { - if (typeof object.metricValues[i] !== "object") - throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: object expected"); - message.metricValues[i] = $root.google.analytics.data.v1alpha.MetricValue.fromObject(object.metricValues[i]); - } + if (object.value != null) { + if (typeof object.value !== "object") + throw TypeError(".google.analytics.data.v1alpha.NumericFilter.value: object expected"); + message.value = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.value); } return message; }; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @static - * @param {google.analytics.data.v1alpha.Row} message Row + * @param {google.analytics.data.v1alpha.NumericFilter} message NumericFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + NumericFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensionValues = []; - object.metricValues = []; - } - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1alpha.DimensionValue.toObject(message.dimensionValues[j], options); - } - if (message.metricValues && message.metricValues.length) { - object.metricValues = []; - for (var j = 0; j < message.metricValues.length; ++j) - object.metricValues[j] = $root.google.analytics.data.v1alpha.MetricValue.toObject(message.metricValues[j], options); + if (options.defaults) { + object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; + object.value = null; } + if (message.operation != null && message.hasOwnProperty("operation")) + object.operation = options.enums === String ? $root.google.analytics.data.v1alpha.NumericFilter.Operation[message.operation] : message.operation; + if (message.value != null && message.hasOwnProperty("value")) + object.value = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.value, options); return object; }; /** - * Converts this Row to JSON. + * Converts this NumericFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.Row + * @memberof google.analytics.data.v1alpha.NumericFilter * @instance * @returns {Object.} JSON object */ - Row.prototype.toJSON = function toJSON() { + NumericFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Row; + /** + * Operation enum. + * @name google.analytics.data.v1alpha.NumericFilter.Operation + * @enum {number} + * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value + * @property {number} EQUAL=1 EQUAL value + * @property {number} LESS_THAN=2 LESS_THAN value + * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value + * @property {number} GREATER_THAN=4 GREATER_THAN value + * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value + */ + NumericFilter.Operation = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "EQUAL"] = 1; + values[valuesById[2] = "LESS_THAN"] = 2; + values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; + values[valuesById[4] = "GREATER_THAN"] = 4; + values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; + return values; + })(); + + return NumericFilter; })(); - v1alpha.DimensionValue = (function() { + v1alpha.BetweenFilter = (function() { /** - * Properties of a DimensionValue. + * Properties of a BetweenFilter. * @memberof google.analytics.data.v1alpha - * @interface IDimensionValue - * @property {string|null} [value] DimensionValue value + * @interface IBetweenFilter + * @property {google.analytics.data.v1alpha.INumericValue|null} [fromValue] BetweenFilter fromValue + * @property {google.analytics.data.v1alpha.INumericValue|null} [toValue] BetweenFilter toValue */ /** - * Constructs a new DimensionValue. + * Constructs a new BetweenFilter. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionValue. - * @implements IDimensionValue + * @classdesc Represents a BetweenFilter. + * @implements IBetweenFilter * @constructor - * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set */ - function DimensionValue(properties) { + function BetweenFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -12106,89 +12634,88 @@ } /** - * DimensionValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1alpha.DimensionValue + * BetweenFilter fromValue. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} fromValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @instance */ - DimensionValue.prototype.value = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + BetweenFilter.prototype.fromValue = null; /** - * DimensionValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.DimensionValue + * BetweenFilter toValue. + * @member {google.analytics.data.v1alpha.INumericValue|null|undefined} toValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @instance */ - Object.defineProperty(DimensionValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); + BetweenFilter.prototype.toValue = null; /** - * Creates a new DimensionValue instance using the specified properties. + * Creates a new BetweenFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static - * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue instance + * @param {google.analytics.data.v1alpha.IBetweenFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter instance */ - DimensionValue.create = function create(properties) { - return new DimensionValue(properties); + BetweenFilter.create = function create(properties) { + return new BetweenFilter(properties); }; /** - * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static - * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encode = function encode(message, writer) { + BetweenFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) + $root.google.analytics.data.v1alpha.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.BetweenFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static - * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1alpha.IBetweenFilter} message BetweenFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { + BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionValue message from the specified reader or buffer. + * Decodes a BetweenFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decode = function decode(reader, length) { + BetweenFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.BetweenFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.value = reader.string(); + message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); + break; + case 2: + message.toValue = $root.google.analytics.data.v1alpha.NumericValue.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -12199,111 +12726,127 @@ }; /** - * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decodeDelimited = function decodeDelimited(reader) { + BetweenFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionValue message. + * Verifies a BetweenFilter message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionValue.verify = function verify(message) { + BetweenFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.fromValue != null && message.hasOwnProperty("fromValue")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.fromValue); + if (error) + return "fromValue." + error; + } + if (message.toValue != null && message.hasOwnProperty("toValue")) { + var error = $root.google.analytics.data.v1alpha.NumericValue.verify(message.toValue); + if (error) + return "toValue." + error; } return null; }; /** - * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1alpha.BetweenFilter} BetweenFilter */ - DimensionValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionValue) + BetweenFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.BetweenFilter) return object; - var message = new $root.google.analytics.data.v1alpha.DimensionValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1alpha.BetweenFilter(); + if (object.fromValue != null) { + if (typeof object.fromValue !== "object") + throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.fromValue: object expected"); + message.fromValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.fromValue); + } + if (object.toValue != null) { + if (typeof object.toValue !== "object") + throw TypeError(".google.analytics.data.v1alpha.BetweenFilter.toValue: object expected"); + message.toValue = $root.google.analytics.data.v1alpha.NumericValue.fromObject(object.toValue); + } return message; }; /** - * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @static - * @param {google.analytics.data.v1alpha.DimensionValue} message DimensionValue + * @param {google.analytics.data.v1alpha.BetweenFilter} message BetweenFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionValue.toObject = function toObject(message, options) { + BetweenFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; + if (options.defaults) { + object.fromValue = null; + object.toValue = null; } + if (message.fromValue != null && message.hasOwnProperty("fromValue")) + object.fromValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.fromValue, options); + if (message.toValue != null && message.hasOwnProperty("toValue")) + object.toValue = $root.google.analytics.data.v1alpha.NumericValue.toObject(message.toValue, options); return object; }; /** - * Converts this DimensionValue to JSON. + * Converts this BetweenFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionValue + * @memberof google.analytics.data.v1alpha.BetweenFilter * @instance * @returns {Object.} JSON object */ - DimensionValue.prototype.toJSON = function toJSON() { + BetweenFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionValue; + return BetweenFilter; })(); - v1alpha.MetricValue = (function() { + v1alpha.NumericValue = (function() { /** - * Properties of a MetricValue. + * Properties of a NumericValue. * @memberof google.analytics.data.v1alpha - * @interface IMetricValue - * @property {string|null} [value] MetricValue value + * @interface INumericValue + * @property {number|Long|null} [int64Value] NumericValue int64Value + * @property {number|null} [doubleValue] NumericValue doubleValue */ /** - * Constructs a new MetricValue. + * Constructs a new NumericValue. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a MetricValue. - * @implements IMetricValue + * @classdesc Represents a NumericValue. + * @implements INumericValue * @constructor - * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set */ - function MetricValue(properties) { + function NumericValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -12311,215 +12854,9 @@ } /** - * MetricValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1alpha.MetricValue - * @instance - */ - MetricValue.prototype.value = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * MetricValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1alpha.MetricValue - * @instance - */ - Object.defineProperty(MetricValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new MetricValue instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue instance - */ - MetricValue.create = function create(properties) { - return new MetricValue(properties); - }; - - /** - * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricValue.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); - return writer; - }; - - /** - * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricValue.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a MetricValue message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricValue.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricValue(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 4: - message.value = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a MetricValue message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricValue.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a MetricValue message. - * @function verify - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MetricValue.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; - } - return null; - }; - - /** - * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue - */ - MetricValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.MetricValue) - return object; - var message = new $root.google.analytics.data.v1alpha.MetricValue(); - if (object.value != null) - message.value = String(object.value); - return message; - }; - - /** - * Creates a plain object from a MetricValue message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1alpha.MetricValue - * @static - * @param {google.analytics.data.v1alpha.MetricValue} message MetricValue - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MetricValue.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; - } - return object; - }; - - /** - * Converts this MetricValue to JSON. - * @function toJSON - * @memberof google.analytics.data.v1alpha.MetricValue - * @instance - * @returns {Object.} JSON object - */ - MetricValue.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return MetricValue; - })(); - - v1alpha.NumericValue = (function() { - - /** - * Properties of a NumericValue. - * @memberof google.analytics.data.v1alpha - * @interface INumericValue - * @property {number|Long|null} [int64Value] NumericValue int64Value - * @property {number|null} [doubleValue] NumericValue doubleValue - */ - - /** - * Constructs a new NumericValue. - * @memberof google.analytics.data.v1alpha - * @classdesc Represents a NumericValue. - * @implements INumericValue - * @constructor - * @param {google.analytics.data.v1alpha.INumericValue=} [properties] Properties to set - */ - function NumericValue(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * NumericValue int64Value. - * @member {number|Long|null|undefined} int64Value - * @memberof google.analytics.data.v1alpha.NumericValue + * NumericValue int64Value. + * @member {number|Long|null|undefined} int64Value + * @memberof google.analytics.data.v1alpha.NumericValue * @instance */ NumericValue.prototype.int64Value = null; @@ -12734,27 +13071,24 @@ return NumericValue; })(); - v1alpha.PropertyQuota = (function() { + v1alpha.DimensionHeader = (function() { /** - * Properties of a PropertyQuota. + * Properties of a DimensionHeader. * @memberof google.analytics.data.v1alpha - * @interface IPropertyQuota - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests - * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour + * @interface IDimensionHeader + * @property {string|null} [name] DimensionHeader name */ /** - * Constructs a new PropertyQuota. + * Constructs a new DimensionHeader. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a PropertyQuota. - * @implements IPropertyQuota + * @classdesc Represents a DimensionHeader. + * @implements IDimensionHeader * @constructor - * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set */ - function PropertyQuota(properties) { + function DimensionHeader(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -12762,114 +13096,75 @@ } /** - * PropertyQuota tokensPerDay. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerDay - * @memberof google.analytics.data.v1alpha.PropertyQuota - * @instance - */ - PropertyQuota.prototype.tokensPerDay = null; - - /** - * PropertyQuota tokensPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota - * @instance - */ - PropertyQuota.prototype.tokensPerHour = null; - - /** - * PropertyQuota concurrentRequests. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} concurrentRequests - * @memberof google.analytics.data.v1alpha.PropertyQuota - * @instance - */ - PropertyQuota.prototype.concurrentRequests = null; - - /** - * PropertyQuota serverErrorsPerProjectPerHour. - * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour - * @memberof google.analytics.data.v1alpha.PropertyQuota + * DimensionHeader name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.DimensionHeader * @instance */ - PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; + DimensionHeader.prototype.name = ""; /** - * Creates a new PropertyQuota instance using the specified properties. + * Creates a new DimensionHeader instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota instance + * @param {google.analytics.data.v1alpha.IDimensionHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader instance */ - PropertyQuota.create = function create(properties) { - return new PropertyQuota(properties); + DimensionHeader.create = function create(properties) { + return new DimensionHeader(properties); }; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encode = function encode(message, writer) { + DimensionHeader.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) - $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; }; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionHeader.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionHeader} message DimensionHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { + DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a DimensionHeader message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decode = function decode(reader, length) { + DimensionHeader.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PropertyQuota(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionHeader(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); - break; - case 2: - message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); - break; - case 3: - message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); - break; - case 4: - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); + message.name = reader.string(); break; default: reader.skipType(tag & 7); @@ -12880,153 +13175,108 @@ }; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decodeDelimited = function decodeDelimited(reader) { + DimensionHeader.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PropertyQuota message. + * Verifies a DimensionHeader message. * @function verify - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PropertyQuota.verify = function verify(message) { + DimensionHeader.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerDay); - if (error) - return "tokensPerDay." + error; - } - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerHour); - if (error) - return "tokensPerHour." + error; - } - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.concurrentRequests); - if (error) - return "concurrentRequests." + error; - } - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { - var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); - if (error) - return "serverErrorsPerProjectPerHour." + error; - } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; return null; }; /** - * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1alpha.DimensionHeader} DimensionHeader */ - PropertyQuota.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.PropertyQuota) + DimensionHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionHeader) return object; - var message = new $root.google.analytics.data.v1alpha.PropertyQuota(); - if (object.tokensPerDay != null) { - if (typeof object.tokensPerDay !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerDay: object expected"); - message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerDay); - } - if (object.tokensPerHour != null) { - if (typeof object.tokensPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerHour: object expected"); - message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerHour); - } - if (object.concurrentRequests != null) { - if (typeof object.concurrentRequests !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.concurrentRequests: object expected"); - message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.concurrentRequests); - } - if (object.serverErrorsPerProjectPerHour != null) { - if (typeof object.serverErrorsPerProjectPerHour !== "object") - throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); - } + var message = new $root.google.analytics.data.v1alpha.DimensionHeader(); + if (object.name != null) + message.name = String(object.name); return message; }; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @static - * @param {google.analytics.data.v1alpha.PropertyQuota} message PropertyQuota + * @param {google.analytics.data.v1alpha.DimensionHeader} message DimensionHeader * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PropertyQuota.toObject = function toObject(message, options) { + DimensionHeader.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.tokensPerDay = null; - object.tokensPerHour = null; - object.concurrentRequests = null; - object.serverErrorsPerProjectPerHour = null; - } - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) - object.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerDay, options); - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) - object.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerHour, options); - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) - object.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.concurrentRequests, options); - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) - object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; return object; }; /** - * Converts this PropertyQuota to JSON. + * Converts this DimensionHeader to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.PropertyQuota + * @memberof google.analytics.data.v1alpha.DimensionHeader * @instance * @returns {Object.} JSON object */ - PropertyQuota.prototype.toJSON = function toJSON() { + DimensionHeader.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return PropertyQuota; + return DimensionHeader; })(); - v1alpha.QuotaStatus = (function() { + v1alpha.MetricHeader = (function() { /** - * Properties of a QuotaStatus. + * Properties of a MetricHeader. * @memberof google.analytics.data.v1alpha - * @interface IQuotaStatus - * @property {number|null} [consumed] QuotaStatus consumed - * @property {number|null} [remaining] QuotaStatus remaining + * @interface IMetricHeader + * @property {string|null} [name] MetricHeader name + * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricHeader type */ /** - * Constructs a new QuotaStatus. + * Constructs a new MetricHeader. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a QuotaStatus. - * @implements IQuotaStatus + * @classdesc Represents a MetricHeader. + * @implements IMetricHeader * @constructor - * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set */ - function QuotaStatus(properties) { + function MetricHeader(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13034,88 +13284,88 @@ } /** - * QuotaStatus consumed. - * @member {number} consumed - * @memberof google.analytics.data.v1alpha.QuotaStatus + * MetricHeader name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.MetricHeader * @instance */ - QuotaStatus.prototype.consumed = 0; + MetricHeader.prototype.name = ""; /** - * QuotaStatus remaining. - * @member {number} remaining - * @memberof google.analytics.data.v1alpha.QuotaStatus + * MetricHeader type. + * @member {google.analytics.data.v1alpha.MetricType} type + * @memberof google.analytics.data.v1alpha.MetricHeader * @instance */ - QuotaStatus.prototype.remaining = 0; + MetricHeader.prototype.type = 0; /** - * Creates a new QuotaStatus instance using the specified properties. + * Creates a new MetricHeader instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus instance + * @param {google.analytics.data.v1alpha.IMetricHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader instance */ - QuotaStatus.create = function create(properties) { - return new QuotaStatus(properties); + MetricHeader.create = function create(properties) { + return new MetricHeader(properties); }; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encode = function encode(message, writer) { + MetricHeader.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); - if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); return writer; }; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricHeader.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1alpha.IMetricHeader} message MetricHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { + MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a MetricHeader message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decode = function decode(reader, length) { + MetricHeader.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.QuotaStatus(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricHeader(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.consumed = reader.int32(); + message.name = reader.string(); break; case 2: - message.remaining = reader.int32(); + message.type = reader.int32(); break; default: reader.skipType(tag & 7); @@ -13126,121 +13376,187 @@ }; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decodeDelimited = function decodeDelimited(reader) { + MetricHeader.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a QuotaStatus message. + * Verifies a MetricHeader message. * @function verify - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - QuotaStatus.verify = function verify(message) { + MetricHeader.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.consumed != null && message.hasOwnProperty("consumed")) - if (!$util.isInteger(message.consumed)) - return "consumed: integer expected"; - if (message.remaining != null && message.hasOwnProperty("remaining")) - if (!$util.isInteger(message.remaining)) - return "remaining: integer expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + break; + } return null; }; /** - * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1alpha.MetricHeader} MetricHeader */ - QuotaStatus.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.QuotaStatus) + MetricHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.MetricHeader) return object; - var message = new $root.google.analytics.data.v1alpha.QuotaStatus(); - if (object.consumed != null) - message.consumed = object.consumed | 0; - if (object.remaining != null) - message.remaining = object.remaining | 0; + var message = new $root.google.analytics.data.v1alpha.MetricHeader(); + if (object.name != null) + message.name = String(object.name); + switch (object.type) { + case "METRIC_TYPE_UNSPECIFIED": + case 0: + message.type = 0; + break; + case "TYPE_INTEGER": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_SECONDS": + case 4: + message.type = 4; + break; + case "TYPE_MILLISECONDS": + case 5: + message.type = 5; + break; + case "TYPE_MINUTES": + case 6: + message.type = 6; + break; + case "TYPE_HOURS": + case 7: + message.type = 7; + break; + case "TYPE_STANDARD": + case 8: + message.type = 8; + break; + case "TYPE_CURRENCY": + case 9: + message.type = 9; + break; + case "TYPE_FEET": + case 10: + message.type = 10; + break; + case "TYPE_MILES": + case 11: + message.type = 11; + break; + case "TYPE_METERS": + case 12: + message.type = 12; + break; + case "TYPE_KILOMETERS": + case 13: + message.type = 13; + break; + } return message; }; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @static - * @param {google.analytics.data.v1alpha.QuotaStatus} message QuotaStatus + * @param {google.analytics.data.v1alpha.MetricHeader} message MetricHeader * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - QuotaStatus.toObject = function toObject(message, options) { + MetricHeader.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.consumed = 0; - object.remaining = 0; + object.name = ""; + object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; } - if (message.consumed != null && message.hasOwnProperty("consumed")) - object.consumed = message.consumed; - if (message.remaining != null && message.hasOwnProperty("remaining")) - object.remaining = message.remaining; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; return object; }; /** - * Converts this QuotaStatus to JSON. + * Converts this MetricHeader to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.QuotaStatus + * @memberof google.analytics.data.v1alpha.MetricHeader * @instance * @returns {Object.} JSON object */ - QuotaStatus.prototype.toJSON = function toJSON() { + MetricHeader.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return QuotaStatus; + return MetricHeader; })(); - v1alpha.DimensionMetadata = (function() { + v1alpha.Row = (function() { /** - * Properties of a DimensionMetadata. + * Properties of a Row. * @memberof google.analytics.data.v1alpha - * @interface IDimensionMetadata - * @property {string|null} [apiName] DimensionMetadata apiName - * @property {string|null} [uiName] DimensionMetadata uiName - * @property {string|null} [description] DimensionMetadata description - * @property {Array.|null} [deprecatedApiNames] DimensionMetadata deprecatedApiNames - * @property {boolean|null} [customDefinition] DimensionMetadata customDefinition + * @interface IRow + * @property {Array.|null} [dimensionValues] Row dimensionValues + * @property {Array.|null} [metricValues] Row metricValues */ /** - * Constructs a new DimensionMetadata. + * Constructs a new Row. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a DimensionMetadata. - * @implements IDimensionMetadata + * @classdesc Represents a Row. + * @implements IRow * @constructor - * @param {google.analytics.data.v1alpha.IDimensionMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set */ - function DimensionMetadata(properties) { - this.deprecatedApiNames = []; + function Row(properties) { + this.dimensionValues = []; + this.metricValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13248,130 +13564,94 @@ } /** - * DimensionMetadata apiName. - * @member {string} apiName - * @memberof google.analytics.data.v1alpha.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.apiName = ""; - - /** - * DimensionMetadata uiName. - * @member {string} uiName - * @memberof google.analytics.data.v1alpha.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.uiName = ""; - - /** - * DimensionMetadata description. - * @member {string} description - * @memberof google.analytics.data.v1alpha.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.description = ""; - - /** - * DimensionMetadata deprecatedApiNames. - * @member {Array.} deprecatedApiNames - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * Row dimensionValues. + * @member {Array.} dimensionValues + * @memberof google.analytics.data.v1alpha.Row * @instance */ - DimensionMetadata.prototype.deprecatedApiNames = $util.emptyArray; + Row.prototype.dimensionValues = $util.emptyArray; /** - * DimensionMetadata customDefinition. - * @member {boolean} customDefinition - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * Row metricValues. + * @member {Array.} metricValues + * @memberof google.analytics.data.v1alpha.Row * @instance */ - DimensionMetadata.prototype.customDefinition = false; + Row.prototype.metricValues = $util.emptyArray; /** - * Creates a new DimensionMetadata instance using the specified properties. + * Creates a new Row instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IDimensionMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata instance + * @param {google.analytics.data.v1alpha.IRow=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Row} Row instance */ - DimensionMetadata.create = function create(properties) { - return new DimensionMetadata(properties); + Row.create = function create(properties) { + return new Row(properties); }; /** - * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. + * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionMetadata.encode = function encode(message, writer) { + Row.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); - if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); - if (message.description != null && Object.hasOwnProperty.call(message, "description")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); - if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); - if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.customDefinition); + if (message.dimensionValues != null && message.dimensionValues.length) + for (var i = 0; i < message.dimensionValues.length; ++i) + $root.google.analytics.data.v1alpha.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricValues != null && message.metricValues.length) + for (var i = 0; i < message.metricValues.length; ++i) + $root.google.analytics.data.v1alpha.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionMetadata.verify|verify} messages. + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Row.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + Row.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionMetadata message from the specified reader or buffer. + * Decodes a Row message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1alpha.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionMetadata.decode = function decode(reader, length) { + Row.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Row(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.apiName = reader.string(); + if (!(message.dimensionValues && message.dimensionValues.length)) + message.dimensionValues = []; + message.dimensionValues.push($root.google.analytics.data.v1alpha.DimensionValue.decode(reader, reader.uint32())); break; case 2: - message.uiName = reader.string(); - break; - case 3: - message.description = reader.string(); - break; - case 4: - if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) - message.deprecatedApiNames = []; - message.deprecatedApiNames.push(reader.string()); - break; - case 5: - message.customDefinition = reader.bool(); + if (!(message.metricValues && message.metricValues.length)) + message.metricValues = []; + message.metricValues.push($root.google.analytics.data.v1alpha.MetricValue.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -13382,160 +13662,150 @@ }; /** - * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * Decodes a Row message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1alpha.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionMetadata.decodeDelimited = function decodeDelimited(reader) { + Row.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionMetadata message. + * Verifies a Row message. * @function verify - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionMetadata.verify = function verify(message) { + Row.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.apiName != null && message.hasOwnProperty("apiName")) - if (!$util.isString(message.apiName)) - return "apiName: string expected"; - if (message.uiName != null && message.hasOwnProperty("uiName")) - if (!$util.isString(message.uiName)) - return "uiName: string expected"; - if (message.description != null && message.hasOwnProperty("description")) - if (!$util.isString(message.description)) - return "description: string expected"; - if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { - if (!Array.isArray(message.deprecatedApiNames)) - return "deprecatedApiNames: array expected"; - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - if (!$util.isString(message.deprecatedApiNames[i])) - return "deprecatedApiNames: string[] expected"; + if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { + if (!Array.isArray(message.dimensionValues)) + return "dimensionValues: array expected"; + for (var i = 0; i < message.dimensionValues.length; ++i) { + var error = $root.google.analytics.data.v1alpha.DimensionValue.verify(message.dimensionValues[i]); + if (error) + return "dimensionValues." + error; + } + } + if (message.metricValues != null && message.hasOwnProperty("metricValues")) { + if (!Array.isArray(message.metricValues)) + return "metricValues: array expected"; + for (var i = 0; i < message.metricValues.length; ++i) { + var error = $root.google.analytics.data.v1alpha.MetricValue.verify(message.metricValues[i]); + if (error) + return "metricValues." + error; + } } - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - if (typeof message.customDefinition !== "boolean") - return "customDefinition: boolean expected"; return null; }; /** - * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a Row message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1alpha.Row} Row */ - DimensionMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.DimensionMetadata) + Row.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Row) return object; - var message = new $root.google.analytics.data.v1alpha.DimensionMetadata(); - if (object.apiName != null) - message.apiName = String(object.apiName); - if (object.uiName != null) - message.uiName = String(object.uiName); - if (object.description != null) - message.description = String(object.description); - if (object.deprecatedApiNames) { - if (!Array.isArray(object.deprecatedApiNames)) - throw TypeError(".google.analytics.data.v1alpha.DimensionMetadata.deprecatedApiNames: array expected"); - message.deprecatedApiNames = []; - for (var i = 0; i < object.deprecatedApiNames.length; ++i) - message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); + var message = new $root.google.analytics.data.v1alpha.Row(); + if (object.dimensionValues) { + if (!Array.isArray(object.dimensionValues)) + throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: array expected"); + message.dimensionValues = []; + for (var i = 0; i < object.dimensionValues.length; ++i) { + if (typeof object.dimensionValues[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Row.dimensionValues: object expected"); + message.dimensionValues[i] = $root.google.analytics.data.v1alpha.DimensionValue.fromObject(object.dimensionValues[i]); + } + } + if (object.metricValues) { + if (!Array.isArray(object.metricValues)) + throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: array expected"); + message.metricValues = []; + for (var i = 0; i < object.metricValues.length; ++i) { + if (typeof object.metricValues[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Row.metricValues: object expected"); + message.metricValues[i] = $root.google.analytics.data.v1alpha.MetricValue.fromObject(object.metricValues[i]); + } } - if (object.customDefinition != null) - message.customDefinition = Boolean(object.customDefinition); return message; }; /** - * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. + * Creates a plain object from a Row message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @static - * @param {google.analytics.data.v1alpha.DimensionMetadata} message DimensionMetadata + * @param {google.analytics.data.v1alpha.Row} message Row * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionMetadata.toObject = function toObject(message, options) { + Row.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.deprecatedApiNames = []; - if (options.defaults) { - object.apiName = ""; - object.uiName = ""; - object.description = ""; - object.customDefinition = false; + if (options.arrays || options.defaults) { + object.dimensionValues = []; + object.metricValues = []; } - if (message.apiName != null && message.hasOwnProperty("apiName")) - object.apiName = message.apiName; - if (message.uiName != null && message.hasOwnProperty("uiName")) - object.uiName = message.uiName; - if (message.description != null && message.hasOwnProperty("description")) - object.description = message.description; - if (message.deprecatedApiNames && message.deprecatedApiNames.length) { - object.deprecatedApiNames = []; - for (var j = 0; j < message.deprecatedApiNames.length; ++j) - object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + if (message.dimensionValues && message.dimensionValues.length) { + object.dimensionValues = []; + for (var j = 0; j < message.dimensionValues.length; ++j) + object.dimensionValues[j] = $root.google.analytics.data.v1alpha.DimensionValue.toObject(message.dimensionValues[j], options); + } + if (message.metricValues && message.metricValues.length) { + object.metricValues = []; + for (var j = 0; j < message.metricValues.length; ++j) + object.metricValues[j] = $root.google.analytics.data.v1alpha.MetricValue.toObject(message.metricValues[j], options); } - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - object.customDefinition = message.customDefinition; return object; }; /** - * Converts this DimensionMetadata to JSON. + * Converts this Row to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.DimensionMetadata + * @memberof google.analytics.data.v1alpha.Row * @instance * @returns {Object.} JSON object */ - DimensionMetadata.prototype.toJSON = function toJSON() { + Row.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionMetadata; + return Row; })(); - v1alpha.MetricMetadata = (function() { + v1alpha.DimensionValue = (function() { /** - * Properties of a MetricMetadata. + * Properties of a DimensionValue. * @memberof google.analytics.data.v1alpha - * @interface IMetricMetadata - * @property {string|null} [apiName] MetricMetadata apiName - * @property {string|null} [uiName] MetricMetadata uiName - * @property {string|null} [description] MetricMetadata description - * @property {Array.|null} [deprecatedApiNames] MetricMetadata deprecatedApiNames - * @property {google.analytics.data.v1alpha.MetricType|null} [type] MetricMetadata type - * @property {string|null} [expression] MetricMetadata expression - * @property {boolean|null} [customDefinition] MetricMetadata customDefinition + * @interface IDimensionValue + * @property {string|null} [value] DimensionValue value */ /** - * Constructs a new MetricMetadata. + * Constructs a new DimensionValue. * @memberof google.analytics.data.v1alpha - * @classdesc Represents a MetricMetadata. - * @implements IMetricMetadata + * @classdesc Represents a DimensionValue. + * @implements IDimensionValue * @constructor - * @param {google.analytics.data.v1alpha.IMetricMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set */ - function MetricMetadata(properties) { - this.deprecatedApiNames = []; + function DimensionValue(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13543,156 +13813,89 @@ } /** - * MetricMetadata apiName. - * @member {string} apiName - * @memberof google.analytics.data.v1alpha.MetricMetadata - * @instance - */ - MetricMetadata.prototype.apiName = ""; - - /** - * MetricMetadata uiName. - * @member {string} uiName - * @memberof google.analytics.data.v1alpha.MetricMetadata - * @instance - */ - MetricMetadata.prototype.uiName = ""; - - /** - * MetricMetadata description. - * @member {string} description - * @memberof google.analytics.data.v1alpha.MetricMetadata - * @instance - */ - MetricMetadata.prototype.description = ""; - - /** - * MetricMetadata deprecatedApiNames. - * @member {Array.} deprecatedApiNames - * @memberof google.analytics.data.v1alpha.MetricMetadata - * @instance - */ - MetricMetadata.prototype.deprecatedApiNames = $util.emptyArray; - - /** - * MetricMetadata type. - * @member {google.analytics.data.v1alpha.MetricType} type - * @memberof google.analytics.data.v1alpha.MetricMetadata + * DimensionValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1alpha.DimensionValue * @instance */ - MetricMetadata.prototype.type = 0; + DimensionValue.prototype.value = null; - /** - * MetricMetadata expression. - * @member {string} expression - * @memberof google.analytics.data.v1alpha.MetricMetadata - * @instance - */ - MetricMetadata.prototype.expression = ""; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * MetricMetadata customDefinition. - * @member {boolean} customDefinition - * @memberof google.analytics.data.v1alpha.MetricMetadata + * DimensionValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.DimensionValue * @instance */ - MetricMetadata.prototype.customDefinition = false; + Object.defineProperty(DimensionValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new MetricMetadata instance using the specified properties. + * Creates a new DimensionValue instance using the specified properties. * @function create - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static - * @param {google.analytics.data.v1alpha.IMetricMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata instance + * @param {google.analytics.data.v1alpha.IDimensionValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue instance */ - MetricMetadata.create = function create(properties) { - return new MetricMetadata(properties); + DimensionValue.create = function create(properties) { + return new DimensionValue(properties); }; /** - * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. + * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static - * @param {google.analytics.data.v1alpha.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricMetadata.encode = function encode(message, writer) { + DimensionValue.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); - if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); - if (message.description != null && Object.hasOwnProperty.call(message, "description")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); - if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); - if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.expression); - if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) - writer.uint32(/* id 7, wireType 0 =*/56).bool(message.customDefinition); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); return writer; }; /** - * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricMetadata.verify|verify} messages. + * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.DimensionValue.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static - * @param {google.analytics.data.v1alpha.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IDimensionValue} message DimensionValue message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricMetadata.encodeDelimited = function encodeDelimited(message, writer) { + DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricMetadata message from the specified reader or buffer. + * Decodes a DimensionValue message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricMetadata.decode = function decode(reader, length) { + DimensionValue.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.DimensionValue(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.apiName = reader.string(); - break; - case 2: - message.uiName = reader.string(); - break; - case 3: - message.description = reader.string(); - break; - case 4: - if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) - message.deprecatedApiNames = []; - message.deprecatedApiNames.push(reader.string()); - break; - case 5: - message.type = reader.int32(); - break; - case 6: - message.expression = reader.string(); - break; - case 7: - message.customDefinition = reader.bool(); + message.value = reader.string(); break; default: reader.skipType(tag & 7); @@ -13703,578 +13906,320 @@ }; /** - * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * Decodes a DimensionValue message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricMetadata.decodeDelimited = function decodeDelimited(reader) { + DimensionValue.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricMetadata message. + * Verifies a DimensionValue message. * @function verify - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricMetadata.verify = function verify(message) { + DimensionValue.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.apiName != null && message.hasOwnProperty("apiName")) - if (!$util.isString(message.apiName)) - return "apiName: string expected"; - if (message.uiName != null && message.hasOwnProperty("uiName")) - if (!$util.isString(message.uiName)) - return "uiName: string expected"; - if (message.description != null && message.hasOwnProperty("description")) - if (!$util.isString(message.description)) - return "description: string expected"; - if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { - if (!Array.isArray(message.deprecatedApiNames)) - return "deprecatedApiNames: array expected"; - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - if (!$util.isString(message.deprecatedApiNames[i])) - return "deprecatedApiNames: string[] expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; } - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 0: - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; - } - if (message.expression != null && message.hasOwnProperty("expression")) - if (!$util.isString(message.expression)) - return "expression: string expected"; - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - if (typeof message.customDefinition !== "boolean") - return "customDefinition: boolean expected"; return null; }; /** - * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1alpha.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1alpha.DimensionValue} DimensionValue */ - MetricMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1alpha.MetricMetadata) + DimensionValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.DimensionValue) return object; - var message = new $root.google.analytics.data.v1alpha.MetricMetadata(); - if (object.apiName != null) - message.apiName = String(object.apiName); - if (object.uiName != null) - message.uiName = String(object.uiName); - if (object.description != null) - message.description = String(object.description); - if (object.deprecatedApiNames) { - if (!Array.isArray(object.deprecatedApiNames)) - throw TypeError(".google.analytics.data.v1alpha.MetricMetadata.deprecatedApiNames: array expected"); - message.deprecatedApiNames = []; - for (var i = 0; i < object.deprecatedApiNames.length; ++i) - message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); - } - switch (object.type) { - case "METRIC_TYPE_UNSPECIFIED": - case 0: - message.type = 0; - break; - case "TYPE_INTEGER": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_SECONDS": - case 4: - message.type = 4; - break; - case "TYPE_MILLISECONDS": - case 5: - message.type = 5; - break; - case "TYPE_MINUTES": - case 6: - message.type = 6; - break; - case "TYPE_HOURS": - case 7: - message.type = 7; - break; - case "TYPE_STANDARD": - case 8: - message.type = 8; - break; - case "TYPE_CURRENCY": - case 9: - message.type = 9; - break; - case "TYPE_FEET": - case 10: - message.type = 10; - break; - case "TYPE_MILES": - case 11: - message.type = 11; - break; - case "TYPE_METERS": - case 12: - message.type = 12; - break; - case "TYPE_KILOMETERS": - case 13: - message.type = 13; - break; - } - if (object.expression != null) - message.expression = String(object.expression); - if (object.customDefinition != null) - message.customDefinition = Boolean(object.customDefinition); + var message = new $root.google.analytics.data.v1alpha.DimensionValue(); + if (object.value != null) + message.value = String(object.value); return message; }; /** - * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. + * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @static - * @param {google.analytics.data.v1alpha.MetricMetadata} message MetricMetadata + * @param {google.analytics.data.v1alpha.DimensionValue} message DimensionValue * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricMetadata.toObject = function toObject(message, options) { + DimensionValue.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.deprecatedApiNames = []; - if (options.defaults) { - object.apiName = ""; - object.uiName = ""; - object.description = ""; - object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; - object.expression = ""; - object.customDefinition = false; - } - if (message.apiName != null && message.hasOwnProperty("apiName")) - object.apiName = message.apiName; - if (message.uiName != null && message.hasOwnProperty("uiName")) - object.uiName = message.uiName; - if (message.description != null && message.hasOwnProperty("description")) - object.description = message.description; - if (message.deprecatedApiNames && message.deprecatedApiNames.length) { - object.deprecatedApiNames = []; - for (var j = 0; j < message.deprecatedApiNames.length; ++j) - object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; } - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.analytics.data.v1alpha.MetricType[message.type] : message.type; - if (message.expression != null && message.hasOwnProperty("expression")) - object.expression = message.expression; - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - object.customDefinition = message.customDefinition; return object; }; /** - * Converts this MetricMetadata to JSON. + * Converts this DimensionValue to JSON. * @function toJSON - * @memberof google.analytics.data.v1alpha.MetricMetadata + * @memberof google.analytics.data.v1alpha.DimensionValue * @instance * @returns {Object.} JSON object */ - MetricMetadata.prototype.toJSON = function toJSON() { + DimensionValue.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MetricMetadata; - })(); - - /** - * MetricAggregation enum. - * @name google.analytics.data.v1alpha.MetricAggregation - * @enum {number} - * @property {number} METRIC_AGGREGATION_UNSPECIFIED=0 METRIC_AGGREGATION_UNSPECIFIED value - * @property {number} TOTAL=1 TOTAL value - * @property {number} MINIMUM=5 MINIMUM value - * @property {number} MAXIMUM=6 MAXIMUM value - * @property {number} COUNT=4 COUNT value - */ - v1alpha.MetricAggregation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_AGGREGATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "TOTAL"] = 1; - values[valuesById[5] = "MINIMUM"] = 5; - values[valuesById[6] = "MAXIMUM"] = 6; - values[valuesById[4] = "COUNT"] = 4; - return values; - })(); - - /** - * MetricType enum. - * @name google.analytics.data.v1alpha.MetricType - * @enum {number} - * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value - * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value - * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value - * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value - * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value - * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value - * @property {number} TYPE_HOURS=7 TYPE_HOURS value - * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value - * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value - * @property {number} TYPE_FEET=10 TYPE_FEET value - * @property {number} TYPE_MILES=11 TYPE_MILES value - * @property {number} TYPE_METERS=12 TYPE_METERS value - * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value - */ - v1alpha.MetricType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "TYPE_INTEGER"] = 1; - values[valuesById[2] = "TYPE_FLOAT"] = 2; - values[valuesById[4] = "TYPE_SECONDS"] = 4; - values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; - values[valuesById[6] = "TYPE_MINUTES"] = 6; - values[valuesById[7] = "TYPE_HOURS"] = 7; - values[valuesById[8] = "TYPE_STANDARD"] = 8; - values[valuesById[9] = "TYPE_CURRENCY"] = 9; - values[valuesById[10] = "TYPE_FEET"] = 10; - values[valuesById[11] = "TYPE_MILES"] = 11; - values[valuesById[12] = "TYPE_METERS"] = 12; - values[valuesById[13] = "TYPE_KILOMETERS"] = 13; - return values; + return DimensionValue; })(); - return v1alpha; - })(); - - data.v1beta = (function() { - - /** - * Namespace v1beta. - * @memberof google.analytics.data - * @namespace - */ - var v1beta = {}; + v1alpha.MetricValue = (function() { - v1beta.BetaAnalyticsData = (function() { + /** + * Properties of a MetricValue. + * @memberof google.analytics.data.v1alpha + * @interface IMetricValue + * @property {string|null} [value] MetricValue value + */ /** - * Constructs a new BetaAnalyticsData service. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a BetaAnalyticsData - * @extends $protobuf.rpc.Service + * Constructs a new MetricValue. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a MetricValue. + * @implements IMetricValue * @constructor - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set */ - function BetaAnalyticsData(rpcImpl, requestDelimited, responseDelimited) { - $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + function MetricValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - (BetaAnalyticsData.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = BetaAnalyticsData; + /** + * MetricValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1alpha.MetricValue + * @instance + */ + MetricValue.prototype.value = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Creates new BetaAnalyticsData service using the specified rpc implementation. + * MetricValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1alpha.MetricValue + * @instance + */ + Object.defineProperty(MetricValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MetricValue instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @memberof google.analytics.data.v1alpha.MetricValue * @static - * @param {$protobuf.RPCImpl} rpcImpl RPC implementation - * @param {boolean} [requestDelimited=false] Whether requests are length-delimited - * @param {boolean} [responseDelimited=false] Whether responses are length-delimited - * @returns {BetaAnalyticsData} RPC service. Useful where requests and/or responses are streamed. + * @param {google.analytics.data.v1alpha.IMetricValue=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue instance */ - BetaAnalyticsData.create = function create(rpcImpl, requestDelimited, responseDelimited) { - return new this(rpcImpl, requestDelimited, responseDelimited); + MetricValue.create = function create(properties) { + return new MetricValue(properties); }; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runReport}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef RunReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.RunReportResponse} [response] RunReportResponse + * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ + MetricValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); + return writer; + }; /** - * Calls RunReport. - * @function runReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunReportRequest} request RunReportRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunReportCallback} callback Node-style callback called with the error, if any, and RunReportResponse - * @returns {undefined} - * @variation 1 + * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.MetricValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - Object.defineProperty(BetaAnalyticsData.prototype.runReport = function runReport(request, callback) { - return this.rpcCall(runReport, $root.google.analytics.data.v1beta.RunReportRequest, $root.google.analytics.data.v1beta.RunReportResponse, request, callback); - }, "name", { value: "RunReport" }); + MetricValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * Calls RunReport. - * @function runReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunReportRequest} request RunReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * Decodes a MetricValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ + MetricValue.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.MetricValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 4: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runPivotReport}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef RunPivotReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.RunPivotReportResponse} [response] RunPivotReportResponse + * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ + MetricValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * Calls RunPivotReport. - * @function runPivotReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunPivotReportRequest} request RunPivotReportRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReportCallback} callback Node-style callback called with the error, if any, and RunPivotReportResponse - * @returns {undefined} - * @variation 1 + * Verifies a MetricValue message. + * @function verify + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Object.defineProperty(BetaAnalyticsData.prototype.runPivotReport = function runPivotReport(request, callback) { - return this.rpcCall(runPivotReport, $root.google.analytics.data.v1beta.RunPivotReportRequest, $root.google.analytics.data.v1beta.RunPivotReportResponse, request, callback); - }, "name", { value: "RunPivotReport" }); + MetricValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; + } + return null; + }; /** - * Calls RunPivotReport. - * @function runPivotReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunPivotReportRequest} request RunPivotReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 + * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.MetricValue} MetricValue */ + MetricValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.MetricValue) + return object; + var message = new $root.google.analytics.data.v1alpha.MetricValue(); + if (object.value != null) + message.value = String(object.value); + return message; + }; /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunReports}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef BatchRunReportsCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.BatchRunReportsResponse} [response] BatchRunReportsResponse + * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.MetricValue + * @static + * @param {google.analytics.data.v1alpha.MetricValue} message MetricValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object */ + MetricValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; + } + return object; + }; /** - * Calls BatchRunReports. - * @function batchRunReports - * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * Converts this MetricValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.MetricValue * @instance - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReportsCallback} callback Node-style callback called with the error, if any, and BatchRunReportsResponse - * @returns {undefined} - * @variation 1 + * @returns {Object.} JSON object */ - Object.defineProperty(BetaAnalyticsData.prototype.batchRunReports = function batchRunReports(request, callback) { - return this.rpcCall(batchRunReports, $root.google.analytics.data.v1beta.BatchRunReportsRequest, $root.google.analytics.data.v1beta.BatchRunReportsResponse, request, callback); - }, "name", { value: "BatchRunReports" }); + MetricValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MetricValue; + })(); + + v1alpha.PropertyQuota = (function() { /** - * Calls BatchRunReports. - * @function batchRunReports - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - - /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunPivotReports}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef BatchRunPivotReportsCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.BatchRunPivotReportsResponse} [response] BatchRunPivotReportsResponse - */ - - /** - * Calls BatchRunPivotReports. - * @function batchRunPivotReports - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReportsCallback} callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(BetaAnalyticsData.prototype.batchRunPivotReports = function batchRunPivotReports(request, callback) { - return this.rpcCall(batchRunPivotReports, $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest, $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse, request, callback); - }, "name", { value: "BatchRunPivotReports" }); - - /** - * Calls BatchRunPivotReports. - * @function batchRunPivotReports - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - - /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#getMetadata}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef GetMetadataCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.Metadata} [response] Metadata - */ - - /** - * Calls GetMetadata. - * @function getMetadata - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IGetMetadataRequest} request GetMetadataRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.GetMetadataCallback} callback Node-style callback called with the error, if any, and Metadata - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(BetaAnalyticsData.prototype.getMetadata = function getMetadata(request, callback) { - return this.rpcCall(getMetadata, $root.google.analytics.data.v1beta.GetMetadataRequest, $root.google.analytics.data.v1beta.Metadata, request, callback); - }, "name", { value: "GetMetadata" }); - - /** - * Calls GetMetadata. - * @function getMetadata - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IGetMetadataRequest} request GetMetadataRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - - /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runRealtimeReport}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef RunRealtimeReportCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.RunRealtimeReportResponse} [response] RunRealtimeReportResponse - */ - - /** - * Calls RunRealtimeReport. - * @function runRealtimeReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReportCallback} callback Node-style callback called with the error, if any, and RunRealtimeReportResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(BetaAnalyticsData.prototype.runRealtimeReport = function runRealtimeReport(request, callback) { - return this.rpcCall(runRealtimeReport, $root.google.analytics.data.v1beta.RunRealtimeReportRequest, $root.google.analytics.data.v1beta.RunRealtimeReportResponse, request, callback); - }, "name", { value: "RunRealtimeReport" }); - - /** - * Calls RunRealtimeReport. - * @function runRealtimeReport - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - - /** - * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#checkCompatibility}. - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @typedef CheckCompatibilityCallback - * @type {function} - * @param {Error|null} error Error, if any - * @param {google.analytics.data.v1beta.CheckCompatibilityResponse} [response] CheckCompatibilityResponse - */ - - /** - * Calls CheckCompatibility. - * @function checkCompatibility - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} request CheckCompatibilityRequest message or plain object - * @param {google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibilityCallback} callback Node-style callback called with the error, if any, and CheckCompatibilityResponse - * @returns {undefined} - * @variation 1 - */ - Object.defineProperty(BetaAnalyticsData.prototype.checkCompatibility = function checkCompatibility(request, callback) { - return this.rpcCall(checkCompatibility, $root.google.analytics.data.v1beta.CheckCompatibilityRequest, $root.google.analytics.data.v1beta.CheckCompatibilityResponse, request, callback); - }, "name", { value: "CheckCompatibility" }); - - /** - * Calls CheckCompatibility. - * @function checkCompatibility - * @memberof google.analytics.data.v1beta.BetaAnalyticsData - * @instance - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} request CheckCompatibilityRequest message or plain object - * @returns {Promise} Promise - * @variation 2 - */ - - return BetaAnalyticsData; - })(); - - v1beta.CheckCompatibilityRequest = (function() { - - /** - * Properties of a CheckCompatibilityRequest. - * @memberof google.analytics.data.v1beta - * @interface ICheckCompatibilityRequest - * @property {string|null} [property] CheckCompatibilityRequest property - * @property {Array.|null} [dimensions] CheckCompatibilityRequest dimensions - * @property {Array.|null} [metrics] CheckCompatibilityRequest metrics - * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] CheckCompatibilityRequest dimensionFilter - * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] CheckCompatibilityRequest metricFilter - * @property {google.analytics.data.v1beta.Compatibility|null} [compatibilityFilter] CheckCompatibilityRequest compatibilityFilter + * Properties of a PropertyQuota. + * @memberof google.analytics.data.v1alpha + * @interface IPropertyQuota + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour + * @property {google.analytics.data.v1alpha.IQuotaStatus|null} [potentiallyThresholdedRequestsPerHour] PropertyQuota potentiallyThresholdedRequestsPerHour */ /** - * Constructs a new CheckCompatibilityRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a CheckCompatibilityRequest. - * @implements ICheckCompatibilityRequest + * Constructs a new PropertyQuota. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a PropertyQuota. + * @implements IPropertyQuota * @constructor - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set */ - function CheckCompatibilityRequest(properties) { - this.dimensions = []; - this.metrics = []; + function PropertyQuota(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14282,146 +14227,127 @@ } /** - * CheckCompatibilityRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest - * @instance - */ - CheckCompatibilityRequest.prototype.property = ""; - - /** - * CheckCompatibilityRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * PropertyQuota tokensPerDay. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerDay + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - CheckCompatibilityRequest.prototype.dimensions = $util.emptyArray; + PropertyQuota.prototype.tokensPerDay = null; /** - * CheckCompatibilityRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * PropertyQuota tokensPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} tokensPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - CheckCompatibilityRequest.prototype.metrics = $util.emptyArray; + PropertyQuota.prototype.tokensPerHour = null; /** - * CheckCompatibilityRequest dimensionFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * PropertyQuota concurrentRequests. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} concurrentRequests + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - CheckCompatibilityRequest.prototype.dimensionFilter = null; + PropertyQuota.prototype.concurrentRequests = null; /** - * CheckCompatibilityRequest metricFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * PropertyQuota serverErrorsPerProjectPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - CheckCompatibilityRequest.prototype.metricFilter = null; + PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; /** - * CheckCompatibilityRequest compatibilityFilter. - * @member {google.analytics.data.v1beta.Compatibility} compatibilityFilter - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * PropertyQuota potentiallyThresholdedRequestsPerHour. + * @member {google.analytics.data.v1alpha.IQuotaStatus|null|undefined} potentiallyThresholdedRequestsPerHour + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance */ - CheckCompatibilityRequest.prototype.compatibilityFilter = 0; + PropertyQuota.prototype.potentiallyThresholdedRequestsPerHour = null; /** - * Creates a new CheckCompatibilityRequest instance using the specified properties. + * Creates a new PropertyQuota instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest instance + * @param {google.analytics.data.v1alpha.IPropertyQuota=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota instance */ - CheckCompatibilityRequest.create = function create(properties) { - return new CheckCompatibilityRequest(properties); + PropertyQuota.create = function create(properties) { + return new PropertyQuota(properties); }; /** - * Encodes the specified CheckCompatibilityRequest message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} message CheckCompatibilityRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CheckCompatibilityRequest.encode = function encode(message, writer) { + PropertyQuota.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.compatibilityFilter != null && Object.hasOwnProperty.call(message, "compatibilityFilter")) - writer.uint32(/* id 6, wireType 0 =*/48).int32(message.compatibilityFilter); + if (message.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.potentiallyThresholdedRequestsPerHour != null && Object.hasOwnProperty.call(message, "potentiallyThresholdedRequestsPerHour")) + $root.google.analytics.data.v1alpha.QuotaStatus.encode(message.potentiallyThresholdedRequestsPerHour, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified CheckCompatibilityRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.PropertyQuota.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} message CheckCompatibilityRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IPropertyQuota} message PropertyQuota message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CheckCompatibilityRequest.encodeDelimited = function encodeDelimited(message, writer) { + PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CheckCompatibilityRequest message from the specified reader or buffer. + * Decodes a PropertyQuota message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CheckCompatibilityRequest.decode = function decode(reader, length) { + PropertyQuota.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CheckCompatibilityRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.PropertyQuota(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); + message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); + message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; case 4: - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; case 5: - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 6: - message.compatibilityFilter = reader.int32(); + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14432,215 +14358,166 @@ }; /** - * Decodes a CheckCompatibilityRequest message from the specified reader or buffer, length delimited. + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CheckCompatibilityRequest.decodeDelimited = function decodeDelimited(reader) { + PropertyQuota.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CheckCompatibilityRequest message. + * Verifies a PropertyQuota message. * @function verify - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CheckCompatibilityRequest.verify = function verify(message) { + PropertyQuota.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } + if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerDay); + if (error) + return "tokensPerDay." + error; } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.tokensPerHour); + if (error) + return "tokensPerHour." + error; } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.concurrentRequests); if (error) - return "dimensionFilter." + error; + return "concurrentRequests." + error; } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); if (error) - return "metricFilter." + error; + return "serverErrorsPerProjectPerHour." + error; + } + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) { + var error = $root.google.analytics.data.v1alpha.QuotaStatus.verify(message.potentiallyThresholdedRequestsPerHour); + if (error) + return "potentiallyThresholdedRequestsPerHour." + error; } - if (message.compatibilityFilter != null && message.hasOwnProperty("compatibilityFilter")) - switch (message.compatibilityFilter) { - default: - return "compatibilityFilter: enum value expected"; - case 0: - case 1: - case 2: - break; - } return null; }; /** - * Creates a CheckCompatibilityRequest message from a plain object. Also converts values to their respective internal types. + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest + * @returns {google.analytics.data.v1alpha.PropertyQuota} PropertyQuota */ - CheckCompatibilityRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.CheckCompatibilityRequest) + PropertyQuota.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.PropertyQuota) return object; - var message = new $root.google.analytics.data.v1beta.CheckCompatibilityRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); - } + var message = new $root.google.analytics.data.v1alpha.PropertyQuota(); + if (object.tokensPerDay != null) { + if (typeof object.tokensPerDay !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerDay: object expected"); + message.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerDay); } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); - } + if (object.tokensPerHour != null) { + if (typeof object.tokensPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.tokensPerHour: object expected"); + message.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.tokensPerHour); } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); + if (object.concurrentRequests != null) { + if (typeof object.concurrentRequests !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.concurrentRequests: object expected"); + message.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.concurrentRequests); } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); + if (object.serverErrorsPerProjectPerHour != null) { + if (typeof object.serverErrorsPerProjectPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); } - switch (object.compatibilityFilter) { - case "COMPATIBILITY_UNSPECIFIED": - case 0: - message.compatibilityFilter = 0; - break; - case "COMPATIBLE": - case 1: - message.compatibilityFilter = 1; - break; - case "INCOMPATIBLE": - case 2: - message.compatibilityFilter = 2; - break; + if (object.potentiallyThresholdedRequestsPerHour != null) { + if (typeof object.potentiallyThresholdedRequestsPerHour !== "object") + throw TypeError(".google.analytics.data.v1alpha.PropertyQuota.potentiallyThresholdedRequestsPerHour: object expected"); + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.fromObject(object.potentiallyThresholdedRequestsPerHour); } return message; }; /** - * Creates a plain object from a CheckCompatibilityRequest message. Also converts values to other types if specified. + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @static - * @param {google.analytics.data.v1beta.CheckCompatibilityRequest} message CheckCompatibilityRequest + * @param {google.analytics.data.v1alpha.PropertyQuota} message PropertyQuota * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CheckCompatibilityRequest.toObject = function toObject(message, options) { + PropertyQuota.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - } if (options.defaults) { - object.property = ""; - object.dimensionFilter = null; - object.metricFilter = null; - object.compatibilityFilter = options.enums === String ? "COMPATIBILITY_UNSPECIFIED" : 0; - } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); + object.tokensPerDay = null; + object.tokensPerHour = null; + object.concurrentRequests = null; + object.serverErrorsPerProjectPerHour = null; + object.potentiallyThresholdedRequestsPerHour = null; } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); - if (message.compatibilityFilter != null && message.hasOwnProperty("compatibilityFilter")) - object.compatibilityFilter = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibilityFilter] : message.compatibilityFilter; + if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) + object.tokensPerDay = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerDay, options); + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) + object.tokensPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.tokensPerHour, options); + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) + object.concurrentRequests = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.concurrentRequests, options); + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) + object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) + object.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1alpha.QuotaStatus.toObject(message.potentiallyThresholdedRequestsPerHour, options); return object; }; /** - * Converts this CheckCompatibilityRequest to JSON. + * Converts this PropertyQuota to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @memberof google.analytics.data.v1alpha.PropertyQuota * @instance * @returns {Object.} JSON object */ - CheckCompatibilityRequest.prototype.toJSON = function toJSON() { + PropertyQuota.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CheckCompatibilityRequest; + return PropertyQuota; })(); - v1beta.CheckCompatibilityResponse = (function() { + v1alpha.QuotaStatus = (function() { /** - * Properties of a CheckCompatibilityResponse. - * @memberof google.analytics.data.v1beta - * @interface ICheckCompatibilityResponse - * @property {Array.|null} [dimensionCompatibilities] CheckCompatibilityResponse dimensionCompatibilities - * @property {Array.|null} [metricCompatibilities] CheckCompatibilityResponse metricCompatibilities + * Properties of a QuotaStatus. + * @memberof google.analytics.data.v1alpha + * @interface IQuotaStatus + * @property {number|null} [consumed] QuotaStatus consumed + * @property {number|null} [remaining] QuotaStatus remaining */ /** - * Constructs a new CheckCompatibilityResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a CheckCompatibilityResponse. - * @implements ICheckCompatibilityResponse - * @constructor - * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse=} [properties] Properties to set + * Constructs a new QuotaStatus. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a QuotaStatus. + * @implements IQuotaStatus + * @constructor + * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set */ - function CheckCompatibilityResponse(properties) { - this.dimensionCompatibilities = []; - this.metricCompatibilities = []; + function QuotaStatus(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14648,94 +14525,88 @@ } /** - * CheckCompatibilityResponse dimensionCompatibilities. - * @member {Array.} dimensionCompatibilities - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * QuotaStatus consumed. + * @member {number} consumed + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance */ - CheckCompatibilityResponse.prototype.dimensionCompatibilities = $util.emptyArray; + QuotaStatus.prototype.consumed = 0; /** - * CheckCompatibilityResponse metricCompatibilities. - * @member {Array.} metricCompatibilities - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * QuotaStatus remaining. + * @member {number} remaining + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance */ - CheckCompatibilityResponse.prototype.metricCompatibilities = $util.emptyArray; + QuotaStatus.prototype.remaining = 0; /** - * Creates a new CheckCompatibilityResponse instance using the specified properties. + * Creates a new QuotaStatus instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse instance + * @param {google.analytics.data.v1alpha.IQuotaStatus=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus instance */ - CheckCompatibilityResponse.create = function create(properties) { - return new CheckCompatibilityResponse(properties); + QuotaStatus.create = function create(properties) { + return new QuotaStatus(properties); }; /** - * Encodes the specified CheckCompatibilityResponse message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse} message CheckCompatibilityResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CheckCompatibilityResponse.encode = function encode(message, writer) { + QuotaStatus.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionCompatibilities != null && message.dimensionCompatibilities.length) - for (var i = 0; i < message.dimensionCompatibilities.length; ++i) - $root.google.analytics.data.v1beta.DimensionCompatibility.encode(message.dimensionCompatibilities[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricCompatibilities != null && message.metricCompatibilities.length) - for (var i = 0; i < message.metricCompatibilities.length; ++i) - $root.google.analytics.data.v1beta.MetricCompatibility.encode(message.metricCompatibilities[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); + if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); return writer; }; /** - * Encodes the specified CheckCompatibilityResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.QuotaStatus.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse} message CheckCompatibilityResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IQuotaStatus} message QuotaStatus message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CheckCompatibilityResponse.encodeDelimited = function encodeDelimited(message, writer) { + QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CheckCompatibilityResponse message from the specified reader or buffer. + * Decodes a QuotaStatus message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CheckCompatibilityResponse.decode = function decode(reader, length) { + QuotaStatus.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CheckCompatibilityResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.QuotaStatus(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionCompatibilities && message.dimensionCompatibilities.length)) - message.dimensionCompatibilities = []; - message.dimensionCompatibilities.push($root.google.analytics.data.v1beta.DimensionCompatibility.decode(reader, reader.uint32())); + message.consumed = reader.int32(); break; case 2: - if (!(message.metricCompatibilities && message.metricCompatibilities.length)) - message.metricCompatibilities = []; - message.metricCompatibilities.push($root.google.analytics.data.v1beta.MetricCompatibility.decode(reader, reader.uint32())); + message.remaining = reader.int32(); break; default: reader.skipType(tag & 7); @@ -14746,154 +14617,117 @@ }; /** - * Decodes a CheckCompatibilityResponse message from the specified reader or buffer, length delimited. + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CheckCompatibilityResponse.decodeDelimited = function decodeDelimited(reader) { + QuotaStatus.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CheckCompatibilityResponse message. + * Verifies a QuotaStatus message. * @function verify - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CheckCompatibilityResponse.verify = function verify(message) { + QuotaStatus.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionCompatibilities != null && message.hasOwnProperty("dimensionCompatibilities")) { - if (!Array.isArray(message.dimensionCompatibilities)) - return "dimensionCompatibilities: array expected"; - for (var i = 0; i < message.dimensionCompatibilities.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionCompatibility.verify(message.dimensionCompatibilities[i]); - if (error) - return "dimensionCompatibilities." + error; - } - } - if (message.metricCompatibilities != null && message.hasOwnProperty("metricCompatibilities")) { - if (!Array.isArray(message.metricCompatibilities)) - return "metricCompatibilities: array expected"; - for (var i = 0; i < message.metricCompatibilities.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricCompatibility.verify(message.metricCompatibilities[i]); - if (error) - return "metricCompatibilities." + error; - } - } + if (message.consumed != null && message.hasOwnProperty("consumed")) + if (!$util.isInteger(message.consumed)) + return "consumed: integer expected"; + if (message.remaining != null && message.hasOwnProperty("remaining")) + if (!$util.isInteger(message.remaining)) + return "remaining: integer expected"; return null; }; /** - * Creates a CheckCompatibilityResponse message from a plain object. Also converts values to their respective internal types. + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse + * @returns {google.analytics.data.v1alpha.QuotaStatus} QuotaStatus */ - CheckCompatibilityResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.CheckCompatibilityResponse) + QuotaStatus.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.QuotaStatus) return object; - var message = new $root.google.analytics.data.v1beta.CheckCompatibilityResponse(); - if (object.dimensionCompatibilities) { - if (!Array.isArray(object.dimensionCompatibilities)) - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.dimensionCompatibilities: array expected"); - message.dimensionCompatibilities = []; - for (var i = 0; i < object.dimensionCompatibilities.length; ++i) { - if (typeof object.dimensionCompatibilities[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.dimensionCompatibilities: object expected"); - message.dimensionCompatibilities[i] = $root.google.analytics.data.v1beta.DimensionCompatibility.fromObject(object.dimensionCompatibilities[i]); - } - } - if (object.metricCompatibilities) { - if (!Array.isArray(object.metricCompatibilities)) - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.metricCompatibilities: array expected"); - message.metricCompatibilities = []; - for (var i = 0; i < object.metricCompatibilities.length; ++i) { - if (typeof object.metricCompatibilities[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.metricCompatibilities: object expected"); - message.metricCompatibilities[i] = $root.google.analytics.data.v1beta.MetricCompatibility.fromObject(object.metricCompatibilities[i]); - } - } + var message = new $root.google.analytics.data.v1alpha.QuotaStatus(); + if (object.consumed != null) + message.consumed = object.consumed | 0; + if (object.remaining != null) + message.remaining = object.remaining | 0; return message; }; /** - * Creates a plain object from a CheckCompatibilityResponse message. Also converts values to other types if specified. + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @static - * @param {google.analytics.data.v1beta.CheckCompatibilityResponse} message CheckCompatibilityResponse + * @param {google.analytics.data.v1alpha.QuotaStatus} message QuotaStatus * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CheckCompatibilityResponse.toObject = function toObject(message, options) { + QuotaStatus.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensionCompatibilities = []; - object.metricCompatibilities = []; - } - if (message.dimensionCompatibilities && message.dimensionCompatibilities.length) { - object.dimensionCompatibilities = []; - for (var j = 0; j < message.dimensionCompatibilities.length; ++j) - object.dimensionCompatibilities[j] = $root.google.analytics.data.v1beta.DimensionCompatibility.toObject(message.dimensionCompatibilities[j], options); - } - if (message.metricCompatibilities && message.metricCompatibilities.length) { - object.metricCompatibilities = []; - for (var j = 0; j < message.metricCompatibilities.length; ++j) - object.metricCompatibilities[j] = $root.google.analytics.data.v1beta.MetricCompatibility.toObject(message.metricCompatibilities[j], options); + if (options.defaults) { + object.consumed = 0; + object.remaining = 0; } + if (message.consumed != null && message.hasOwnProperty("consumed")) + object.consumed = message.consumed; + if (message.remaining != null && message.hasOwnProperty("remaining")) + object.remaining = message.remaining; return object; }; /** - * Converts this CheckCompatibilityResponse to JSON. + * Converts this QuotaStatus to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @memberof google.analytics.data.v1alpha.QuotaStatus * @instance * @returns {Object.} JSON object */ - CheckCompatibilityResponse.prototype.toJSON = function toJSON() { + QuotaStatus.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CheckCompatibilityResponse; + return QuotaStatus; })(); - v1beta.Metadata = (function() { + v1alpha.FunnelBreakdown = (function() { /** - * Properties of a Metadata. - * @memberof google.analytics.data.v1beta - * @interface IMetadata - * @property {string|null} [name] Metadata name - * @property {Array.|null} [dimensions] Metadata dimensions - * @property {Array.|null} [metrics] Metadata metrics + * Properties of a FunnelBreakdown. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelBreakdown + * @property {google.analytics.data.v1alpha.IDimension|null} [breakdownDimension] FunnelBreakdown breakdownDimension + * @property {number|Long|null} [limit] FunnelBreakdown limit */ /** - * Constructs a new Metadata. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Metadata. - * @implements IMetadata + * Constructs a new FunnelBreakdown. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelBreakdown. + * @implements IFunnelBreakdown * @constructor - * @param {google.analytics.data.v1beta.IMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set */ - function Metadata(properties) { - this.dimensions = []; - this.metrics = []; + function FunnelBreakdown(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14901,107 +14735,102 @@ } /** - * Metadata name. - * @member {string} name - * @memberof google.analytics.data.v1beta.Metadata + * FunnelBreakdown breakdownDimension. + * @member {google.analytics.data.v1alpha.IDimension|null|undefined} breakdownDimension + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance */ - Metadata.prototype.name = ""; + FunnelBreakdown.prototype.breakdownDimension = null; /** - * Metadata dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1beta.Metadata + * FunnelBreakdown limit. + * @member {number|Long|null|undefined} limit + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance */ - Metadata.prototype.dimensions = $util.emptyArray; + FunnelBreakdown.prototype.limit = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Metadata metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1beta.Metadata + * FunnelBreakdown _limit. + * @member {"limit"|undefined} _limit + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance */ - Metadata.prototype.metrics = $util.emptyArray; + Object.defineProperty(FunnelBreakdown.prototype, "_limit", { + get: $util.oneOfGetter($oneOfFields = ["limit"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new Metadata instance using the specified properties. + * Creates a new FunnelBreakdown instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1beta.IMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Metadata} Metadata instance + * @param {google.analytics.data.v1alpha.IFunnelBreakdown=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown instance */ - Metadata.create = function create(properties) { - return new Metadata(properties); + FunnelBreakdown.create = function create(properties) { + return new FunnelBreakdown(properties); }; /** - * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. + * Encodes the specified FunnelBreakdown message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1beta.IMetadata} message Metadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metadata.encode = function encode(message, writer) { + FunnelBreakdown.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1beta.DimensionMetadata.encode(message.dimensions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1beta.MetricMetadata.encode(message.metrics[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.breakdownDimension != null && Object.hasOwnProperty.call(message, "breakdownDimension")) + $root.google.analytics.data.v1alpha.Dimension.encode(message.breakdownDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); return writer; }; /** - * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. + * Encodes the specified FunnelBreakdown message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelBreakdown.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1beta.IMetadata} message Metadata message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelBreakdown} message FunnelBreakdown message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metadata.encodeDelimited = function encodeDelimited(message, writer) { + FunnelBreakdown.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Metadata message from the specified reader or buffer. + * Decodes a FunnelBreakdown message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Metadata} Metadata + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metadata.decode = function decode(reader, length) { + FunnelBreakdown.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Metadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 3: - message.name = reader.string(); - break; case 1: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1beta.DimensionMetadata.decode(reader, reader.uint32())); + message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); break; case 2: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1beta.MetricMetadata.decode(reader, reader.uint32())); + message.limit = reader.int64(); break; default: reader.skipType(tag & 7); @@ -15012,177 +14841,136 @@ }; /** - * Decodes a Metadata message from the specified reader or buffer, length delimited. + * Decodes a FunnelBreakdown message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Metadata} Metadata + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metadata.decodeDelimited = function decodeDelimited(reader) { + FunnelBreakdown.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Metadata message. + * Verifies a FunnelBreakdown message. * @function verify - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metadata.verify = function verify(message) { + FunnelBreakdown.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionMetadata.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } + var properties = {}; + if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) { + var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.breakdownDimension); + if (error) + return "breakdownDimension." + error; } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricMetadata.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } + if (message.limit != null && message.hasOwnProperty("limit")) { + properties._limit = 1; + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; } return null; }; /** - * Creates a Metadata message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelBreakdown message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Metadata} Metadata + * @returns {google.analytics.data.v1alpha.FunnelBreakdown} FunnelBreakdown */ - Metadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Metadata) + FunnelBreakdown.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelBreakdown) return object; - var message = new $root.google.analytics.data.v1beta.Metadata(); - if (object.name != null) - message.name = String(object.name); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1beta.Metadata.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.Metadata.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1beta.DimensionMetadata.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1beta.Metadata.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.Metadata.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1beta.MetricMetadata.fromObject(object.metrics[i]); - } + var message = new $root.google.analytics.data.v1alpha.FunnelBreakdown(); + if (object.breakdownDimension != null) { + if (typeof object.breakdownDimension !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelBreakdown.breakdownDimension: object expected"); + message.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.breakdownDimension); } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a Metadata message. Also converts values to other types if specified. + * Creates a plain object from a FunnelBreakdown message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @static - * @param {google.analytics.data.v1beta.Metadata} message Metadata + * @param {google.analytics.data.v1alpha.FunnelBreakdown} message FunnelBreakdown * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Metadata.toObject = function toObject(message, options) { + FunnelBreakdown.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - } if (options.defaults) - object.name = ""; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1beta.DimensionMetadata.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1beta.MetricMetadata.toObject(message.metrics[j], options); + object.breakdownDimension = null; + if (message.breakdownDimension != null && message.hasOwnProperty("breakdownDimension")) + object.breakdownDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.breakdownDimension, options); + if (message.limit != null && message.hasOwnProperty("limit")) { + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (options.oneofs) + object._limit = "limit"; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; return object; }; /** - * Converts this Metadata to JSON. + * Converts this FunnelBreakdown to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Metadata + * @memberof google.analytics.data.v1alpha.FunnelBreakdown * @instance * @returns {Object.} JSON object */ - Metadata.prototype.toJSON = function toJSON() { + FunnelBreakdown.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Metadata; + return FunnelBreakdown; })(); - v1beta.RunReportRequest = (function() { + v1alpha.FunnelNextAction = (function() { /** - * Properties of a RunReportRequest. - * @memberof google.analytics.data.v1beta - * @interface IRunReportRequest - * @property {string|null} [property] RunReportRequest property - * @property {Array.|null} [dimensions] RunReportRequest dimensions - * @property {Array.|null} [metrics] RunReportRequest metrics - * @property {Array.|null} [dateRanges] RunReportRequest dateRanges - * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunReportRequest dimensionFilter - * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunReportRequest metricFilter - * @property {number|Long|null} [offset] RunReportRequest offset - * @property {number|Long|null} [limit] RunReportRequest limit - * @property {Array.|null} [metricAggregations] RunReportRequest metricAggregations - * @property {Array.|null} [orderBys] RunReportRequest orderBys - * @property {string|null} [currencyCode] RunReportRequest currencyCode - * @property {google.analytics.data.v1beta.ICohortSpec|null} [cohortSpec] RunReportRequest cohortSpec - * @property {boolean|null} [keepEmptyRows] RunReportRequest keepEmptyRows - * @property {boolean|null} [returnPropertyQuota] RunReportRequest returnPropertyQuota + * Properties of a FunnelNextAction. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelNextAction + * @property {google.analytics.data.v1alpha.IDimension|null} [nextActionDimension] FunnelNextAction nextActionDimension + * @property {number|Long|null} [limit] FunnelNextAction limit */ /** - * Constructs a new RunReportRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunReportRequest. - * @implements IRunReportRequest + * Constructs a new FunnelNextAction. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelNextAction. + * @implements IFunnelNextAction * @constructor - * @param {google.analytics.data.v1beta.IRunReportRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set */ - function RunReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.dateRanges = []; - this.metricAggregations = []; - this.orderBys = []; + function FunnelNextAction(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -15190,267 +14978,335 @@ } /** - * RunReportRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.RunReportRequest + * FunnelNextAction nextActionDimension. + * @member {google.analytics.data.v1alpha.IDimension|null|undefined} nextActionDimension + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance */ - RunReportRequest.prototype.property = ""; + FunnelNextAction.prototype.nextActionDimension = null; /** - * RunReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1beta.RunReportRequest + * FunnelNextAction limit. + * @member {number|Long|null|undefined} limit + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance */ - RunReportRequest.prototype.dimensions = $util.emptyArray; + FunnelNextAction.prototype.limit = null; - /** - * RunReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance - */ - RunReportRequest.prototype.metrics = $util.emptyArray; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * RunReportRequest dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1beta.RunReportRequest + * FunnelNextAction _limit. + * @member {"limit"|undefined} _limit + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance */ - RunReportRequest.prototype.dateRanges = $util.emptyArray; + Object.defineProperty(FunnelNextAction.prototype, "_limit", { + get: $util.oneOfGetter($oneOfFields = ["limit"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * RunReportRequest dimensionFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Creates a new FunnelNextAction instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {google.analytics.data.v1alpha.IFunnelNextAction=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction instance */ - RunReportRequest.prototype.dimensionFilter = null; + FunnelNextAction.create = function create(properties) { + return new FunnelNextAction(properties); + }; /** - * RunReportRequest metricFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Encodes the specified FunnelNextAction message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunReportRequest.prototype.metricFilter = null; + FunnelNextAction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.nextActionDimension != null && Object.hasOwnProperty.call(message, "nextActionDimension")) + $root.google.analytics.data.v1alpha.Dimension.encode(message.nextActionDimension, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.limit); + return writer; + }; /** - * RunReportRequest offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Encodes the specified FunnelNextAction message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelNextAction.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {google.analytics.data.v1alpha.IFunnelNextAction} message FunnelNextAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunReportRequest.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + FunnelNextAction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * RunReportRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Decodes a FunnelNextAction message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + FunnelNextAction.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.decode(reader, reader.uint32()); + break; + case 2: + message.limit = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * RunReportRequest metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Decodes a FunnelNextAction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportRequest.prototype.metricAggregations = $util.emptyArray; + FunnelNextAction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * RunReportRequest orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance + * Verifies a FunnelNextAction message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunReportRequest.prototype.orderBys = $util.emptyArray; + FunnelNextAction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) { + var error = $root.google.analytics.data.v1alpha.Dimension.verify(message.nextActionDimension); + if (error) + return "nextActionDimension." + error; + } + if (message.limit != null && message.hasOwnProperty("limit")) { + properties._limit = 1; + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + } + return null; + }; /** - * RunReportRequest currencyCode. - * @member {string} currencyCode - * @memberof google.analytics.data.v1beta.RunReportRequest - * @instance - */ - RunReportRequest.prototype.currencyCode = ""; + * Creates a FunnelNextAction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FunnelNextAction} FunnelNextAction + */ + FunnelNextAction.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelNextAction) + return object; + var message = new $root.google.analytics.data.v1alpha.FunnelNextAction(); + if (object.nextActionDimension != null) { + if (typeof object.nextActionDimension !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelNextAction.nextActionDimension: object expected"); + message.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.fromObject(object.nextActionDimension); + } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + return message; + }; /** - * RunReportRequest cohortSpec. - * @member {google.analytics.data.v1beta.ICohortSpec|null|undefined} cohortSpec - * @memberof google.analytics.data.v1beta.RunReportRequest + * Creates a plain object from a FunnelNextAction message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FunnelNextAction + * @static + * @param {google.analytics.data.v1alpha.FunnelNextAction} message FunnelNextAction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FunnelNextAction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.nextActionDimension = null; + if (message.nextActionDimension != null && message.hasOwnProperty("nextActionDimension")) + object.nextActionDimension = $root.google.analytics.data.v1alpha.Dimension.toObject(message.nextActionDimension, options); + if (message.limit != null && message.hasOwnProperty("limit")) { + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (options.oneofs) + object._limit = "limit"; + } + return object; + }; + + /** + * Converts this FunnelNextAction to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FunnelNextAction * @instance + * @returns {Object.} JSON object */ - RunReportRequest.prototype.cohortSpec = null; + FunnelNextAction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FunnelNextAction; + })(); + + v1alpha.Funnel = (function() { /** - * RunReportRequest keepEmptyRows. - * @member {boolean} keepEmptyRows - * @memberof google.analytics.data.v1beta.RunReportRequest + * Properties of a Funnel. + * @memberof google.analytics.data.v1alpha + * @interface IFunnel + * @property {boolean|null} [isOpenFunnel] Funnel isOpenFunnel + * @property {Array.|null} [steps] Funnel steps + */ + + /** + * Constructs a new Funnel. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a Funnel. + * @implements IFunnel + * @constructor + * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set + */ + function Funnel(properties) { + this.steps = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Funnel isOpenFunnel. + * @member {boolean} isOpenFunnel + * @memberof google.analytics.data.v1alpha.Funnel * @instance */ - RunReportRequest.prototype.keepEmptyRows = false; + Funnel.prototype.isOpenFunnel = false; /** - * RunReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1beta.RunReportRequest + * Funnel steps. + * @member {Array.} steps + * @memberof google.analytics.data.v1alpha.Funnel * @instance */ - RunReportRequest.prototype.returnPropertyQuota = false; + Funnel.prototype.steps = $util.emptyArray; /** - * Creates a new RunReportRequest instance using the specified properties. + * Creates a new Funnel instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1beta.IRunReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest instance + * @param {google.analytics.data.v1alpha.IFunnel=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Funnel} Funnel instance */ - RunReportRequest.create = function create(properties) { - return new RunReportRequest(properties); + Funnel.create = function create(properties) { + return new Funnel(properties); }; /** - * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. + * Encodes the specified Funnel message. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1beta.IRunReportRequest} message RunReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunReportRequest.encode = function encode(message, writer) { + Funnel.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dateRanges != null && message.dateRanges.length) - for (var i = 0; i < message.dateRanges.length; ++i) - $root.google.analytics.data.v1beta.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 7, wireType 0 =*/56).int64(message.offset); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 8, wireType 0 =*/64).int64(message.limit); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 9, wireType 2 =*/74).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 11, wireType 2 =*/90).string(message.currencyCode); - if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) - $root.google.analytics.data.v1beta.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); - if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) - writer.uint32(/* id 13, wireType 0 =*/104).bool(message.keepEmptyRows); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 14, wireType 0 =*/112).bool(message.returnPropertyQuota); + if (message.isOpenFunnel != null && Object.hasOwnProperty.call(message, "isOpenFunnel")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isOpenFunnel); + if (message.steps != null && message.steps.length) + for (var i = 0; i < message.steps.length; ++i) + $root.google.analytics.data.v1alpha.FunnelStep.encode(message.steps[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. + * Encodes the specified Funnel message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Funnel.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1beta.IRunReportRequest} message RunReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnel} message Funnel message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunReportRequest.encodeDelimited = function encodeDelimited(message, writer) { + Funnel.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunReportRequest message from the specified reader or buffer. + * Decodes a Funnel message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest + * @returns {google.analytics.data.v1alpha.Funnel} Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportRequest.decode = function decode(reader, length) { + Funnel.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunReportRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Funnel(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + message.isOpenFunnel = reader.bool(); break; case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.dateRanges && message.dateRanges.length)) - message.dateRanges = []; - message.dateRanges.push($root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32())); - break; - case 5: - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 6: - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 7: - message.offset = reader.int64(); - break; - case 8: - message.limit = reader.int64(); - break; - case 9: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); - break; - case 10: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); - break; - case 11: - message.currencyCode = reader.string(); - break; - case 12: - message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.decode(reader, reader.uint32()); - break; - case 13: - message.keepEmptyRows = reader.bool(); - break; - case 14: - message.returnPropertyQuota = reader.bool(); + if (!(message.steps && message.steps.length)) + message.steps = []; + message.steps.push($root.google.analytics.data.v1alpha.FunnelStep.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -15461,382 +15317,136 @@ }; /** - * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. + * Decodes a Funnel message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest + * @returns {google.analytics.data.v1alpha.Funnel} Funnel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportRequest.decodeDelimited = function decodeDelimited(reader) { + Funnel.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunReportRequest message. + * Verifies a Funnel message. * @function verify - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunReportRequest.verify = function verify(message) { + Funnel.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { - if (!Array.isArray(message.dateRanges)) - return "dateRanges: array expected"; - for (var i = 0; i < message.dateRanges.length; ++i) { - var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRanges[i]); - if (error) - return "dateRanges." + error; - } - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); - if (error) - return "metricFilter." + error; - } - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) - return "offset: integer|Long expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } - } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); + if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) + if (typeof message.isOpenFunnel !== "boolean") + return "isOpenFunnel: boolean expected"; + if (message.steps != null && message.hasOwnProperty("steps")) { + if (!Array.isArray(message.steps)) + return "steps: array expected"; + for (var i = 0; i < message.steps.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelStep.verify(message.steps[i]); if (error) - return "orderBys." + error; + return "steps." + error; } } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { - var error = $root.google.analytics.data.v1beta.CohortSpec.verify(message.cohortSpec); - if (error) - return "cohortSpec." + error; - } - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - if (typeof message.keepEmptyRows !== "boolean") - return "keepEmptyRows: boolean expected"; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; return null; }; /** - * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a Funnel message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest + * @returns {google.analytics.data.v1alpha.Funnel} Funnel */ - RunReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunReportRequest) + Funnel.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Funnel) return object; - var message = new $root.google.analytics.data.v1beta.RunReportRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); - } - } - if (object.dateRanges) { - if (!Array.isArray(object.dateRanges)) - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dateRanges: array expected"); - message.dateRanges = []; - for (var i = 0; i < object.dateRanges.length; ++i) { - if (typeof object.dateRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dateRanges: object expected"); - message.dateRanges[i] = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRanges[i]); - } - } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); - } - if (object.offset != null) - if ($util.Long) - (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; - else if (typeof object.offset === "string") - message.offset = parseInt(object.offset, 10); - else if (typeof object.offset === "number") - message.offset = object.offset; - else if (typeof object.offset === "object") - message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } - } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); + var message = new $root.google.analytics.data.v1alpha.Funnel(); + if (object.isOpenFunnel != null) + message.isOpenFunnel = Boolean(object.isOpenFunnel); + if (object.steps) { + if (!Array.isArray(object.steps)) + throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: array expected"); + message.steps = []; + for (var i = 0; i < object.steps.length; ++i) { + if (typeof object.steps[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.Funnel.steps: object expected"); + message.steps[i] = $root.google.analytics.data.v1alpha.FunnelStep.fromObject(object.steps[i]); } } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.cohortSpec != null) { - if (typeof object.cohortSpec !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportRequest.cohortSpec: object expected"); - message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.fromObject(object.cohortSpec); - } - if (object.keepEmptyRows != null) - message.keepEmptyRows = Boolean(object.keepEmptyRows); - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); return message; }; /** - * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. + * Creates a plain object from a Funnel message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @static - * @param {google.analytics.data.v1beta.RunReportRequest} message RunReportRequest + * @param {google.analytics.data.v1alpha.Funnel} message Funnel * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunReportRequest.toObject = function toObject(message, options) { + Funnel.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.dateRanges = []; - object.metricAggregations = []; - object.orderBys = []; - } - if (options.defaults) { - object.property = ""; - object.dimensionFilter = null; - object.metricFilter = null; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.offset = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; - object.currencyCode = ""; - object.cohortSpec = null; - object.keepEmptyRows = false; - object.returnPropertyQuota = false; - } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); - } - if (message.dateRanges && message.dateRanges.length) { - object.dateRanges = []; - for (var j = 0; j < message.dateRanges.length; ++j) - object.dateRanges[j] = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRanges[j], options); - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); - if (message.offset != null && message.hasOwnProperty("offset")) - if (typeof message.offset === "number") - object.offset = options.longs === String ? String(message.offset) : message.offset; - else - object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; - } - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); + if (options.arrays || options.defaults) + object.steps = []; + if (options.defaults) + object.isOpenFunnel = false; + if (message.isOpenFunnel != null && message.hasOwnProperty("isOpenFunnel")) + object.isOpenFunnel = message.isOpenFunnel; + if (message.steps && message.steps.length) { + object.steps = []; + for (var j = 0; j < message.steps.length; ++j) + object.steps[j] = $root.google.analytics.data.v1alpha.FunnelStep.toObject(message.steps[j], options); } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - object.currencyCode = message.currencyCode; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) - object.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.toObject(message.cohortSpec, options); - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - object.keepEmptyRows = message.keepEmptyRows; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; return object; }; /** - * Converts this RunReportRequest to JSON. + * Converts this Funnel to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunReportRequest + * @memberof google.analytics.data.v1alpha.Funnel * @instance * @returns {Object.} JSON object */ - RunReportRequest.prototype.toJSON = function toJSON() { + Funnel.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunReportRequest; + return Funnel; })(); - v1beta.RunReportResponse = (function() { + v1alpha.FunnelStep = (function() { /** - * Properties of a RunReportResponse. - * @memberof google.analytics.data.v1beta - * @interface IRunReportResponse - * @property {Array.|null} [dimensionHeaders] RunReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunReportResponse metricHeaders - * @property {Array.|null} [rows] RunReportResponse rows - * @property {Array.|null} [totals] RunReportResponse totals - * @property {Array.|null} [maximums] RunReportResponse maximums - * @property {Array.|null} [minimums] RunReportResponse minimums - * @property {number|null} [rowCount] RunReportResponse rowCount - * @property {google.analytics.data.v1beta.IResponseMetaData|null} [metadata] RunReportResponse metadata - * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunReportResponse propertyQuota - * @property {string|null} [kind] RunReportResponse kind + * Properties of a FunnelStep. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelStep + * @property {string|null} [name] FunnelStep name + * @property {boolean|null} [isDirectlyFollowedBy] FunnelStep isDirectlyFollowedBy + * @property {google.protobuf.IDuration|null} [withinDurationFromPriorStep] FunnelStep withinDurationFromPriorStep + * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [filterExpression] FunnelStep filterExpression */ /** - * Constructs a new RunReportResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunReportResponse. - * @implements IRunReportResponse + * Constructs a new FunnelStep. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelStep. + * @implements IFunnelStep * @constructor - * @param {google.analytics.data.v1beta.IRunReportResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set */ - function RunReportResponse(properties) { - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.totals = []; - this.maximums = []; - this.minimums = []; + function FunnelStep(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -15844,210 +15454,410 @@ } /** - * RunReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelStep name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - RunReportResponse.prototype.dimensionHeaders = $util.emptyArray; + FunnelStep.prototype.name = ""; /** - * RunReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelStep isDirectlyFollowedBy. + * @member {boolean} isDirectlyFollowedBy + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - RunReportResponse.prototype.metricHeaders = $util.emptyArray; + FunnelStep.prototype.isDirectlyFollowedBy = false; /** - * RunReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelStep withinDurationFromPriorStep. + * @member {google.protobuf.IDuration|null|undefined} withinDurationFromPriorStep + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - RunReportResponse.prototype.rows = $util.emptyArray; + FunnelStep.prototype.withinDurationFromPriorStep = null; /** - * RunReportResponse totals. - * @member {Array.} totals - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelStep filterExpression. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} filterExpression + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - RunReportResponse.prototype.totals = $util.emptyArray; + FunnelStep.prototype.filterExpression = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * RunReportResponse maximums. - * @member {Array.} maximums - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelStep _withinDurationFromPriorStep. + * @member {"withinDurationFromPriorStep"|undefined} _withinDurationFromPriorStep + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance */ - RunReportResponse.prototype.maximums = $util.emptyArray; + Object.defineProperty(FunnelStep.prototype, "_withinDurationFromPriorStep", { + get: $util.oneOfGetter($oneOfFields = ["withinDurationFromPriorStep"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * RunReportResponse minimums. - * @member {Array.} minimums - * @memberof google.analytics.data.v1beta.RunReportResponse + * Creates a new FunnelStep instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {google.analytics.data.v1alpha.IFunnelStep=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep instance + */ + FunnelStep.create = function create(properties) { + return new FunnelStep(properties); + }; + + /** + * Encodes the specified FunnelStep message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelStep.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isDirectlyFollowedBy); + if (message.withinDurationFromPriorStep != null && Object.hasOwnProperty.call(message, "withinDurationFromPriorStep")) + $root.google.protobuf.Duration.encode(message.withinDurationFromPriorStep, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.filterExpression != null && Object.hasOwnProperty.call(message, "filterExpression")) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.filterExpression, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FunnelStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelStep.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {google.analytics.data.v1alpha.IFunnelStep} message FunnelStep message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelStep.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FunnelStep message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelStep.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelStep(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.isDirectlyFollowedBy = reader.bool(); + break; + case 3: + message.withinDurationFromPriorStep = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + case 4: + message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FunnelStep message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelStep.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FunnelStep message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FunnelStep.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + if (typeof message.isDirectlyFollowedBy !== "boolean") + return "isDirectlyFollowedBy: boolean expected"; + if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { + properties._withinDurationFromPriorStep = 1; + { + var error = $root.google.protobuf.Duration.verify(message.withinDurationFromPriorStep); + if (error) + return "withinDurationFromPriorStep." + error; + } + } + if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.filterExpression); + if (error) + return "filterExpression." + error; + } + return null; + }; + + /** + * Creates a FunnelStep message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FunnelStep} FunnelStep + */ + FunnelStep.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelStep) + return object; + var message = new $root.google.analytics.data.v1alpha.FunnelStep(); + if (object.name != null) + message.name = String(object.name); + if (object.isDirectlyFollowedBy != null) + message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); + if (object.withinDurationFromPriorStep != null) { + if (typeof object.withinDurationFromPriorStep !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelStep.withinDurationFromPriorStep: object expected"); + message.withinDurationFromPriorStep = $root.google.protobuf.Duration.fromObject(object.withinDurationFromPriorStep); + } + if (object.filterExpression != null) { + if (typeof object.filterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelStep.filterExpression: object expected"); + message.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.filterExpression); + } + return message; + }; + + /** + * Creates a plain object from a FunnelStep message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FunnelStep + * @static + * @param {google.analytics.data.v1alpha.FunnelStep} message FunnelStep + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FunnelStep.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.isDirectlyFollowedBy = false; + object.filterExpression = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; + if (message.withinDurationFromPriorStep != null && message.hasOwnProperty("withinDurationFromPriorStep")) { + object.withinDurationFromPriorStep = $root.google.protobuf.Duration.toObject(message.withinDurationFromPriorStep, options); + if (options.oneofs) + object._withinDurationFromPriorStep = "withinDurationFromPriorStep"; + } + if (message.filterExpression != null && message.hasOwnProperty("filterExpression")) + object.filterExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.filterExpression, options); + return object; + }; + + /** + * Converts this FunnelStep to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FunnelStep * @instance + * @returns {Object.} JSON object */ - RunReportResponse.prototype.minimums = $util.emptyArray; + FunnelStep.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return FunnelStep; + })(); + + v1alpha.FunnelSubReport = (function() { /** - * RunReportResponse rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1beta.RunReportResponse + * Properties of a FunnelSubReport. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelSubReport + * @property {Array.|null} [dimensionHeaders] FunnelSubReport dimensionHeaders + * @property {Array.|null} [metricHeaders] FunnelSubReport metricHeaders + * @property {Array.|null} [rows] FunnelSubReport rows + * @property {google.analytics.data.v1alpha.IFunnelResponseMetadata|null} [metadata] FunnelSubReport metadata + */ + + /** + * Constructs a new FunnelSubReport. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelSubReport. + * @implements IFunnelSubReport + * @constructor + * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set + */ + function FunnelSubReport(properties) { + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FunnelSubReport dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - RunReportResponse.prototype.rowCount = 0; + FunnelSubReport.prototype.dimensionHeaders = $util.emptyArray; /** - * RunReportResponse metadata. - * @member {google.analytics.data.v1beta.IResponseMetaData|null|undefined} metadata - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelSubReport metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - RunReportResponse.prototype.metadata = null; + FunnelSubReport.prototype.metricHeaders = $util.emptyArray; /** - * RunReportResponse propertyQuota. - * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelSubReport rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - RunReportResponse.prototype.propertyQuota = null; + FunnelSubReport.prototype.rows = $util.emptyArray; /** - * RunReportResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1beta.RunReportResponse + * FunnelSubReport metadata. + * @member {google.analytics.data.v1alpha.IFunnelResponseMetadata|null|undefined} metadata + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance */ - RunReportResponse.prototype.kind = ""; + FunnelSubReport.prototype.metadata = null; /** - * Creates a new RunReportResponse instance using the specified properties. + * Creates a new FunnelSubReport instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1beta.IRunReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse instance + * @param {google.analytics.data.v1alpha.IFunnelSubReport=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport instance */ - RunReportResponse.create = function create(properties) { - return new RunReportResponse(properties); + FunnelSubReport.create = function create(properties) { + return new FunnelSubReport(properties); }; /** - * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. + * Encodes the specified FunnelSubReport message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1beta.IRunReportResponse} message RunReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunReportResponse.encode = function encode(message, writer) { + FunnelSubReport.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.dimensionHeaders != null && message.dimensionHeaders.length) for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.google.analytics.data.v1alpha.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.metricHeaders != null && message.metricHeaders.length) for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + $root.google.analytics.data.v1alpha.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.rows != null && message.rows.length) for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.totals != null && message.totals.length) - for (var i = 0; i < message.totals.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.maximums != null && message.maximums.length) - for (var i = 0; i < message.maximums.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.minimums != null && message.minimums.length) - for (var i = 0; i < message.minimums.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); + $root.google.analytics.data.v1alpha.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.analytics.data.v1beta.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.kind); + $root.google.analytics.data.v1alpha.FunnelResponseMetadata.encode(message.metadata, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. + * Encodes the specified FunnelSubReport message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelSubReport.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1beta.IRunReportResponse} message RunReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelSubReport} message FunnelSubReport message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunReportResponse.encodeDelimited = function encodeDelimited(message, writer) { + FunnelSubReport.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunReportResponse message from the specified reader or buffer. + * Decodes a FunnelSubReport message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportResponse.decode = function decode(reader, length) { + FunnelSubReport.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunReportResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: if (!(message.dimensionHeaders && message.dimensionHeaders.length)) message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); + message.dimensionHeaders.push($root.google.analytics.data.v1alpha.DimensionHeader.decode(reader, reader.uint32())); break; case 2: if (!(message.metricHeaders && message.metricHeaders.length)) message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); + message.metricHeaders.push($root.google.analytics.data.v1alpha.MetricHeader.decode(reader, reader.uint32())); break; case 3: if (!(message.rows && message.rows.length)) message.rows = []; - message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + message.rows.push($root.google.analytics.data.v1alpha.Row.decode(reader, reader.uint32())); break; case 4: - if (!(message.totals && message.totals.length)) - message.totals = []; - message.totals.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.maximums && message.maximums.length)) - message.maximums = []; - message.maximums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.minimums && message.minimums.length)) - message.minimums = []; - message.minimums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 7: - message.rowCount = reader.int32(); - break; - case 8: - message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.decode(reader, reader.uint32()); - break; - case 9: - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); - break; - case 10: - message.kind = reader.string(); + message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -16058,37 +15868,37 @@ }; /** - * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. + * Decodes a FunnelSubReport message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunReportResponse.decodeDelimited = function decodeDelimited(reader) { + FunnelSubReport.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunReportResponse message. + * Verifies a FunnelSubReport message. * @function verify - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunReportResponse.verify = function verify(message) { + FunnelSubReport.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { if (!Array.isArray(message.dimensionHeaders)) return "dimensionHeaders: array expected"; for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); + var error = $root.google.analytics.data.v1alpha.DimensionHeader.verify(message.dimensionHeaders[i]); if (error) return "dimensionHeaders." + error; } @@ -16097,7 +15907,7 @@ if (!Array.isArray(message.metricHeaders)) return "metricHeaders: array expected"; for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); + var error = $root.google.analytics.data.v1alpha.MetricHeader.verify(message.metricHeaders[i]); if (error) return "metricHeaders." + error; } @@ -16106,156 +15916,79 @@ if (!Array.isArray(message.rows)) return "rows: array expected"; for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); + var error = $root.google.analytics.data.v1alpha.Row.verify(message.rows[i]); if (error) return "rows." + error; } } - if (message.totals != null && message.hasOwnProperty("totals")) { - if (!Array.isArray(message.totals)) - return "totals: array expected"; - for (var i = 0; i < message.totals.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.totals[i]); - if (error) - return "totals." + error; - } - } - if (message.maximums != null && message.hasOwnProperty("maximums")) { - if (!Array.isArray(message.maximums)) - return "maximums: array expected"; - for (var i = 0; i < message.maximums.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.maximums[i]); - if (error) - return "maximums." + error; - } - } - if (message.minimums != null && message.hasOwnProperty("minimums")) { - if (!Array.isArray(message.minimums)) - return "minimums: array expected"; - for (var i = 0; i < message.minimums.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.minimums[i]); - if (error) - return "minimums." + error; - } - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.analytics.data.v1beta.ResponseMetaData.verify(message.metadata); + var error = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.verify(message.metadata); if (error) return "metadata." + error; } - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); - if (error) - return "propertyQuota." + error; - } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelSubReport message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse + * @returns {google.analytics.data.v1alpha.FunnelSubReport} FunnelSubReport */ - RunReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunReportResponse) + FunnelSubReport.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelSubReport) return object; - var message = new $root.google.analytics.data.v1beta.RunReportResponse(); + var message = new $root.google.analytics.data.v1alpha.FunnelSubReport(); if (object.dimensionHeaders) { if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.dimensionHeaders: array expected"); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: array expected"); message.dimensionHeaders = []; for (var i = 0; i < object.dimensionHeaders.length; ++i) { if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1alpha.DimensionHeader.fromObject(object.dimensionHeaders[i]); } } if (object.metricHeaders) { if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metricHeaders: array expected"); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: array expected"); message.metricHeaders = []; for (var i = 0; i < object.metricHeaders.length; ++i) { if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1alpha.MetricHeader.fromObject(object.metricHeaders[i]); } } if (object.rows) { if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.rows: array expected"); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: array expected"); message.rows = []; for (var i = 0; i < object.rows.length; ++i) { if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); - } - } - if (object.totals) { - if (!Array.isArray(object.totals)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.totals: array expected"); - message.totals = []; - for (var i = 0; i < object.totals.length; ++i) { - if (typeof object.totals[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.totals: object expected"); - message.totals[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.totals[i]); - } - } - if (object.maximums) { - if (!Array.isArray(object.maximums)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.maximums: array expected"); - message.maximums = []; - for (var i = 0; i < object.maximums.length; ++i) { - if (typeof object.maximums[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.maximums: object expected"); - message.maximums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.maximums[i]); - } - } - if (object.minimums) { - if (!Array.isArray(object.minimums)) - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.minimums: array expected"); - message.minimums = []; - for (var i = 0; i < object.minimums.length; ++i) { - if (typeof object.minimums[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.minimums: object expected"); - message.minimums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.minimums[i]); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1alpha.Row.fromObject(object.rows[i]); } } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metadata: object expected"); - message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.fromObject(object.metadata); - } - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1beta.RunReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); + throw TypeError(".google.analytics.data.v1alpha.FunnelSubReport.metadata: object expected"); + message.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.fromObject(object.metadata); } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. + * Creates a plain object from a FunnelSubReport message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @static - * @param {google.analytics.data.v1beta.RunReportResponse} message RunReportResponse + * @param {google.analytics.data.v1alpha.FunnelSubReport} message FunnelSubReport * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunReportResponse.toObject = function toObject(message, options) { + FunnelSubReport.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; @@ -16263,103 +15996,62 @@ object.dimensionHeaders = []; object.metricHeaders = []; object.rows = []; - object.totals = []; - object.maximums = []; - object.minimums = []; } - if (options.defaults) { - object.rowCount = 0; + if (options.defaults) object.metadata = null; - object.propertyQuota = null; - object.kind = ""; - } if (message.dimensionHeaders && message.dimensionHeaders.length) { object.dimensionHeaders = []; for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); + object.dimensionHeaders[j] = $root.google.analytics.data.v1alpha.DimensionHeader.toObject(message.dimensionHeaders[j], options); } if (message.metricHeaders && message.metricHeaders.length) { object.metricHeaders = []; for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); + object.metricHeaders[j] = $root.google.analytics.data.v1alpha.MetricHeader.toObject(message.metricHeaders[j], options); } if (message.rows && message.rows.length) { object.rows = []; for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); - } - if (message.totals && message.totals.length) { - object.totals = []; - for (var j = 0; j < message.totals.length; ++j) - object.totals[j] = $root.google.analytics.data.v1beta.Row.toObject(message.totals[j], options); - } - if (message.maximums && message.maximums.length) { - object.maximums = []; - for (var j = 0; j < message.maximums.length; ++j) - object.maximums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.maximums[j], options); - } - if (message.minimums && message.minimums.length) { - object.minimums = []; - for (var j = 0; j < message.minimums.length; ++j) - object.minimums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.minimums[j], options); + object.rows[j] = $root.google.analytics.data.v1alpha.Row.toObject(message.rows[j], options); } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.toObject(message.metadata, options); - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + object.metadata = $root.google.analytics.data.v1alpha.FunnelResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this RunReportResponse to JSON. + * Converts this FunnelSubReport to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunReportResponse + * @memberof google.analytics.data.v1alpha.FunnelSubReport * @instance * @returns {Object.} JSON object */ - RunReportResponse.prototype.toJSON = function toJSON() { + FunnelSubReport.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunReportResponse; + return FunnelSubReport; })(); - v1beta.RunPivotReportRequest = (function() { + v1alpha.UserSegment = (function() { /** - * Properties of a RunPivotReportRequest. - * @memberof google.analytics.data.v1beta - * @interface IRunPivotReportRequest - * @property {string|null} [property] RunPivotReportRequest property - * @property {Array.|null} [dimensions] RunPivotReportRequest dimensions - * @property {Array.|null} [metrics] RunPivotReportRequest metrics - * @property {Array.|null} [dateRanges] RunPivotReportRequest dateRanges - * @property {Array.|null} [pivots] RunPivotReportRequest pivots - * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunPivotReportRequest dimensionFilter - * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunPivotReportRequest metricFilter - * @property {string|null} [currencyCode] RunPivotReportRequest currencyCode - * @property {google.analytics.data.v1beta.ICohortSpec|null} [cohortSpec] RunPivotReportRequest cohortSpec - * @property {boolean|null} [keepEmptyRows] RunPivotReportRequest keepEmptyRows - * @property {boolean|null} [returnPropertyQuota] RunPivotReportRequest returnPropertyQuota + * Properties of a UserSegment. + * @memberof google.analytics.data.v1alpha + * @interface IUserSegment + * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userInclusionCriteria] UserSegment userInclusionCriteria + * @property {google.analytics.data.v1alpha.IUserSegmentExclusion|null} [exclusion] UserSegment exclusion */ /** - * Constructs a new RunPivotReportRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunPivotReportRequest. - * @implements IRunPivotReportRequest + * Constructs a new UserSegment. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSegment. + * @implements IUserSegment * @constructor - * @param {google.analytics.data.v1beta.IRunPivotReportRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set */ - function RunPivotReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.dateRanges = []; - this.pivots = []; + function UserSegment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -16367,217 +16059,316 @@ } /** - * RunPivotReportRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * UserSegment userInclusionCriteria. + * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userInclusionCriteria + * @memberof google.analytics.data.v1alpha.UserSegment * @instance */ - RunPivotReportRequest.prototype.property = ""; + UserSegment.prototype.userInclusionCriteria = null; /** - * RunPivotReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * UserSegment exclusion. + * @member {google.analytics.data.v1alpha.IUserSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.UserSegment * @instance */ - RunPivotReportRequest.prototype.dimensions = $util.emptyArray; + UserSegment.prototype.exclusion = null; /** - * RunPivotReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Creates a new UserSegment instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {google.analytics.data.v1alpha.IUserSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment instance */ - RunPivotReportRequest.prototype.metrics = $util.emptyArray; + UserSegment.create = function create(properties) { + return new UserSegment(properties); + }; /** - * RunPivotReportRequest dateRanges. - * @member {Array.} dateRanges - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Encodes the specified UserSegment message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunPivotReportRequest.prototype.dateRanges = $util.emptyArray; + UserSegment.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.userInclusionCriteria != null && Object.hasOwnProperty.call(message, "userInclusionCriteria")) + $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.UserSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; /** - * RunPivotReportRequest pivots. - * @member {Array.} pivots - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Encodes the specified UserSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegment.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {google.analytics.data.v1alpha.IUserSegment} message UserSegment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunPivotReportRequest.prototype.pivots = $util.emptyArray; + UserSegment.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * RunPivotReportRequest dimensionFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Decodes a UserSegment message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportRequest.prototype.dimensionFilter = null; + UserSegment.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegment(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); + break; + case 2: + message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * RunPivotReportRequest metricFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Decodes a UserSegment message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportRequest.prototype.metricFilter = null; + UserSegment.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * RunPivotReportRequest currencyCode. - * @member {string} currencyCode - * @memberof google.analytics.data.v1beta.RunPivotReportRequest - * @instance + * Verifies a UserSegment message. + * @function verify + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunPivotReportRequest.prototype.currencyCode = ""; + UserSegment.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userInclusionCriteria); + if (error) + return "userInclusionCriteria." + error; + } + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentExclusion.verify(message.exclusion); + if (error) + return "exclusion." + error; + } + return null; + }; /** - * RunPivotReportRequest cohortSpec. - * @member {google.analytics.data.v1beta.ICohortSpec|null|undefined} cohortSpec - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * Creates a UserSegment message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.UserSegment} UserSegment + */ + UserSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegment) + return object; + var message = new $root.google.analytics.data.v1alpha.UserSegment(); + if (object.userInclusionCriteria != null) { + if (typeof object.userInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegment.userInclusionCriteria: object expected"); + message.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userInclusionCriteria); + } + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.fromObject(object.exclusion); + } + return message; + }; + + /** + * Creates a plain object from a UserSegment message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.UserSegment + * @static + * @param {google.analytics.data.v1alpha.UserSegment} message UserSegment + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + UserSegment.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.userInclusionCriteria = null; + object.exclusion = null; + } + if (message.userInclusionCriteria != null && message.hasOwnProperty("userInclusionCriteria")) + object.userInclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.UserSegmentExclusion.toObject(message.exclusion, options); + return object; + }; + + /** + * Converts this UserSegment to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.UserSegment * @instance + * @returns {Object.} JSON object */ - RunPivotReportRequest.prototype.cohortSpec = null; + UserSegment.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return UserSegment; + })(); + + v1alpha.UserSegmentCriteria = (function() { /** - * RunPivotReportRequest keepEmptyRows. - * @member {boolean} keepEmptyRows - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * Properties of a UserSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @interface IUserSegmentCriteria + * @property {Array.|null} [andConditionGroups] UserSegmentCriteria andConditionGroups + * @property {Array.|null} [andSequenceGroups] UserSegmentCriteria andSequenceGroups + */ + + /** + * Constructs a new UserSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSegmentCriteria. + * @implements IUserSegmentCriteria + * @constructor + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set + */ + function UserSegmentCriteria(properties) { + this.andConditionGroups = []; + this.andSequenceGroups = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * UserSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance */ - RunPivotReportRequest.prototype.keepEmptyRows = false; + UserSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * RunPivotReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * UserSegmentCriteria andSequenceGroups. + * @member {Array.} andSequenceGroups + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance */ - RunPivotReportRequest.prototype.returnPropertyQuota = false; + UserSegmentCriteria.prototype.andSequenceGroups = $util.emptyArray; /** - * Creates a new RunPivotReportRequest instance using the specified properties. + * Creates a new UserSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IRunPivotReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest instance + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria instance */ - RunPivotReportRequest.create = function create(properties) { - return new RunPivotReportRequest(properties); + UserSegmentCriteria.create = function create(properties) { + return new UserSegmentCriteria(properties); }; /** - * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. + * Encodes the specified UserSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunPivotReportRequest.encode = function encode(message, writer) { + UserSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dateRanges != null && message.dateRanges.length) - for (var i = 0; i < message.dateRanges.length; ++i) - $root.google.analytics.data.v1beta.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.pivots != null && message.pivots.length) - for (var i = 0; i < message.pivots.length; ++i) - $root.google.analytics.data.v1beta.Pivot.encode(message.pivots[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 8, wireType 2 =*/66).string(message.currencyCode); - if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) - $root.google.analytics.data.v1beta.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) - writer.uint32(/* id 10, wireType 0 =*/80).bool(message.keepEmptyRows); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 11, wireType 0 =*/88).bool(message.returnPropertyQuota); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.andSequenceGroups != null && message.andSequenceGroups.length) + for (var i = 0; i < message.andSequenceGroups.length; ++i) + $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.encode(message.andSequenceGroups[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. + * Encodes the specified UserSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentCriteria} message UserSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunPivotReportRequest.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer. + * Decodes a UserSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportRequest.decode = function decode(reader, length) { + UserSegmentCriteria.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunPivotReportRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.UserSegmentConditionGroup.decode(reader, reader.uint32())); break; case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.dateRanges && message.dateRanges.length)) - message.dateRanges = []; - message.dateRanges.push($root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.pivots && message.pivots.length)) - message.pivots = []; - message.pivots.push($root.google.analytics.data.v1beta.Pivot.decode(reader, reader.uint32())); - break; - case 6: - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 7: - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 8: - message.currencyCode = reader.string(); - break; - case 9: - message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.decode(reader, reader.uint32()); - break; - case 10: - message.keepEmptyRows = reader.bool(); - break; - case 11: - message.returnPropertyQuota = reader.bool(); + if (!(message.andSequenceGroups && message.andSequenceGroups.length)) + message.andSequenceGroups = []; + message.andSequenceGroups.push($root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -16588,285 +16379,169 @@ }; /** - * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportRequest.decodeDelimited = function decodeDelimited(reader) { + UserSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunPivotReportRequest message. + * Verifies a UserSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunPivotReportRequest.verify = function verify(message) { + UserSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; - } - } - if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { - if (!Array.isArray(message.dateRanges)) - return "dateRanges: array expected"; - for (var i = 0; i < message.dateRanges.length; ++i) { - var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRanges[i]); + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.verify(message.andConditionGroups[i]); if (error) - return "dateRanges." + error; + return "andConditionGroups." + error; } } - if (message.pivots != null && message.hasOwnProperty("pivots")) { - if (!Array.isArray(message.pivots)) - return "pivots: array expected"; - for (var i = 0; i < message.pivots.length; ++i) { - var error = $root.google.analytics.data.v1beta.Pivot.verify(message.pivots[i]); + if (message.andSequenceGroups != null && message.hasOwnProperty("andSequenceGroups")) { + if (!Array.isArray(message.andSequenceGroups)) + return "andSequenceGroups: array expected"; + for (var i = 0; i < message.andSequenceGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify(message.andSequenceGroups[i]); if (error) - return "pivots." + error; + return "andSequenceGroups." + error; } } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); - if (error) - return "metricFilter." + error; - } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { - var error = $root.google.analytics.data.v1beta.CohortSpec.verify(message.cohortSpec); - if (error) - return "cohortSpec." + error; - } - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - if (typeof message.keepEmptyRows !== "boolean") - return "keepEmptyRows: boolean expected"; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; return null; }; /** - * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest + * @returns {google.analytics.data.v1alpha.UserSegmentCriteria} UserSegmentCriteria */ - RunPivotReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunPivotReportRequest) + UserSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1beta.RunPivotReportRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); - } - } - if (object.dateRanges) { - if (!Array.isArray(object.dateRanges)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dateRanges: array expected"); - message.dateRanges = []; - for (var i = 0; i < object.dateRanges.length; ++i) { - if (typeof object.dateRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dateRanges: object expected"); - message.dateRanges[i] = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRanges[i]); + var message = new $root.google.analytics.data.v1alpha.UserSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + } + } + if (object.andSequenceGroups) { + if (!Array.isArray(object.andSequenceGroups)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: array expected"); + message.andSequenceGroups = []; + for (var i = 0; i < object.andSequenceGroups.length; ++i) { + if (typeof object.andSequenceGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentCriteria.andSequenceGroups: object expected"); + message.andSequenceGroups[i] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.fromObject(object.andSequenceGroups[i]); } } - if (object.pivots) { - if (!Array.isArray(object.pivots)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.pivots: array expected"); - message.pivots = []; - for (var i = 0; i < object.pivots.length; ++i) { - if (typeof object.pivots[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.pivots: object expected"); - message.pivots[i] = $root.google.analytics.data.v1beta.Pivot.fromObject(object.pivots[i]); - } - } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); - } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.cohortSpec != null) { - if (typeof object.cohortSpec !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.cohortSpec: object expected"); - message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.fromObject(object.cohortSpec); - } - if (object.keepEmptyRows != null) - message.keepEmptyRows = Boolean(object.keepEmptyRows); - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); return message; }; /** - * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @static - * @param {google.analytics.data.v1beta.RunPivotReportRequest} message RunPivotReportRequest + * @param {google.analytics.data.v1alpha.UserSegmentCriteria} message UserSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunPivotReportRequest.toObject = function toObject(message, options) { + UserSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.dateRanges = []; - object.pivots = []; - } - if (options.defaults) { - object.property = ""; - object.dimensionFilter = null; - object.metricFilter = null; - object.currencyCode = ""; - object.cohortSpec = null; - object.keepEmptyRows = false; - object.returnPropertyQuota = false; + object.andConditionGroups = []; + object.andSequenceGroups = []; } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); - } - if (message.dateRanges && message.dateRanges.length) { - object.dateRanges = []; - for (var j = 0; j < message.dateRanges.length; ++j) - object.dateRanges[j] = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRanges[j], options); + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentConditionGroup.toObject(message.andConditionGroups[j], options); } - if (message.pivots && message.pivots.length) { - object.pivots = []; - for (var j = 0; j < message.pivots.length; ++j) - object.pivots[j] = $root.google.analytics.data.v1beta.Pivot.toObject(message.pivots[j], options); + if (message.andSequenceGroups && message.andSequenceGroups.length) { + object.andSequenceGroups = []; + for (var j = 0; j < message.andSequenceGroups.length; ++j) + object.andSequenceGroups[j] = $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup.toObject(message.andSequenceGroups[j], options); } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) - object.currencyCode = message.currencyCode; - if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) - object.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.toObject(message.cohortSpec, options); - if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) - object.keepEmptyRows = message.keepEmptyRows; - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; return object; }; /** - * Converts this RunPivotReportRequest to JSON. + * Converts this UserSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @memberof google.analytics.data.v1alpha.UserSegmentCriteria * @instance * @returns {Object.} JSON object */ - RunPivotReportRequest.prototype.toJSON = function toJSON() { + UserSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunPivotReportRequest; + return UserSegmentCriteria; })(); - v1beta.RunPivotReportResponse = (function() { + /** + * UserCriteriaScoping enum. + * @name google.analytics.data.v1alpha.UserCriteriaScoping + * @enum {number} + * @property {number} USER_CRITERIA_SCOPING_UNSPECIFIED=0 USER_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} USER_CRITERIA_WITHIN_SAME_EVENT=1 USER_CRITERIA_WITHIN_SAME_EVENT value + * @property {number} USER_CRITERIA_WITHIN_SAME_SESSION=2 USER_CRITERIA_WITHIN_SAME_SESSION value + * @property {number} USER_CRITERIA_ACROSS_ALL_SESSIONS=3 USER_CRITERIA_ACROSS_ALL_SESSIONS value + */ + v1alpha.UserCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "USER_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "USER_CRITERIA_WITHIN_SAME_EVENT"] = 1; + values[valuesById[2] = "USER_CRITERIA_WITHIN_SAME_SESSION"] = 2; + values[valuesById[3] = "USER_CRITERIA_ACROSS_ALL_SESSIONS"] = 3; + return values; + })(); + + v1alpha.UserSegmentConditionGroup = (function() { /** - * Properties of a RunPivotReportResponse. - * @memberof google.analytics.data.v1beta - * @interface IRunPivotReportResponse - * @property {Array.|null} [pivotHeaders] RunPivotReportResponse pivotHeaders - * @property {Array.|null} [dimensionHeaders] RunPivotReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunPivotReportResponse metricHeaders - * @property {Array.|null} [rows] RunPivotReportResponse rows - * @property {Array.|null} [aggregates] RunPivotReportResponse aggregates - * @property {google.analytics.data.v1beta.IResponseMetaData|null} [metadata] RunPivotReportResponse metadata - * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunPivotReportResponse propertyQuota - * @property {string|null} [kind] RunPivotReportResponse kind + * Properties of a UserSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @interface IUserSegmentConditionGroup + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [conditionScoping] UserSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new RunPivotReportResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunPivotReportResponse. - * @implements IRunPivotReportResponse + * Constructs a new UserSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSegmentConditionGroup. + * @implements IUserSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1beta.IRunPivotReportResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set */ - function RunPivotReportResponse(properties) { - this.pivotHeaders = []; - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.aggregates = []; + function UserSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -16874,181 +16549,88 @@ } /** - * RunPivotReportResponse pivotHeaders. - * @member {Array.} pivotHeaders - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.pivotHeaders = $util.emptyArray; - - /** - * RunPivotReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.dimensionHeaders = $util.emptyArray; - - /** - * RunPivotReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.metricHeaders = $util.emptyArray; - - /** - * RunPivotReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.rows = $util.emptyArray; - - /** - * RunPivotReportResponse aggregates. - * @member {Array.} aggregates - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.aggregates = $util.emptyArray; - - /** - * RunPivotReportResponse metadata. - * @member {google.analytics.data.v1beta.IResponseMetaData|null|undefined} metadata - * @memberof google.analytics.data.v1beta.RunPivotReportResponse - * @instance - */ - RunPivotReportResponse.prototype.metadata = null; - - /** - * RunPivotReportResponse propertyQuota. - * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * UserSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance */ - RunPivotReportResponse.prototype.propertyQuota = null; + UserSegmentConditionGroup.prototype.conditionScoping = 0; /** - * RunPivotReportResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * UserSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance */ - RunPivotReportResponse.prototype.kind = ""; + UserSegmentConditionGroup.prototype.segmentFilterExpression = null; /** - * Creates a new RunPivotReportResponse instance using the specified properties. + * Creates a new UserSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunPivotReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse instance + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup instance */ - RunPivotReportResponse.create = function create(properties) { - return new RunPivotReportResponse(properties); + UserSegmentConditionGroup.create = function create(properties) { + return new UserSegmentConditionGroup(properties); }; /** - * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. + * Encodes the specified UserSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunPivotReportResponse.encode = function encode(message, writer) { + UserSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.pivotHeaders != null && message.pivotHeaders.length) - for (var i = 0; i < message.pivotHeaders.length; ++i) - $root.google.analytics.data.v1beta.PivotHeader.encode(message.pivotHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.aggregates != null && message.aggregates.length) - for (var i = 0; i < message.aggregates.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.aggregates[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.google.analytics.data.v1beta.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 8, wireType 2 =*/66).string(message.kind); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. + * Encodes the specified UserSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentConditionGroup} message UserSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunPivotReportResponse.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportResponse.decode = function decode(reader, length) { + UserSegmentConditionGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunPivotReportResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.pivotHeaders && message.pivotHeaders.length)) - message.pivotHeaders = []; - message.pivotHeaders.push($root.google.analytics.data.v1beta.PivotHeader.decode(reader, reader.uint32())); + message.conditionScoping = reader.int32(); break; case 2: - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.aggregates && message.aggregates.length)) - message.aggregates = []; - message.aggregates.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 6: - message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.decode(reader, reader.uint32()); - break; - case 7: - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); - break; - case 8: - message.kind = reader.string(); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -17059,263 +16641,147 @@ }; /** - * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunPivotReportResponse.decodeDelimited = function decodeDelimited(reader) { + UserSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunPivotReportResponse message. + * Verifies a UserSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunPivotReportResponse.verify = function verify(message) { + UserSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.pivotHeaders != null && message.hasOwnProperty("pivotHeaders")) { - if (!Array.isArray(message.pivotHeaders)) - return "pivotHeaders: array expected"; - for (var i = 0; i < message.pivotHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.PivotHeader.verify(message.pivotHeaders[i]); - if (error) - return "pivotHeaders." + error; - } - } - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - if (message.rows != null && message.hasOwnProperty("rows")) { - if (!Array.isArray(message.rows)) - return "rows: array expected"; - for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); - if (error) - return "rows." + error; - } - } - if (message.aggregates != null && message.hasOwnProperty("aggregates")) { - if (!Array.isArray(message.aggregates)) - return "aggregates: array expected"; - for (var i = 0; i < message.aggregates.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.aggregates[i]); - if (error) - return "aggregates." + error; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { + default: + return "conditionScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.analytics.data.v1beta.ResponseMetaData.verify(message.metadata); - if (error) - return "metadata." + error; - } - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); if (error) - return "propertyQuota." + error; + return "segmentFilterExpression." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse + * @returns {google.analytics.data.v1alpha.UserSegmentConditionGroup} UserSegmentConditionGroup */ - RunPivotReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunPivotReportResponse) + UserSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1beta.RunPivotReportResponse(); - if (object.pivotHeaders) { - if (!Array.isArray(object.pivotHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.pivotHeaders: array expected"); - message.pivotHeaders = []; - for (var i = 0; i < object.pivotHeaders.length; ++i) { - if (typeof object.pivotHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.pivotHeaders: object expected"); - message.pivotHeaders[i] = $root.google.analytics.data.v1beta.PivotHeader.fromObject(object.pivotHeaders[i]); - } - } - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } - } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); - } - } - if (object.aggregates) { - if (!Array.isArray(object.aggregates)) - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.aggregates: array expected"); - message.aggregates = []; - for (var i = 0; i < object.aggregates.length; ++i) { - if (typeof object.aggregates[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.aggregates: object expected"); - message.aggregates[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.aggregates[i]); - } - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metadata: object expected"); - message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.fromObject(object.metadata); + var message = new $root.google.analytics.data.v1alpha.UserSegmentConditionGroup(); + switch (object.conditionScoping) { + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.conditionScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.conditionScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.conditionScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.conditionScoping = 3; + break; } - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.RunPivotReportResponse} message RunPivotReportResponse + * @param {google.analytics.data.v1alpha.UserSegmentConditionGroup} message UserSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunPivotReportResponse.toObject = function toObject(message, options) { + UserSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.pivotHeaders = []; - object.dimensionHeaders = []; - object.metricHeaders = []; - object.rows = []; - object.aggregates = []; - } if (options.defaults) { - object.metadata = null; - object.propertyQuota = null; - object.kind = ""; - } - if (message.pivotHeaders && message.pivotHeaders.length) { - object.pivotHeaders = []; - for (var j = 0; j < message.pivotHeaders.length; ++j) - object.pivotHeaders[j] = $root.google.analytics.data.v1beta.PivotHeader.toObject(message.pivotHeaders[j], options); - } - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); - } - if (message.aggregates && message.aggregates.length) { - object.aggregates = []; - for (var j = 0; j < message.aggregates.length; ++j) - object.aggregates[j] = $root.google.analytics.data.v1beta.Row.toObject(message.aggregates[j], options); + object.conditionScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.toObject(message.metadata, options); - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this RunPivotReportResponse to JSON. + * Converts this UserSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @memberof google.analytics.data.v1alpha.UserSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - RunPivotReportResponse.prototype.toJSON = function toJSON() { + UserSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunPivotReportResponse; + return UserSegmentConditionGroup; })(); - v1beta.BatchRunReportsRequest = (function() { + v1alpha.UserSegmentSequenceGroup = (function() { /** - * Properties of a BatchRunReportsRequest. - * @memberof google.analytics.data.v1beta - * @interface IBatchRunReportsRequest - * @property {string|null} [property] BatchRunReportsRequest property - * @property {Array.|null} [requests] BatchRunReportsRequest requests + * Properties of a UserSegmentSequenceGroup. + * @memberof google.analytics.data.v1alpha + * @interface IUserSegmentSequenceGroup + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [sequenceScoping] UserSegmentSequenceGroup sequenceScoping + * @property {google.protobuf.IDuration|null} [sequenceMaximumDuration] UserSegmentSequenceGroup sequenceMaximumDuration + * @property {Array.|null} [userSequenceSteps] UserSegmentSequenceGroup userSequenceSteps */ /** - * Constructs a new BatchRunReportsRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a BatchRunReportsRequest. - * @implements IBatchRunReportsRequest + * Constructs a new UserSegmentSequenceGroup. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSegmentSequenceGroup. + * @implements IUserSegmentSequenceGroup * @constructor - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set */ - function BatchRunReportsRequest(properties) { - this.requests = []; + function UserSegmentSequenceGroup(properties) { + this.userSequenceSteps = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17323,91 +16789,104 @@ } /** - * BatchRunReportsRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * UserSegmentSequenceGroup sequenceScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} sequenceScoping + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance */ - BatchRunReportsRequest.prototype.property = ""; + UserSegmentSequenceGroup.prototype.sequenceScoping = 0; /** - * BatchRunReportsRequest requests. - * @member {Array.} requests - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * UserSegmentSequenceGroup sequenceMaximumDuration. + * @member {google.protobuf.IDuration|null|undefined} sequenceMaximumDuration + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance */ - BatchRunReportsRequest.prototype.requests = $util.emptyArray; + UserSegmentSequenceGroup.prototype.sequenceMaximumDuration = null; /** - * Creates a new BatchRunReportsRequest instance using the specified properties. + * UserSegmentSequenceGroup userSequenceSteps. + * @member {Array.} userSequenceSteps + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup + * @instance + */ + UserSegmentSequenceGroup.prototype.userSequenceSteps = $util.emptyArray; + + /** + * Creates a new UserSegmentSequenceGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest instance + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup instance */ - BatchRunReportsRequest.create = function create(properties) { - return new BatchRunReportsRequest(properties); + UserSegmentSequenceGroup.create = function create(properties) { + return new UserSegmentSequenceGroup(properties); }; /** - * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. + * Encodes the specified UserSegmentSequenceGroup message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunReportsRequest.encode = function encode(message, writer) { + UserSegmentSequenceGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.requests != null && message.requests.length) - for (var i = 0; i < message.requests.length; ++i) - $root.google.analytics.data.v1beta.RunReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.sequenceScoping != null && Object.hasOwnProperty.call(message, "sequenceScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sequenceScoping); + if (message.sequenceMaximumDuration != null && Object.hasOwnProperty.call(message, "sequenceMaximumDuration")) + $root.google.protobuf.Duration.encode(message.sequenceMaximumDuration, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.userSequenceSteps != null && message.userSequenceSteps.length) + for (var i = 0; i < message.userSequenceSteps.length; ++i) + $root.google.analytics.data.v1alpha.UserSequenceStep.encode(message.userSequenceSteps[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. + * Encodes the specified UserSegmentSequenceGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentSequenceGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentSequenceGroup} message UserSegmentSequenceGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentSequenceGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunReportsRequest.decode = function decode(reader, length) { + UserSegmentSequenceGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunReportsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + message.sequenceScoping = reader.int32(); break; case 2: - if (!(message.requests && message.requests.length)) - message.requests = []; - message.requests.push($root.google.analytics.data.v1beta.RunReportRequest.decode(reader, reader.uint32())); + message.sequenceMaximumDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + case 3: + if (!(message.userSequenceSteps && message.userSequenceSteps.length)) + message.userSequenceSteps = []; + message.userSequenceSteps.push($root.google.analytics.data.v1alpha.UserSequenceStep.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -17418,135 +16897,172 @@ }; /** - * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentSequenceGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunReportsRequest.decodeDelimited = function decodeDelimited(reader) { + UserSegmentSequenceGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a BatchRunReportsRequest message. + * Verifies a UserSegmentSequenceGroup message. * @function verify - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRunReportsRequest.verify = function verify(message) { + UserSegmentSequenceGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.requests != null && message.hasOwnProperty("requests")) { - if (!Array.isArray(message.requests)) - return "requests: array expected"; - for (var i = 0; i < message.requests.length; ++i) { - var error = $root.google.analytics.data.v1beta.RunReportRequest.verify(message.requests[i]); + if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) + switch (message.sequenceScoping) { + default: + return "sequenceScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) { + var error = $root.google.protobuf.Duration.verify(message.sequenceMaximumDuration); + if (error) + return "sequenceMaximumDuration." + error; + } + if (message.userSequenceSteps != null && message.hasOwnProperty("userSequenceSteps")) { + if (!Array.isArray(message.userSequenceSteps)) + return "userSequenceSteps: array expected"; + for (var i = 0; i < message.userSequenceSteps.length; ++i) { + var error = $root.google.analytics.data.v1alpha.UserSequenceStep.verify(message.userSequenceSteps[i]); if (error) - return "requests." + error; + return "userSequenceSteps." + error; } } return null; }; /** - * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentSequenceGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentSequenceGroup} UserSegmentSequenceGroup */ - BatchRunReportsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.BatchRunReportsRequest) + UserSegmentSequenceGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup) return object; - var message = new $root.google.analytics.data.v1beta.BatchRunReportsRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.requests) { - if (!Array.isArray(object.requests)) - throw TypeError(".google.analytics.data.v1beta.BatchRunReportsRequest.requests: array expected"); - message.requests = []; - for (var i = 0; i < object.requests.length; ++i) { - if (typeof object.requests[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.BatchRunReportsRequest.requests: object expected"); - message.requests[i] = $root.google.analytics.data.v1beta.RunReportRequest.fromObject(object.requests[i]); + var message = new $root.google.analytics.data.v1alpha.UserSegmentSequenceGroup(); + switch (object.sequenceScoping) { + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.sequenceScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.sequenceScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.sequenceScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.sequenceScoping = 3; + break; + } + if (object.sequenceMaximumDuration != null) { + if (typeof object.sequenceMaximumDuration !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.sequenceMaximumDuration: object expected"); + message.sequenceMaximumDuration = $root.google.protobuf.Duration.fromObject(object.sequenceMaximumDuration); + } + if (object.userSequenceSteps) { + if (!Array.isArray(object.userSequenceSteps)) + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: array expected"); + message.userSequenceSteps = []; + for (var i = 0; i < object.userSequenceSteps.length; ++i) { + if (typeof object.userSequenceSteps[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentSequenceGroup.userSequenceSteps: object expected"); + message.userSequenceSteps[i] = $root.google.analytics.data.v1alpha.UserSequenceStep.fromObject(object.userSequenceSteps[i]); } } return message; }; /** - * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentSequenceGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @static - * @param {google.analytics.data.v1beta.BatchRunReportsRequest} message BatchRunReportsRequest + * @param {google.analytics.data.v1alpha.UserSegmentSequenceGroup} message UserSegmentSequenceGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BatchRunReportsRequest.toObject = function toObject(message, options) { + UserSegmentSequenceGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.requests = []; - if (options.defaults) - object.property = ""; - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.requests && message.requests.length) { - object.requests = []; - for (var j = 0; j < message.requests.length; ++j) - object.requests[j] = $root.google.analytics.data.v1beta.RunReportRequest.toObject(message.requests[j], options); + object.userSequenceSteps = []; + if (options.defaults) { + object.sequenceScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.sequenceMaximumDuration = null; + } + if (message.sequenceScoping != null && message.hasOwnProperty("sequenceScoping")) + object.sequenceScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.sequenceScoping] : message.sequenceScoping; + if (message.sequenceMaximumDuration != null && message.hasOwnProperty("sequenceMaximumDuration")) + object.sequenceMaximumDuration = $root.google.protobuf.Duration.toObject(message.sequenceMaximumDuration, options); + if (message.userSequenceSteps && message.userSequenceSteps.length) { + object.userSequenceSteps = []; + for (var j = 0; j < message.userSequenceSteps.length; ++j) + object.userSequenceSteps[j] = $root.google.analytics.data.v1alpha.UserSequenceStep.toObject(message.userSequenceSteps[j], options); } return object; }; /** - * Converts this BatchRunReportsRequest to JSON. + * Converts this UserSegmentSequenceGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.BatchRunReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentSequenceGroup * @instance * @returns {Object.} JSON object */ - BatchRunReportsRequest.prototype.toJSON = function toJSON() { + UserSegmentSequenceGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return BatchRunReportsRequest; + return UserSegmentSequenceGroup; })(); - v1beta.BatchRunReportsResponse = (function() { + v1alpha.UserSequenceStep = (function() { /** - * Properties of a BatchRunReportsResponse. - * @memberof google.analytics.data.v1beta - * @interface IBatchRunReportsResponse - * @property {Array.|null} [reports] BatchRunReportsResponse reports - * @property {string|null} [kind] BatchRunReportsResponse kind + * Properties of a UserSequenceStep. + * @memberof google.analytics.data.v1alpha + * @interface IUserSequenceStep + * @property {boolean|null} [isDirectlyFollowedBy] UserSequenceStep isDirectlyFollowedBy + * @property {google.analytics.data.v1alpha.UserCriteriaScoping|null} [stepScoping] UserSequenceStep stepScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] UserSequenceStep segmentFilterExpression */ /** - * Constructs a new BatchRunReportsResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a BatchRunReportsResponse. - * @implements IBatchRunReportsResponse + * Constructs a new UserSequenceStep. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSequenceStep. + * @implements IUserSequenceStep * @constructor - * @param {google.analytics.data.v1beta.IBatchRunReportsResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set */ - function BatchRunReportsResponse(properties) { - this.reports = []; + function UserSequenceStep(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17554,91 +17070,101 @@ } /** - * BatchRunReportsResponse reports. - * @member {Array.} reports - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * UserSequenceStep isDirectlyFollowedBy. + * @member {boolean} isDirectlyFollowedBy + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance */ - BatchRunReportsResponse.prototype.reports = $util.emptyArray; + UserSequenceStep.prototype.isDirectlyFollowedBy = false; /** - * BatchRunReportsResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * UserSequenceStep stepScoping. + * @member {google.analytics.data.v1alpha.UserCriteriaScoping} stepScoping + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance */ - BatchRunReportsResponse.prototype.kind = ""; + UserSequenceStep.prototype.stepScoping = 0; /** - * Creates a new BatchRunReportsResponse instance using the specified properties. + * UserSequenceStep segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.UserSequenceStep + * @instance + */ + UserSequenceStep.prototype.segmentFilterExpression = null; + + /** + * Creates a new UserSequenceStep instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse instance + * @param {google.analytics.data.v1alpha.IUserSequenceStep=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep instance */ - BatchRunReportsResponse.create = function create(properties) { - return new BatchRunReportsResponse(properties); + UserSequenceStep.create = function create(properties) { + return new UserSequenceStep(properties); }; /** - * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. + * Encodes the specified UserSequenceStep message. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunReportsResponse.encode = function encode(message, writer) { + UserSequenceStep.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.reports != null && message.reports.length) - for (var i = 0; i < message.reports.length; ++i) - $root.google.analytics.data.v1beta.RunReportResponse.encode(message.reports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.kind); + if (message.isDirectlyFollowedBy != null && Object.hasOwnProperty.call(message, "isDirectlyFollowedBy")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isDirectlyFollowedBy); + if (message.stepScoping != null && Object.hasOwnProperty.call(message, "stepScoping")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.stepScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. + * Encodes the specified UserSequenceStep message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSequenceStep.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1beta.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSequenceStep} message UserSequenceStep message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { + UserSequenceStep.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer. + * Decodes a UserSequenceStep message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunReportsResponse.decode = function decode(reader, length) { + UserSequenceStep.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunReportsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.reports && message.reports.length)) - message.reports = []; - message.reports.push($root.google.analytics.data.v1beta.RunReportResponse.decode(reader, reader.uint32())); + message.isDirectlyFollowedBy = reader.bool(); break; case 2: - message.kind = reader.string(); + message.stepScoping = reader.int32(); + break; + case 3: + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -17649,135 +17175,153 @@ }; /** - * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. + * Decodes a UserSequenceStep message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunReportsResponse.decodeDelimited = function decodeDelimited(reader) { + UserSequenceStep.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a BatchRunReportsResponse message. + * Verifies a UserSequenceStep message. * @function verify - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRunReportsResponse.verify = function verify(message) { + UserSequenceStep.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.reports != null && message.hasOwnProperty("reports")) { - if (!Array.isArray(message.reports)) - return "reports: array expected"; - for (var i = 0; i < message.reports.length; ++i) { - var error = $root.google.analytics.data.v1beta.RunReportResponse.verify(message.reports[i]); - if (error) - return "reports." + error; + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + if (typeof message.isDirectlyFollowedBy !== "boolean") + return "isDirectlyFollowedBy: boolean expected"; + if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) + switch (message.stepScoping) { + default: + return "stepScoping: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; } + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (error) + return "segmentFilterExpression." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a UserSequenceStep message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse + * @returns {google.analytics.data.v1alpha.UserSequenceStep} UserSequenceStep */ - BatchRunReportsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.BatchRunReportsResponse) + UserSequenceStep.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSequenceStep) return object; - var message = new $root.google.analytics.data.v1beta.BatchRunReportsResponse(); - if (object.reports) { - if (!Array.isArray(object.reports)) - throw TypeError(".google.analytics.data.v1beta.BatchRunReportsResponse.reports: array expected"); - message.reports = []; - for (var i = 0; i < object.reports.length; ++i) { - if (typeof object.reports[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.BatchRunReportsResponse.reports: object expected"); - message.reports[i] = $root.google.analytics.data.v1beta.RunReportResponse.fromObject(object.reports[i]); - } + var message = new $root.google.analytics.data.v1alpha.UserSequenceStep(); + if (object.isDirectlyFollowedBy != null) + message.isDirectlyFollowedBy = Boolean(object.isDirectlyFollowedBy); + switch (object.stepScoping) { + case "USER_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.stepScoping = 0; + break; + case "USER_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.stepScoping = 1; + break; + case "USER_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.stepScoping = 2; + break; + case "USER_CRITERIA_ACROSS_ALL_SESSIONS": + case 3: + message.stepScoping = 3; + break; + } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSequenceStep.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. + * Creates a plain object from a UserSequenceStep message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @static - * @param {google.analytics.data.v1beta.BatchRunReportsResponse} message BatchRunReportsResponse + * @param {google.analytics.data.v1alpha.UserSequenceStep} message UserSequenceStep * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BatchRunReportsResponse.toObject = function toObject(message, options) { + UserSequenceStep.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.reports = []; - if (options.defaults) - object.kind = ""; - if (message.reports && message.reports.length) { - object.reports = []; - for (var j = 0; j < message.reports.length; ++j) - object.reports[j] = $root.google.analytics.data.v1beta.RunReportResponse.toObject(message.reports[j], options); - } - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + if (options.defaults) { + object.isDirectlyFollowedBy = false; + object.stepScoping = options.enums === String ? "USER_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; + } + if (message.isDirectlyFollowedBy != null && message.hasOwnProperty("isDirectlyFollowedBy")) + object.isDirectlyFollowedBy = message.isDirectlyFollowedBy; + if (message.stepScoping != null && message.hasOwnProperty("stepScoping")) + object.stepScoping = options.enums === String ? $root.google.analytics.data.v1alpha.UserCriteriaScoping[message.stepScoping] : message.stepScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this BatchRunReportsResponse to JSON. + * Converts this UserSequenceStep to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.BatchRunReportsResponse + * @memberof google.analytics.data.v1alpha.UserSequenceStep * @instance * @returns {Object.} JSON object */ - BatchRunReportsResponse.prototype.toJSON = function toJSON() { + UserSequenceStep.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return BatchRunReportsResponse; + return UserSequenceStep; })(); - v1beta.BatchRunPivotReportsRequest = (function() { + v1alpha.UserSegmentExclusion = (function() { /** - * Properties of a BatchRunPivotReportsRequest. - * @memberof google.analytics.data.v1beta - * @interface IBatchRunPivotReportsRequest - * @property {string|null} [property] BatchRunPivotReportsRequest property - * @property {Array.|null} [requests] BatchRunPivotReportsRequest requests + * Properties of a UserSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @interface IUserSegmentExclusion + * @property {google.analytics.data.v1alpha.UserExclusionDuration|null} [userExclusionDuration] UserSegmentExclusion userExclusionDuration + * @property {google.analytics.data.v1alpha.IUserSegmentCriteria|null} [userExclusionCriteria] UserSegmentExclusion userExclusionCriteria */ /** - * Constructs a new BatchRunPivotReportsRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a BatchRunPivotReportsRequest. - * @implements IBatchRunPivotReportsRequest + * Constructs a new UserSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a UserSegmentExclusion. + * @implements IUserSegmentExclusion * @constructor - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set */ - function BatchRunPivotReportsRequest(properties) { - this.requests = []; + function UserSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17785,91 +17329,88 @@ } /** - * BatchRunPivotReportsRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * UserSegmentExclusion userExclusionDuration. + * @member {google.analytics.data.v1alpha.UserExclusionDuration} userExclusionDuration + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance */ - BatchRunPivotReportsRequest.prototype.property = ""; + UserSegmentExclusion.prototype.userExclusionDuration = 0; /** - * BatchRunPivotReportsRequest requests. - * @member {Array.} requests - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * UserSegmentExclusion userExclusionCriteria. + * @member {google.analytics.data.v1alpha.IUserSegmentCriteria|null|undefined} userExclusionCriteria + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance */ - BatchRunPivotReportsRequest.prototype.requests = $util.emptyArray; + UserSegmentExclusion.prototype.userExclusionCriteria = null; /** - * Creates a new BatchRunPivotReportsRequest instance using the specified properties. + * Creates a new UserSegmentExclusion instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest instance + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion instance */ - BatchRunPivotReportsRequest.create = function create(properties) { - return new BatchRunPivotReportsRequest(properties); + UserSegmentExclusion.create = function create(properties) { + return new UserSegmentExclusion(properties); }; /** - * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. + * Encodes the specified UserSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunPivotReportsRequest.encode = function encode(message, writer) { + UserSegmentExclusion.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.requests != null && message.requests.length) - for (var i = 0; i < message.requests.length; ++i) - $root.google.analytics.data.v1beta.RunPivotReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.userExclusionDuration != null && Object.hasOwnProperty.call(message, "userExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userExclusionDuration); + if (message.userExclusionCriteria != null && Object.hasOwnProperty.call(message, "userExclusionCriteria")) + $root.google.analytics.data.v1alpha.UserSegmentCriteria.encode(message.userExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. + * Encodes the specified UserSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.UserSegmentExclusion.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.IUserSegmentExclusion} message UserSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunPivotReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { + UserSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. + * Decodes a UserSegmentExclusion message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunPivotReportsRequest.decode = function decode(reader, length) { + UserSegmentExclusion.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + message.userExclusionDuration = reader.int32(); break; case 2: - if (!(message.requests && message.requests.length)) - message.requests = []; - message.requests.push($root.google.analytics.data.v1beta.RunPivotReportRequest.decode(reader, reader.uint32())); + message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -17880,135 +17421,156 @@ }; /** - * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. + * Decodes a UserSegmentExclusion message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunPivotReportsRequest.decodeDelimited = function decodeDelimited(reader) { + UserSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a BatchRunPivotReportsRequest message. + * Verifies a UserSegmentExclusion message. * @function verify - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRunPivotReportsRequest.verify = function verify(message) { + UserSegmentExclusion.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.requests != null && message.hasOwnProperty("requests")) { - if (!Array.isArray(message.requests)) - return "requests: array expected"; - for (var i = 0; i < message.requests.length; ++i) { - var error = $root.google.analytics.data.v1beta.RunPivotReportRequest.verify(message.requests[i]); - if (error) - return "requests." + error; + if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) + switch (message.userExclusionDuration) { + default: + return "userExclusionDuration: enum value expected"; + case 0: + case 1: + case 2: + break; } + if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.UserSegmentCriteria.verify(message.userExclusionCriteria); + if (error) + return "userExclusionCriteria." + error; } return null; }; /** - * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a UserSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest + * @returns {google.analytics.data.v1alpha.UserSegmentExclusion} UserSegmentExclusion */ - BatchRunPivotReportsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest) + UserSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.UserSegmentExclusion) return object; - var message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.requests) { - if (!Array.isArray(object.requests)) - throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsRequest.requests: array expected"); - message.requests = []; - for (var i = 0; i < object.requests.length; ++i) { - if (typeof object.requests[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsRequest.requests: object expected"); - message.requests[i] = $root.google.analytics.data.v1beta.RunPivotReportRequest.fromObject(object.requests[i]); - } + var message = new $root.google.analytics.data.v1alpha.UserSegmentExclusion(); + switch (object.userExclusionDuration) { + case "USER_EXCLUSION_DURATION_UNSPECIFIED": + case 0: + message.userExclusionDuration = 0; + break; + case "USER_EXCLUSION_TEMPORARY": + case 1: + message.userExclusionDuration = 1; + break; + case "USER_EXCLUSION_PERMANENT": + case 2: + message.userExclusionDuration = 2; + break; + } + if (object.userExclusionCriteria != null) { + if (typeof object.userExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.UserSegmentExclusion.userExclusionCriteria: object expected"); + message.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.fromObject(object.userExclusionCriteria); } return message; }; /** - * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. + * Creates a plain object from a UserSegmentExclusion message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @static - * @param {google.analytics.data.v1beta.BatchRunPivotReportsRequest} message BatchRunPivotReportsRequest + * @param {google.analytics.data.v1alpha.UserSegmentExclusion} message UserSegmentExclusion * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BatchRunPivotReportsRequest.toObject = function toObject(message, options) { + UserSegmentExclusion.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.requests = []; - if (options.defaults) - object.property = ""; - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.requests && message.requests.length) { - object.requests = []; - for (var j = 0; j < message.requests.length; ++j) - object.requests[j] = $root.google.analytics.data.v1beta.RunPivotReportRequest.toObject(message.requests[j], options); + if (options.defaults) { + object.userExclusionDuration = options.enums === String ? "USER_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.userExclusionCriteria = null; } + if (message.userExclusionDuration != null && message.hasOwnProperty("userExclusionDuration")) + object.userExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.UserExclusionDuration[message.userExclusionDuration] : message.userExclusionDuration; + if (message.userExclusionCriteria != null && message.hasOwnProperty("userExclusionCriteria")) + object.userExclusionCriteria = $root.google.analytics.data.v1alpha.UserSegmentCriteria.toObject(message.userExclusionCriteria, options); return object; }; /** - * Converts this BatchRunPivotReportsRequest to JSON. + * Converts this UserSegmentExclusion to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest + * @memberof google.analytics.data.v1alpha.UserSegmentExclusion * @instance * @returns {Object.} JSON object */ - BatchRunPivotReportsRequest.prototype.toJSON = function toJSON() { + UserSegmentExclusion.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return BatchRunPivotReportsRequest; + return UserSegmentExclusion; })(); - v1beta.BatchRunPivotReportsResponse = (function() { + /** + * UserExclusionDuration enum. + * @name google.analytics.data.v1alpha.UserExclusionDuration + * @enum {number} + * @property {number} USER_EXCLUSION_DURATION_UNSPECIFIED=0 USER_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} USER_EXCLUSION_TEMPORARY=1 USER_EXCLUSION_TEMPORARY value + * @property {number} USER_EXCLUSION_PERMANENT=2 USER_EXCLUSION_PERMANENT value + */ + v1alpha.UserExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "USER_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "USER_EXCLUSION_TEMPORARY"] = 1; + values[valuesById[2] = "USER_EXCLUSION_PERMANENT"] = 2; + return values; + })(); + + v1alpha.SessionSegment = (function() { /** - * Properties of a BatchRunPivotReportsResponse. - * @memberof google.analytics.data.v1beta - * @interface IBatchRunPivotReportsResponse - * @property {Array.|null} [pivotReports] BatchRunPivotReportsResponse pivotReports - * @property {string|null} [kind] BatchRunPivotReportsResponse kind + * Properties of a SessionSegment. + * @memberof google.analytics.data.v1alpha + * @interface ISessionSegment + * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionInclusionCriteria] SessionSegment sessionInclusionCriteria + * @property {google.analytics.data.v1alpha.ISessionSegmentExclusion|null} [exclusion] SessionSegment exclusion */ /** - * Constructs a new BatchRunPivotReportsResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a BatchRunPivotReportsResponse. - * @implements IBatchRunPivotReportsResponse + * Constructs a new SessionSegment. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SessionSegment. + * @implements ISessionSegment * @constructor - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set */ - function BatchRunPivotReportsResponse(properties) { - this.pivotReports = []; + function SessionSegment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18016,91 +17578,88 @@ } /** - * BatchRunPivotReportsResponse pivotReports. - * @member {Array.} pivotReports - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * SessionSegment sessionInclusionCriteria. + * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionInclusionCriteria + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance */ - BatchRunPivotReportsResponse.prototype.pivotReports = $util.emptyArray; + SessionSegment.prototype.sessionInclusionCriteria = null; /** - * BatchRunPivotReportsResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * SessionSegment exclusion. + * @member {google.analytics.data.v1alpha.ISessionSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance */ - BatchRunPivotReportsResponse.prototype.kind = ""; + SessionSegment.prototype.exclusion = null; /** - * Creates a new BatchRunPivotReportsResponse instance using the specified properties. + * Creates a new SessionSegment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse instance + * @param {google.analytics.data.v1alpha.ISessionSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment instance */ - BatchRunPivotReportsResponse.create = function create(properties) { - return new BatchRunPivotReportsResponse(properties); + SessionSegment.create = function create(properties) { + return new SessionSegment(properties); }; /** - * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. + * Encodes the specified SessionSegment message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunPivotReportsResponse.encode = function encode(message, writer) { + SessionSegment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.pivotReports != null && message.pivotReports.length) - for (var i = 0; i < message.pivotReports.length; ++i) - $root.google.analytics.data.v1beta.RunPivotReportResponse.encode(message.pivotReports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.kind); + if (message.sessionInclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionInclusionCriteria")) + $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.SessionSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. + * Encodes the specified SessionSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegment} message SessionSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - BatchRunPivotReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. + * Decodes a SessionSegment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunPivotReportsResponse.decode = function decode(reader, length) { + SessionSegment.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegment(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.pivotReports && message.pivotReports.length)) - message.pivotReports = []; - message.pivotReports.push($root.google.analytics.data.v1beta.RunPivotReportResponse.decode(reader, reader.uint32())); + message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); break; case 2: - message.kind = reader.string(); + message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -18111,133 +17670,127 @@ }; /** - * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. + * Decodes a SessionSegment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRunPivotReportsResponse.decodeDelimited = function decodeDelimited(reader) { + SessionSegment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a BatchRunPivotReportsResponse message. + * Verifies a SessionSegment message. * @function verify - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRunPivotReportsResponse.verify = function verify(message) { + SessionSegment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.pivotReports != null && message.hasOwnProperty("pivotReports")) { - if (!Array.isArray(message.pivotReports)) - return "pivotReports: array expected"; - for (var i = 0; i < message.pivotReports.length; ++i) { - var error = $root.google.analytics.data.v1beta.RunPivotReportResponse.verify(message.pivotReports[i]); - if (error) - return "pivotReports." + error; - } + if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionInclusionCriteria); + if (error) + return "sessionInclusionCriteria." + error; + } + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.verify(message.exclusion); + if (error) + return "exclusion." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse + * @returns {google.analytics.data.v1alpha.SessionSegment} SessionSegment */ - BatchRunPivotReportsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse) + SessionSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegment) return object; - var message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse(); - if (object.pivotReports) { - if (!Array.isArray(object.pivotReports)) - throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsResponse.pivotReports: array expected"); - message.pivotReports = []; - for (var i = 0; i < object.pivotReports.length; ++i) { - if (typeof object.pivotReports[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsResponse.pivotReports: object expected"); - message.pivotReports[i] = $root.google.analytics.data.v1beta.RunPivotReportResponse.fromObject(object.pivotReports[i]); - } + var message = new $root.google.analytics.data.v1alpha.SessionSegment(); + if (object.sessionInclusionCriteria != null) { + if (typeof object.sessionInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegment.sessionInclusionCriteria: object expected"); + message.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionInclusionCriteria); + } + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.fromObject(object.exclusion); } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @static - * @param {google.analytics.data.v1beta.BatchRunPivotReportsResponse} message BatchRunPivotReportsResponse + * @param {google.analytics.data.v1alpha.SessionSegment} message SessionSegment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - BatchRunPivotReportsResponse.toObject = function toObject(message, options) { + SessionSegment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.pivotReports = []; - if (options.defaults) - object.kind = ""; - if (message.pivotReports && message.pivotReports.length) { - object.pivotReports = []; - for (var j = 0; j < message.pivotReports.length; ++j) - object.pivotReports[j] = $root.google.analytics.data.v1beta.RunPivotReportResponse.toObject(message.pivotReports[j], options); + if (options.defaults) { + object.sessionInclusionCriteria = null; + object.exclusion = null; } - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + if (message.sessionInclusionCriteria != null && message.hasOwnProperty("sessionInclusionCriteria")) + object.sessionInclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.SessionSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this BatchRunPivotReportsResponse to JSON. + * Converts this SessionSegment to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse + * @memberof google.analytics.data.v1alpha.SessionSegment * @instance * @returns {Object.} JSON object */ - BatchRunPivotReportsResponse.prototype.toJSON = function toJSON() { + SessionSegment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return BatchRunPivotReportsResponse; + return SessionSegment; })(); - v1beta.GetMetadataRequest = (function() { + v1alpha.SessionSegmentCriteria = (function() { /** - * Properties of a GetMetadataRequest. - * @memberof google.analytics.data.v1beta - * @interface IGetMetadataRequest - * @property {string|null} [name] GetMetadataRequest name + * Properties of a SessionSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @interface ISessionSegmentCriteria + * @property {Array.|null} [andConditionGroups] SessionSegmentCriteria andConditionGroups */ /** - * Constructs a new GetMetadataRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a GetMetadataRequest. - * @implements IGetMetadataRequest + * Constructs a new SessionSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SessionSegmentCriteria. + * @implements ISessionSegmentCriteria * @constructor - * @param {google.analytics.data.v1beta.IGetMetadataRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set */ - function GetMetadataRequest(properties) { + function SessionSegmentCriteria(properties) { + this.andConditionGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18245,75 +17798,78 @@ } /** - * GetMetadataRequest name. - * @member {string} name - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * SessionSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @instance */ - GetMetadataRequest.prototype.name = ""; + SessionSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * Creates a new GetMetadataRequest instance using the specified properties. + * Creates a new SessionSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IGetMetadataRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest instance + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria instance */ - GetMetadataRequest.create = function create(properties) { - return new GetMetadataRequest(properties); + SessionSegmentCriteria.create = function create(properties) { + return new SessionSegmentCriteria(properties); }; /** - * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. + * Encodes the specified SessionSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetMetadataRequest.encode = function encode(message, writer) { + SessionSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. + * Encodes the specified SessionSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentCriteria} message SessionSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetMetadataRequest.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetMetadataRequest message from the specified reader or buffer. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetMetadataRequest.decode = function decode(reader, length) { + SessionSegmentCriteria.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.GetMetadataRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -18324,121 +17880,141 @@ }; /** - * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetMetadataRequest.decodeDelimited = function decodeDelimited(reader) { + SessionSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetMetadataRequest message. + * Verifies a SessionSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetMetadataRequest.verify = function verify(message) { + SessionSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (error) + return "andConditionGroups." + error; + } + } return null; }; /** - * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentCriteria} SessionSegmentCriteria */ - GetMetadataRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.GetMetadataRequest) + SessionSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1beta.GetMetadataRequest(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1alpha.SessionSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + } + } return message; }; /** - * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @static - * @param {google.analytics.data.v1beta.GetMetadataRequest} message GetMetadataRequest + * @param {google.analytics.data.v1alpha.SessionSegmentCriteria} message SessionSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetMetadataRequest.toObject = function toObject(message, options) { + SessionSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (options.arrays || options.defaults) + object.andConditionGroups = []; + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup.toObject(message.andConditionGroups[j], options); + } return object; }; /** - * Converts this GetMetadataRequest to JSON. + * Converts this SessionSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.GetMetadataRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentCriteria * @instance * @returns {Object.} JSON object */ - GetMetadataRequest.prototype.toJSON = function toJSON() { + SessionSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetMetadataRequest; + return SessionSegmentCriteria; })(); - v1beta.RunRealtimeReportRequest = (function() { + /** + * SessionCriteriaScoping enum. + * @name google.analytics.data.v1alpha.SessionCriteriaScoping + * @enum {number} + * @property {number} SESSION_CRITERIA_SCOPING_UNSPECIFIED=0 SESSION_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} SESSION_CRITERIA_WITHIN_SAME_EVENT=1 SESSION_CRITERIA_WITHIN_SAME_EVENT value + * @property {number} SESSION_CRITERIA_WITHIN_SAME_SESSION=2 SESSION_CRITERIA_WITHIN_SAME_SESSION value + */ + v1alpha.SessionCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SESSION_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "SESSION_CRITERIA_WITHIN_SAME_EVENT"] = 1; + values[valuesById[2] = "SESSION_CRITERIA_WITHIN_SAME_SESSION"] = 2; + return values; + })(); + + v1alpha.SessionSegmentConditionGroup = (function() { /** - * Properties of a RunRealtimeReportRequest. - * @memberof google.analytics.data.v1beta - * @interface IRunRealtimeReportRequest - * @property {string|null} [property] RunRealtimeReportRequest property - * @property {Array.|null} [dimensions] RunRealtimeReportRequest dimensions - * @property {Array.|null} [metrics] RunRealtimeReportRequest metrics - * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunRealtimeReportRequest dimensionFilter - * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunRealtimeReportRequest metricFilter - * @property {number|Long|null} [limit] RunRealtimeReportRequest limit - * @property {Array.|null} [metricAggregations] RunRealtimeReportRequest metricAggregations - * @property {Array.|null} [orderBys] RunRealtimeReportRequest orderBys - * @property {boolean|null} [returnPropertyQuota] RunRealtimeReportRequest returnPropertyQuota - * @property {Array.|null} [minuteRanges] RunRealtimeReportRequest minuteRanges + * Properties of a SessionSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @interface ISessionSegmentConditionGroup + * @property {google.analytics.data.v1alpha.SessionCriteriaScoping|null} [conditionScoping] SessionSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] SessionSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new RunRealtimeReportRequest. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunRealtimeReportRequest. - * @implements IRunRealtimeReportRequest + * Constructs a new SessionSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SessionSegmentConditionGroup. + * @implements ISessionSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set */ - function RunRealtimeReportRequest(properties) { - this.dimensions = []; - this.metrics = []; - this.metricAggregations = []; - this.orderBys = []; - this.minuteRanges = []; + function SessionSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18446,215 +18022,88 @@ } /** - * RunRealtimeReportRequest property. - * @member {string} property - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.property = ""; - - /** - * RunRealtimeReportRequest dimensions. - * @member {Array.} dimensions - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.dimensions = $util.emptyArray; - - /** - * RunRealtimeReportRequest metrics. - * @member {Array.} metrics - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metrics = $util.emptyArray; - - /** - * RunRealtimeReportRequest dimensionFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.dimensionFilter = null; - - /** - * RunRealtimeReportRequest metricFilter. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metricFilter = null; - - /** - * RunRealtimeReportRequest limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * RunRealtimeReportRequest metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.metricAggregations = $util.emptyArray; - - /** - * RunRealtimeReportRequest orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest - * @instance - */ - RunRealtimeReportRequest.prototype.orderBys = $util.emptyArray; - - /** - * RunRealtimeReportRequest returnPropertyQuota. - * @member {boolean} returnPropertyQuota - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * SessionSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.SessionCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance */ - RunRealtimeReportRequest.prototype.returnPropertyQuota = false; + SessionSegmentConditionGroup.prototype.conditionScoping = 0; /** - * RunRealtimeReportRequest minuteRanges. - * @member {Array.} minuteRanges - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * SessionSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance */ - RunRealtimeReportRequest.prototype.minuteRanges = $util.emptyArray; + SessionSegmentConditionGroup.prototype.segmentFilterExpression = null; /** - * Creates a new RunRealtimeReportRequest instance using the specified properties. + * Creates a new SessionSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest instance + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup instance */ - RunRealtimeReportRequest.create = function create(properties) { - return new RunRealtimeReportRequest(properties); + SessionSegmentConditionGroup.create = function create(properties) { + return new SessionSegmentConditionGroup(properties); }; /** - * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. + * Encodes the specified SessionSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportRequest.encode = function encode(message, writer) { + SessionSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.property != null && Object.hasOwnProperty.call(message, "property")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); - if (message.dimensions != null && message.dimensions.length) - for (var i = 0; i < message.dimensions.length; ++i) - $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metrics != null && message.metrics.length) - for (var i = 0; i < message.metrics.length; ++i) - $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 6, wireType 0 =*/48).int64(message.limit); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 7, wireType 2 =*/58).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) - writer.uint32(/* id 9, wireType 0 =*/72).bool(message.returnPropertyQuota); - if (message.minuteRanges != null && message.minuteRanges.length) - for (var i = 0; i < message.minuteRanges.length; ++i) - $root.google.analytics.data.v1beta.MinuteRange.encode(message.minuteRanges[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. + * Encodes the specified SessionSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode + * @param {google.analytics.data.v1alpha.ISessionSegmentConditionGroup} message SessionSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportRequest.encodeDelimited = function encodeDelimited(message, writer) { + SessionSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunRealtimeReportRequest.decode = function decode(reader, length) { + SessionSegmentConditionGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunRealtimeReportRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.property = reader.string(); + message.conditionScoping = reader.int32(); break; case 2: - if (!(message.dimensions && message.dimensions.length)) - message.dimensions = []; - message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.metrics && message.metrics.length)) - message.metrics = []; - message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); - break; - case 4: - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 5: - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); - break; - case 6: - message.limit = reader.int64(); - break; - case 7: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); - break; - case 8: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); - break; - case 9: - message.returnPropertyQuota = reader.bool(); - break; - case 10: - if (!(message.minuteRanges && message.minuteRanges.length)) - message.minuteRanges = []; - message.minuteRanges.push($root.google.analytics.data.v1beta.MinuteRange.decode(reader, reader.uint32())); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -18665,330 +18114,140 @@ }; /** - * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. + * Decodes a SessionSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunRealtimeReportRequest.decodeDelimited = function decodeDelimited(reader) { + SessionSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunRealtimeReportRequest message. + * Verifies a SessionSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunRealtimeReportRequest.verify = function verify(message) { + SessionSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.property != null && message.hasOwnProperty("property")) - if (!$util.isString(message.property)) - return "property: string expected"; - if (message.dimensions != null && message.hasOwnProperty("dimensions")) { - if (!Array.isArray(message.dimensions)) - return "dimensions: array expected"; - for (var i = 0; i < message.dimensions.length; ++i) { - var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); - if (error) - return "dimensions." + error; - } - } - if (message.metrics != null && message.hasOwnProperty("metrics")) { - if (!Array.isArray(message.metrics)) - return "metrics: array expected"; - for (var i = 0; i < message.metrics.length; ++i) { - var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); - if (error) - return "metrics." + error; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { + default: + return "conditionScoping: enum value expected"; + case 0: + case 1: + case 2: + break; } - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); - if (error) - return "dimensionFilter." + error; - } - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); if (error) - return "metricFilter." + error; - } - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } - } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); - if (error) - return "orderBys." + error; - } - } - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - if (typeof message.returnPropertyQuota !== "boolean") - return "returnPropertyQuota: boolean expected"; - if (message.minuteRanges != null && message.hasOwnProperty("minuteRanges")) { - if (!Array.isArray(message.minuteRanges)) - return "minuteRanges: array expected"; - for (var i = 0; i < message.minuteRanges.length; ++i) { - var error = $root.google.analytics.data.v1beta.MinuteRange.verify(message.minuteRanges[i]); - if (error) - return "minuteRanges." + error; - } + return "segmentFilterExpression." + error; } return null; }; /** - * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. + * Creates a SessionSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest + * @returns {google.analytics.data.v1alpha.SessionSegmentConditionGroup} SessionSegmentConditionGroup */ - RunRealtimeReportRequest.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunRealtimeReportRequest) + SessionSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1beta.RunRealtimeReportRequest(); - if (object.property != null) - message.property = String(object.property); - if (object.dimensions) { - if (!Array.isArray(object.dimensions)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensions: array expected"); - message.dimensions = []; - for (var i = 0; i < object.dimensions.length; ++i) { - if (typeof object.dimensions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensions: object expected"); - message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); - } - } - if (object.metrics) { - if (!Array.isArray(object.metrics)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metrics: array expected"); - message.metrics = []; - for (var i = 0; i < object.metrics.length; ++i) { - if (typeof object.metrics[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metrics: object expected"); - message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); - } - } - if (object.dimensionFilter != null) { - if (typeof object.dimensionFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensionFilter: object expected"); - message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); - } - if (object.metricFilter != null) { - if (typeof object.metricFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metricFilter: object expected"); - message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); - } - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } - } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); - } + var message = new $root.google.analytics.data.v1alpha.SessionSegmentConditionGroup(); + switch (object.conditionScoping) { + case "SESSION_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.conditionScoping = 0; + break; + case "SESSION_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.conditionScoping = 1; + break; + case "SESSION_CRITERIA_WITHIN_SAME_SESSION": + case 2: + message.conditionScoping = 2; + break; } - if (object.returnPropertyQuota != null) - message.returnPropertyQuota = Boolean(object.returnPropertyQuota); - if (object.minuteRanges) { - if (!Array.isArray(object.minuteRanges)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.minuteRanges: array expected"); - message.minuteRanges = []; - for (var i = 0; i < object.minuteRanges.length; ++i) { - if (typeof object.minuteRanges[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.minuteRanges: object expected"); - message.minuteRanges[i] = $root.google.analytics.data.v1beta.MinuteRange.fromObject(object.minuteRanges[i]); - } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); } return message; }; /** - * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. + * Creates a plain object from a SessionSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.RunRealtimeReportRequest} message RunRealtimeReportRequest + * @param {google.analytics.data.v1alpha.SessionSegmentConditionGroup} message SessionSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunRealtimeReportRequest.toObject = function toObject(message, options) { + SessionSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensions = []; - object.metrics = []; - object.metricAggregations = []; - object.orderBys = []; - object.minuteRanges = []; - } if (options.defaults) { - object.property = ""; - object.dimensionFilter = null; - object.metricFilter = null; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; - object.returnPropertyQuota = false; - } - if (message.property != null && message.hasOwnProperty("property")) - object.property = message.property; - if (message.dimensions && message.dimensions.length) { - object.dimensions = []; - for (var j = 0; j < message.dimensions.length; ++j) - object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); - } - if (message.metrics && message.metrics.length) { - object.metrics = []; - for (var j = 0; j < message.metrics.length; ++j) - object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); - } - if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) - object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); - if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) - object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; - } - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); - } - if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) - object.returnPropertyQuota = message.returnPropertyQuota; - if (message.minuteRanges && message.minuteRanges.length) { - object.minuteRanges = []; - for (var j = 0; j < message.minuteRanges.length; ++j) - object.minuteRanges[j] = $root.google.analytics.data.v1beta.MinuteRange.toObject(message.minuteRanges[j], options); + object.conditionScoping = options.enums === String ? "SESSION_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.SessionCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this RunRealtimeReportRequest to JSON. + * Converts this SessionSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @memberof google.analytics.data.v1alpha.SessionSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - RunRealtimeReportRequest.prototype.toJSON = function toJSON() { + SessionSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunRealtimeReportRequest; + return SessionSegmentConditionGroup; })(); - v1beta.RunRealtimeReportResponse = (function() { + v1alpha.SessionSegmentExclusion = (function() { /** - * Properties of a RunRealtimeReportResponse. - * @memberof google.analytics.data.v1beta - * @interface IRunRealtimeReportResponse - * @property {Array.|null} [dimensionHeaders] RunRealtimeReportResponse dimensionHeaders - * @property {Array.|null} [metricHeaders] RunRealtimeReportResponse metricHeaders - * @property {Array.|null} [rows] RunRealtimeReportResponse rows - * @property {Array.|null} [totals] RunRealtimeReportResponse totals - * @property {Array.|null} [maximums] RunRealtimeReportResponse maximums - * @property {Array.|null} [minimums] RunRealtimeReportResponse minimums - * @property {number|null} [rowCount] RunRealtimeReportResponse rowCount - * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunRealtimeReportResponse propertyQuota - * @property {string|null} [kind] RunRealtimeReportResponse kind + * Properties of a SessionSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @interface ISessionSegmentExclusion + * @property {google.analytics.data.v1alpha.SessionExclusionDuration|null} [sessionExclusionDuration] SessionSegmentExclusion sessionExclusionDuration + * @property {google.analytics.data.v1alpha.ISessionSegmentCriteria|null} [sessionExclusionCriteria] SessionSegmentExclusion sessionExclusionCriteria */ /** - * Constructs a new RunRealtimeReportResponse. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a RunRealtimeReportResponse. - * @implements IRunRealtimeReportResponse + * Constructs a new SessionSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SessionSegmentExclusion. + * @implements ISessionSegmentExclusion * @constructor - * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set */ - function RunRealtimeReportResponse(properties) { - this.dimensionHeaders = []; - this.metricHeaders = []; - this.rows = []; - this.totals = []; - this.maximums = []; - this.minimums = []; + function SessionSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18996,197 +18255,337 @@ } /** - * RunRealtimeReportResponse dimensionHeaders. - * @member {Array.} dimensionHeaders - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * SessionSegmentExclusion sessionExclusionDuration. + * @member {google.analytics.data.v1alpha.SessionExclusionDuration} sessionExclusionDuration + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance */ - RunRealtimeReportResponse.prototype.dimensionHeaders = $util.emptyArray; + SessionSegmentExclusion.prototype.sessionExclusionDuration = 0; /** - * RunRealtimeReportResponse metricHeaders. - * @member {Array.} metricHeaders - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * SessionSegmentExclusion sessionExclusionCriteria. + * @member {google.analytics.data.v1alpha.ISessionSegmentCriteria|null|undefined} sessionExclusionCriteria + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance */ - RunRealtimeReportResponse.prototype.metricHeaders = $util.emptyArray; + SessionSegmentExclusion.prototype.sessionExclusionCriteria = null; /** - * RunRealtimeReportResponse rows. - * @member {Array.} rows - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse - * @instance + * Creates a new SessionSegmentExclusion instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion instance */ - RunRealtimeReportResponse.prototype.rows = $util.emptyArray; + SessionSegmentExclusion.create = function create(properties) { + return new SessionSegmentExclusion(properties); + }; /** - * RunRealtimeReportResponse totals. - * @member {Array.} totals - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse - * @instance + * Encodes the specified SessionSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportResponse.prototype.totals = $util.emptyArray; + SessionSegmentExclusion.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.sessionExclusionDuration != null && Object.hasOwnProperty.call(message, "sessionExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sessionExclusionDuration); + if (message.sessionExclusionCriteria != null && Object.hasOwnProperty.call(message, "sessionExclusionCriteria")) + $root.google.analytics.data.v1alpha.SessionSegmentCriteria.encode(message.sessionExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; /** - * RunRealtimeReportResponse maximums. - * @member {Array.} maximums - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse - * @instance + * Encodes the specified SessionSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SessionSegmentExclusion.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {google.analytics.data.v1alpha.ISessionSegmentExclusion} message SessionSegmentExclusion message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportResponse.prototype.maximums = $util.emptyArray; + SessionSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * RunRealtimeReportResponse minimums. - * @member {Array.} minimums - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse - * @instance + * Decodes a SessionSegmentExclusion message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunRealtimeReportResponse.prototype.minimums = $util.emptyArray; + SessionSegmentExclusion.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sessionExclusionDuration = reader.int32(); + break; + case 2: + message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * RunRealtimeReportResponse rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * Decodes a SessionSegmentExclusion message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SessionSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SessionSegmentExclusion message. + * @function verify + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SessionSegmentExclusion.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) + switch (message.sessionExclusionDuration) { + default: + return "sessionExclusionDuration: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.verify(message.sessionExclusionCriteria); + if (error) + return "sessionExclusionCriteria." + error; + } + return null; + }; + + /** + * Creates a SessionSegmentExclusion message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SessionSegmentExclusion} SessionSegmentExclusion + */ + SessionSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SessionSegmentExclusion) + return object; + var message = new $root.google.analytics.data.v1alpha.SessionSegmentExclusion(); + switch (object.sessionExclusionDuration) { + case "SESSION_EXCLUSION_DURATION_UNSPECIFIED": + case 0: + message.sessionExclusionDuration = 0; + break; + case "SESSION_EXCLUSION_TEMPORARY": + case 1: + message.sessionExclusionDuration = 1; + break; + case "SESSION_EXCLUSION_PERMANENT": + case 2: + message.sessionExclusionDuration = 2; + break; + } + if (object.sessionExclusionCriteria != null) { + if (typeof object.sessionExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.SessionSegmentExclusion.sessionExclusionCriteria: object expected"); + message.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.fromObject(object.sessionExclusionCriteria); + } + return message; + }; + + /** + * Creates a plain object from a SessionSegmentExclusion message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion + * @static + * @param {google.analytics.data.v1alpha.SessionSegmentExclusion} message SessionSegmentExclusion + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SessionSegmentExclusion.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.sessionExclusionDuration = options.enums === String ? "SESSION_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.sessionExclusionCriteria = null; + } + if (message.sessionExclusionDuration != null && message.hasOwnProperty("sessionExclusionDuration")) + object.sessionExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.SessionExclusionDuration[message.sessionExclusionDuration] : message.sessionExclusionDuration; + if (message.sessionExclusionCriteria != null && message.hasOwnProperty("sessionExclusionCriteria")) + object.sessionExclusionCriteria = $root.google.analytics.data.v1alpha.SessionSegmentCriteria.toObject(message.sessionExclusionCriteria, options); + return object; + }; + + /** + * Converts this SessionSegmentExclusion to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SessionSegmentExclusion * @instance + * @returns {Object.} JSON object */ - RunRealtimeReportResponse.prototype.rowCount = 0; + SessionSegmentExclusion.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SessionSegmentExclusion; + })(); + + /** + * SessionExclusionDuration enum. + * @name google.analytics.data.v1alpha.SessionExclusionDuration + * @enum {number} + * @property {number} SESSION_EXCLUSION_DURATION_UNSPECIFIED=0 SESSION_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} SESSION_EXCLUSION_TEMPORARY=1 SESSION_EXCLUSION_TEMPORARY value + * @property {number} SESSION_EXCLUSION_PERMANENT=2 SESSION_EXCLUSION_PERMANENT value + */ + v1alpha.SessionExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SESSION_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "SESSION_EXCLUSION_TEMPORARY"] = 1; + values[valuesById[2] = "SESSION_EXCLUSION_PERMANENT"] = 2; + return values; + })(); + + v1alpha.EventSegment = (function() { /** - * RunRealtimeReportResponse propertyQuota. - * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * Properties of an EventSegment. + * @memberof google.analytics.data.v1alpha + * @interface IEventSegment + * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventInclusionCriteria] EventSegment eventInclusionCriteria + * @property {google.analytics.data.v1alpha.IEventSegmentExclusion|null} [exclusion] EventSegment exclusion + */ + + /** + * Constructs a new EventSegment. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an EventSegment. + * @implements IEventSegment + * @constructor + * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set + */ + function EventSegment(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EventSegment eventInclusionCriteria. + * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventInclusionCriteria + * @memberof google.analytics.data.v1alpha.EventSegment * @instance */ - RunRealtimeReportResponse.prototype.propertyQuota = null; + EventSegment.prototype.eventInclusionCriteria = null; /** - * RunRealtimeReportResponse kind. - * @member {string} kind - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * EventSegment exclusion. + * @member {google.analytics.data.v1alpha.IEventSegmentExclusion|null|undefined} exclusion + * @memberof google.analytics.data.v1alpha.EventSegment * @instance */ - RunRealtimeReportResponse.prototype.kind = ""; + EventSegment.prototype.exclusion = null; /** - * Creates a new RunRealtimeReportResponse instance using the specified properties. + * Creates a new EventSegment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse instance + * @param {google.analytics.data.v1alpha.IEventSegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment instance */ - RunRealtimeReportResponse.create = function create(properties) { - return new RunRealtimeReportResponse(properties); + EventSegment.create = function create(properties) { + return new EventSegment(properties); }; /** - * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. + * Encodes the specified EventSegment message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportResponse.encode = function encode(message, writer) { + EventSegment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionHeaders != null && message.dimensionHeaders.length) - for (var i = 0; i < message.dimensionHeaders.length; ++i) - $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricHeaders != null && message.metricHeaders.length) - for (var i = 0; i < message.metricHeaders.length; ++i) - $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.rows != null && message.rows.length) - for (var i = 0; i < message.rows.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.totals != null && message.totals.length) - for (var i = 0; i < message.totals.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.maximums != null && message.maximums.length) - for (var i = 0; i < message.maximums.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.minimums != null && message.minimums.length) - for (var i = 0; i < message.minimums.length; ++i) - $root.google.analytics.data.v1beta.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); - if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) - $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 9, wireType 2 =*/74).string(message.kind); + if (message.eventInclusionCriteria != null && Object.hasOwnProperty.call(message, "eventInclusionCriteria")) + $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventInclusionCriteria, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.exclusion != null && Object.hasOwnProperty.call(message, "exclusion")) + $root.google.analytics.data.v1alpha.EventSegmentExclusion.encode(message.exclusion, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. + * Encodes the specified EventSegment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegment} message EventSegment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RunRealtimeReportResponse.encodeDelimited = function encodeDelimited(message, writer) { + EventSegment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. + * Decodes an EventSegment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunRealtimeReportResponse.decode = function decode(reader, length) { + EventSegment.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunRealtimeReportResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegment(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionHeaders && message.dimensionHeaders.length)) - message.dimensionHeaders = []; - message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); + message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); break; case 2: - if (!(message.metricHeaders && message.metricHeaders.length)) - message.metricHeaders = []; - message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.rows && message.rows.length)) - message.rows = []; - message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.totals && message.totals.length)) - message.totals = []; - message.totals.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.maximums && message.maximums.length)) - message.maximums = []; - message.maximums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.minimums && message.minimums.length)) - message.minimums = []; - message.minimums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); - break; - case 7: - message.rowCount = reader.int32(); - break; - case 8: - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); - break; - case 9: - message.kind = reader.string(); + message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -19197,283 +18596,127 @@ }; /** - * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. + * Decodes an EventSegment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RunRealtimeReportResponse.decodeDelimited = function decodeDelimited(reader) { + EventSegment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RunRealtimeReportResponse message. + * Verifies an EventSegment message. * @function verify - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RunRealtimeReportResponse.verify = function verify(message) { + EventSegment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { - if (!Array.isArray(message.dimensionHeaders)) - return "dimensionHeaders: array expected"; - for (var i = 0; i < message.dimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); - if (error) - return "dimensionHeaders." + error; - } - } - if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { - if (!Array.isArray(message.metricHeaders)) - return "metricHeaders: array expected"; - for (var i = 0; i < message.metricHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); - if (error) - return "metricHeaders." + error; - } - } - if (message.rows != null && message.hasOwnProperty("rows")) { - if (!Array.isArray(message.rows)) - return "rows: array expected"; - for (var i = 0; i < message.rows.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); - if (error) - return "rows." + error; - } - } - if (message.totals != null && message.hasOwnProperty("totals")) { - if (!Array.isArray(message.totals)) - return "totals: array expected"; - for (var i = 0; i < message.totals.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.totals[i]); - if (error) - return "totals." + error; - } - } - if (message.maximums != null && message.hasOwnProperty("maximums")) { - if (!Array.isArray(message.maximums)) - return "maximums: array expected"; - for (var i = 0; i < message.maximums.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.maximums[i]); - if (error) - return "maximums." + error; - } - } - if (message.minimums != null && message.hasOwnProperty("minimums")) { - if (!Array.isArray(message.minimums)) - return "minimums: array expected"; - for (var i = 0; i < message.minimums.length; ++i) { - var error = $root.google.analytics.data.v1beta.Row.verify(message.minimums[i]); - if (error) - return "minimums." + error; - } + if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventInclusionCriteria); + if (error) + return "eventInclusionCriteria." + error; } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { - var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentExclusion.verify(message.exclusion); if (error) - return "propertyQuota." + error; + return "exclusion." + error; } - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; return null; }; /** - * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse + * @returns {google.analytics.data.v1alpha.EventSegment} EventSegment */ - RunRealtimeReportResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.RunRealtimeReportResponse) + EventSegment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegment) return object; - var message = new $root.google.analytics.data.v1beta.RunRealtimeReportResponse(); - if (object.dimensionHeaders) { - if (!Array.isArray(object.dimensionHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.dimensionHeaders: array expected"); - message.dimensionHeaders = []; - for (var i = 0; i < object.dimensionHeaders.length; ++i) { - if (typeof object.dimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.dimensionHeaders: object expected"); - message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); - } + var message = new $root.google.analytics.data.v1alpha.EventSegment(); + if (object.eventInclusionCriteria != null) { + if (typeof object.eventInclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegment.eventInclusionCriteria: object expected"); + message.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventInclusionCriteria); } - if (object.metricHeaders) { - if (!Array.isArray(object.metricHeaders)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.metricHeaders: array expected"); - message.metricHeaders = []; - for (var i = 0; i < object.metricHeaders.length; ++i) { - if (typeof object.metricHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.metricHeaders: object expected"); - message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); - } - } - if (object.rows) { - if (!Array.isArray(object.rows)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.rows: array expected"); - message.rows = []; - for (var i = 0; i < object.rows.length; ++i) { - if (typeof object.rows[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.rows: object expected"); - message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); - } - } - if (object.totals) { - if (!Array.isArray(object.totals)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.totals: array expected"); - message.totals = []; - for (var i = 0; i < object.totals.length; ++i) { - if (typeof object.totals[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.totals: object expected"); - message.totals[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.totals[i]); - } - } - if (object.maximums) { - if (!Array.isArray(object.maximums)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.maximums: array expected"); - message.maximums = []; - for (var i = 0; i < object.maximums.length; ++i) { - if (typeof object.maximums[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.maximums: object expected"); - message.maximums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.maximums[i]); - } - } - if (object.minimums) { - if (!Array.isArray(object.minimums)) - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.minimums: array expected"); - message.minimums = []; - for (var i = 0; i < object.minimums.length; ++i) { - if (typeof object.minimums[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.minimums: object expected"); - message.minimums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.minimums[i]); - } + if (object.exclusion != null) { + if (typeof object.exclusion !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegment.exclusion: object expected"); + message.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.fromObject(object.exclusion); } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; - if (object.propertyQuota != null) { - if (typeof object.propertyQuota !== "object") - throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.propertyQuota: object expected"); - message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); - } - if (object.kind != null) - message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. + * Creates a plain object from an EventSegment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @static - * @param {google.analytics.data.v1beta.RunRealtimeReportResponse} message RunRealtimeReportResponse + * @param {google.analytics.data.v1alpha.EventSegment} message EventSegment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RunRealtimeReportResponse.toObject = function toObject(message, options) { + EventSegment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.dimensionHeaders = []; - object.metricHeaders = []; - object.rows = []; - object.totals = []; - object.maximums = []; - object.minimums = []; - } if (options.defaults) { - object.rowCount = 0; - object.propertyQuota = null; - object.kind = ""; - } - if (message.dimensionHeaders && message.dimensionHeaders.length) { - object.dimensionHeaders = []; - for (var j = 0; j < message.dimensionHeaders.length; ++j) - object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); - } - if (message.metricHeaders && message.metricHeaders.length) { - object.metricHeaders = []; - for (var j = 0; j < message.metricHeaders.length; ++j) - object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); - } - if (message.rows && message.rows.length) { - object.rows = []; - for (var j = 0; j < message.rows.length; ++j) - object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); - } - if (message.totals && message.totals.length) { - object.totals = []; - for (var j = 0; j < message.totals.length; ++j) - object.totals[j] = $root.google.analytics.data.v1beta.Row.toObject(message.totals[j], options); - } - if (message.maximums && message.maximums.length) { - object.maximums = []; - for (var j = 0; j < message.maximums.length; ++j) - object.maximums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.maximums[j], options); - } - if (message.minimums && message.minimums.length) { - object.minimums = []; - for (var j = 0; j < message.minimums.length; ++j) - object.minimums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.minimums[j], options); + object.eventInclusionCriteria = null; + object.exclusion = null; } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; - if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) - object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; + if (message.eventInclusionCriteria != null && message.hasOwnProperty("eventInclusionCriteria")) + object.eventInclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventInclusionCriteria, options); + if (message.exclusion != null && message.hasOwnProperty("exclusion")) + object.exclusion = $root.google.analytics.data.v1alpha.EventSegmentExclusion.toObject(message.exclusion, options); return object; }; /** - * Converts this RunRealtimeReportResponse to JSON. + * Converts this EventSegment to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @memberof google.analytics.data.v1alpha.EventSegment * @instance * @returns {Object.} JSON object */ - RunRealtimeReportResponse.prototype.toJSON = function toJSON() { + EventSegment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return RunRealtimeReportResponse; + return EventSegment; })(); - v1beta.DateRange = (function() { + v1alpha.EventSegmentCriteria = (function() { /** - * Properties of a DateRange. - * @memberof google.analytics.data.v1beta - * @interface IDateRange - * @property {string|null} [startDate] DateRange startDate - * @property {string|null} [endDate] DateRange endDate - * @property {string|null} [name] DateRange name + * Properties of an EventSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @interface IEventSegmentCriteria + * @property {Array.|null} [andConditionGroups] EventSegmentCriteria andConditionGroups */ /** - * Constructs a new DateRange. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a DateRange. - * @implements IDateRange + * Constructs a new EventSegmentCriteria. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an EventSegmentCriteria. + * @implements IEventSegmentCriteria * @constructor - * @param {google.analytics.data.v1beta.IDateRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set */ - function DateRange(properties) { + function EventSegmentCriteria(properties) { + this.andConditionGroups = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19481,101 +18724,78 @@ } /** - * DateRange startDate. - * @member {string} startDate - * @memberof google.analytics.data.v1beta.DateRange - * @instance - */ - DateRange.prototype.startDate = ""; - - /** - * DateRange endDate. - * @member {string} endDate - * @memberof google.analytics.data.v1beta.DateRange - * @instance - */ - DateRange.prototype.endDate = ""; - - /** - * DateRange name. - * @member {string} name - * @memberof google.analytics.data.v1beta.DateRange + * EventSegmentCriteria andConditionGroups. + * @member {Array.} andConditionGroups + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @instance */ - DateRange.prototype.name = ""; + EventSegmentCriteria.prototype.andConditionGroups = $util.emptyArray; /** - * Creates a new DateRange instance using the specified properties. + * Creates a new EventSegmentCriteria instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IDateRange=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DateRange} DateRange instance + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria instance */ - DateRange.create = function create(properties) { - return new DateRange(properties); + EventSegmentCriteria.create = function create(properties) { + return new EventSegmentCriteria(properties); }; /** - * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * Encodes the specified EventSegmentCriteria message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IDateRange} message DateRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DateRange.encode = function encode(message, writer) { + EventSegmentCriteria.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); - if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.andConditionGroups != null && message.andConditionGroups.length) + for (var i = 0; i < message.andConditionGroups.length; ++i) + $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.encode(message.andConditionGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * Encodes the specified EventSegmentCriteria message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentCriteria.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1beta.IDateRange} message DateRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentCriteria} message EventSegmentCriteria message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DateRange.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentCriteria.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DateRange message from the specified reader or buffer. + * Decodes an EventSegmentCriteria message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DateRange} DateRange + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DateRange.decode = function decode(reader, length) { + EventSegmentCriteria.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DateRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startDate = reader.string(); - break; - case 2: - message.endDate = reader.string(); - break; - case 3: - message.name = reader.string(); + if (!(message.andConditionGroups && message.andConditionGroups.length)) + message.andConditionGroups = []; + message.andConditionGroups.push($root.google.analytics.data.v1alpha.EventSegmentConditionGroup.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -19586,126 +18806,139 @@ }; /** - * Decodes a DateRange message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentCriteria message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DateRange} DateRange + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DateRange.decodeDelimited = function decodeDelimited(reader) { + EventSegmentCriteria.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DateRange message. + * Verifies an EventSegmentCriteria message. * @function verify - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DateRange.verify = function verify(message) { + EventSegmentCriteria.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startDate != null && message.hasOwnProperty("startDate")) - if (!$util.isString(message.startDate)) - return "startDate: string expected"; - if (message.endDate != null && message.hasOwnProperty("endDate")) - if (!$util.isString(message.endDate)) - return "endDate: string expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.andConditionGroups != null && message.hasOwnProperty("andConditionGroups")) { + if (!Array.isArray(message.andConditionGroups)) + return "andConditionGroups: array expected"; + for (var i = 0; i < message.andConditionGroups.length; ++i) { + var error = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.verify(message.andConditionGroups[i]); + if (error) + return "andConditionGroups." + error; + } + } return null; }; /** - * Creates a DateRange message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentCriteria message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DateRange} DateRange + * @returns {google.analytics.data.v1alpha.EventSegmentCriteria} EventSegmentCriteria */ - DateRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DateRange) + EventSegmentCriteria.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentCriteria) return object; - var message = new $root.google.analytics.data.v1beta.DateRange(); - if (object.startDate != null) - message.startDate = String(object.startDate); - if (object.endDate != null) - message.endDate = String(object.endDate); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1alpha.EventSegmentCriteria(); + if (object.andConditionGroups) { + if (!Array.isArray(object.andConditionGroups)) + throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: array expected"); + message.andConditionGroups = []; + for (var i = 0; i < object.andConditionGroups.length; ++i) { + if (typeof object.andConditionGroups[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentCriteria.andConditionGroups: object expected"); + message.andConditionGroups[i] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.fromObject(object.andConditionGroups[i]); + } + } return message; }; /** - * Creates a plain object from a DateRange message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentCriteria message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @static - * @param {google.analytics.data.v1beta.DateRange} message DateRange + * @param {google.analytics.data.v1alpha.EventSegmentCriteria} message EventSegmentCriteria * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DateRange.toObject = function toObject(message, options) { + EventSegmentCriteria.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.startDate = ""; - object.endDate = ""; - object.name = ""; + if (options.arrays || options.defaults) + object.andConditionGroups = []; + if (message.andConditionGroups && message.andConditionGroups.length) { + object.andConditionGroups = []; + for (var j = 0; j < message.andConditionGroups.length; ++j) + object.andConditionGroups[j] = $root.google.analytics.data.v1alpha.EventSegmentConditionGroup.toObject(message.andConditionGroups[j], options); } - if (message.startDate != null && message.hasOwnProperty("startDate")) - object.startDate = message.startDate; - if (message.endDate != null && message.hasOwnProperty("endDate")) - object.endDate = message.endDate; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; return object; }; /** - * Converts this DateRange to JSON. + * Converts this EventSegmentCriteria to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DateRange + * @memberof google.analytics.data.v1alpha.EventSegmentCriteria * @instance * @returns {Object.} JSON object */ - DateRange.prototype.toJSON = function toJSON() { + EventSegmentCriteria.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DateRange; + return EventSegmentCriteria; })(); - v1beta.MinuteRange = (function() { + /** + * EventCriteriaScoping enum. + * @name google.analytics.data.v1alpha.EventCriteriaScoping + * @enum {number} + * @property {number} EVENT_CRITERIA_SCOPING_UNSPECIFIED=0 EVENT_CRITERIA_SCOPING_UNSPECIFIED value + * @property {number} EVENT_CRITERIA_WITHIN_SAME_EVENT=1 EVENT_CRITERIA_WITHIN_SAME_EVENT value + */ + v1alpha.EventCriteriaScoping = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "EVENT_CRITERIA_SCOPING_UNSPECIFIED"] = 0; + values[valuesById[1] = "EVENT_CRITERIA_WITHIN_SAME_EVENT"] = 1; + return values; + })(); + + v1alpha.EventSegmentConditionGroup = (function() { /** - * Properties of a MinuteRange. - * @memberof google.analytics.data.v1beta - * @interface IMinuteRange - * @property {number|null} [startMinutesAgo] MinuteRange startMinutesAgo - * @property {number|null} [endMinutesAgo] MinuteRange endMinutesAgo - * @property {string|null} [name] MinuteRange name + * Properties of an EventSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @interface IEventSegmentConditionGroup + * @property {google.analytics.data.v1alpha.EventCriteriaScoping|null} [conditionScoping] EventSegmentConditionGroup conditionScoping + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [segmentFilterExpression] EventSegmentConditionGroup segmentFilterExpression */ /** - * Constructs a new MinuteRange. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a MinuteRange. - * @implements IMinuteRange + * Constructs a new EventSegmentConditionGroup. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an EventSegmentConditionGroup. + * @implements IEventSegmentConditionGroup * @constructor - * @param {google.analytics.data.v1beta.IMinuteRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set */ - function MinuteRange(properties) { + function EventSegmentConditionGroup(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19713,126 +18946,88 @@ } /** - * MinuteRange startMinutesAgo. - * @member {number|null|undefined} startMinutesAgo - * @memberof google.analytics.data.v1beta.MinuteRange - * @instance - */ - MinuteRange.prototype.startMinutesAgo = null; - - /** - * MinuteRange endMinutesAgo. - * @member {number|null|undefined} endMinutesAgo - * @memberof google.analytics.data.v1beta.MinuteRange - * @instance - */ - MinuteRange.prototype.endMinutesAgo = null; - - /** - * MinuteRange name. - * @member {string} name - * @memberof google.analytics.data.v1beta.MinuteRange - * @instance - */ - MinuteRange.prototype.name = ""; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * MinuteRange _startMinutesAgo. - * @member {"startMinutesAgo"|undefined} _startMinutesAgo - * @memberof google.analytics.data.v1beta.MinuteRange + * EventSegmentConditionGroup conditionScoping. + * @member {google.analytics.data.v1alpha.EventCriteriaScoping} conditionScoping + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @instance */ - Object.defineProperty(MinuteRange.prototype, "_startMinutesAgo", { - get: $util.oneOfGetter($oneOfFields = ["startMinutesAgo"]), - set: $util.oneOfSetter($oneOfFields) - }); + EventSegmentConditionGroup.prototype.conditionScoping = 0; /** - * MinuteRange _endMinutesAgo. - * @member {"endMinutesAgo"|undefined} _endMinutesAgo - * @memberof google.analytics.data.v1beta.MinuteRange + * EventSegmentConditionGroup segmentFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} segmentFilterExpression + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @instance */ - Object.defineProperty(MinuteRange.prototype, "_endMinutesAgo", { - get: $util.oneOfGetter($oneOfFields = ["endMinutesAgo"]), - set: $util.oneOfSetter($oneOfFields) - }); + EventSegmentConditionGroup.prototype.segmentFilterExpression = null; /** - * Creates a new MinuteRange instance using the specified properties. + * Creates a new EventSegmentConditionGroup instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IMinuteRange=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange instance + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup instance */ - MinuteRange.create = function create(properties) { - return new MinuteRange(properties); + EventSegmentConditionGroup.create = function create(properties) { + return new EventSegmentConditionGroup(properties); }; /** - * Encodes the specified MinuteRange message. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * Encodes the specified EventSegmentConditionGroup message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IMinuteRange} message MinuteRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MinuteRange.encode = function encode(message, writer) { + EventSegmentConditionGroup.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startMinutesAgo != null && Object.hasOwnProperty.call(message, "startMinutesAgo")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.startMinutesAgo); - if (message.endMinutesAgo != null && Object.hasOwnProperty.call(message, "endMinutesAgo")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.endMinutesAgo); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.conditionScoping != null && Object.hasOwnProperty.call(message, "conditionScoping")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.conditionScoping); + if (message.segmentFilterExpression != null && Object.hasOwnProperty.call(message, "segmentFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.segmentFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified MinuteRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * Encodes the specified EventSegmentConditionGroup message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentConditionGroup.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.IMinuteRange} message MinuteRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentConditionGroup} message EventSegmentConditionGroup message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MinuteRange.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentConditionGroup.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MinuteRange message from the specified reader or buffer. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MinuteRange.decode = function decode(reader, length) { + EventSegmentConditionGroup.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MinuteRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startMinutesAgo = reader.int32(); + message.conditionScoping = reader.int32(); break; case 2: - message.endMinutesAgo = reader.int32(); - break; - case 3: - message.name = reader.string(); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -19843,133 +19038,135 @@ }; /** - * Decodes a MinuteRange message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentConditionGroup message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MinuteRange.decodeDelimited = function decodeDelimited(reader) { + EventSegmentConditionGroup.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MinuteRange message. + * Verifies an EventSegmentConditionGroup message. * @function verify - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MinuteRange.verify = function verify(message) { + EventSegmentConditionGroup.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.startMinutesAgo != null && message.hasOwnProperty("startMinutesAgo")) { - properties._startMinutesAgo = 1; - if (!$util.isInteger(message.startMinutesAgo)) - return "startMinutesAgo: integer expected"; - } - if (message.endMinutesAgo != null && message.hasOwnProperty("endMinutesAgo")) { - properties._endMinutesAgo = 1; - if (!$util.isInteger(message.endMinutesAgo)) - return "endMinutesAgo: integer expected"; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + switch (message.conditionScoping) { + default: + return "conditionScoping: enum value expected"; + case 0: + case 1: + break; + } + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.segmentFilterExpression); + if (error) + return "segmentFilterExpression." + error; } - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; return null; }; /** - * Creates a MinuteRange message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentConditionGroup message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + * @returns {google.analytics.data.v1alpha.EventSegmentConditionGroup} EventSegmentConditionGroup */ - MinuteRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.MinuteRange) + EventSegmentConditionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentConditionGroup) return object; - var message = new $root.google.analytics.data.v1beta.MinuteRange(); - if (object.startMinutesAgo != null) - message.startMinutesAgo = object.startMinutesAgo | 0; - if (object.endMinutesAgo != null) - message.endMinutesAgo = object.endMinutesAgo | 0; - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1alpha.EventSegmentConditionGroup(); + switch (object.conditionScoping) { + case "EVENT_CRITERIA_SCOPING_UNSPECIFIED": + case 0: + message.conditionScoping = 0; + break; + case "EVENT_CRITERIA_WITHIN_SAME_EVENT": + case 1: + message.conditionScoping = 1; + break; + } + if (object.segmentFilterExpression != null) { + if (typeof object.segmentFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentConditionGroup.segmentFilterExpression: object expected"); + message.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.segmentFilterExpression); + } return message; }; /** - * Creates a plain object from a MinuteRange message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentConditionGroup message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @static - * @param {google.analytics.data.v1beta.MinuteRange} message MinuteRange + * @param {google.analytics.data.v1alpha.EventSegmentConditionGroup} message EventSegmentConditionGroup * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MinuteRange.toObject = function toObject(message, options) { + EventSegmentConditionGroup.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.startMinutesAgo != null && message.hasOwnProperty("startMinutesAgo")) { - object.startMinutesAgo = message.startMinutesAgo; - if (options.oneofs) - object._startMinutesAgo = "startMinutesAgo"; - } - if (message.endMinutesAgo != null && message.hasOwnProperty("endMinutesAgo")) { - object.endMinutesAgo = message.endMinutesAgo; - if (options.oneofs) - object._endMinutesAgo = "endMinutesAgo"; + if (options.defaults) { + object.conditionScoping = options.enums === String ? "EVENT_CRITERIA_SCOPING_UNSPECIFIED" : 0; + object.segmentFilterExpression = null; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (message.conditionScoping != null && message.hasOwnProperty("conditionScoping")) + object.conditionScoping = options.enums === String ? $root.google.analytics.data.v1alpha.EventCriteriaScoping[message.conditionScoping] : message.conditionScoping; + if (message.segmentFilterExpression != null && message.hasOwnProperty("segmentFilterExpression")) + object.segmentFilterExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.segmentFilterExpression, options); return object; }; /** - * Converts this MinuteRange to JSON. + * Converts this EventSegmentConditionGroup to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.MinuteRange + * @memberof google.analytics.data.v1alpha.EventSegmentConditionGroup * @instance * @returns {Object.} JSON object */ - MinuteRange.prototype.toJSON = function toJSON() { + EventSegmentConditionGroup.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MinuteRange; + return EventSegmentConditionGroup; })(); - v1beta.Dimension = (function() { + v1alpha.EventSegmentExclusion = (function() { /** - * Properties of a Dimension. - * @memberof google.analytics.data.v1beta - * @interface IDimension - * @property {string|null} [name] Dimension name - * @property {google.analytics.data.v1beta.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression + * Properties of an EventSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @interface IEventSegmentExclusion + * @property {google.analytics.data.v1alpha.EventExclusionDuration|null} [eventExclusionDuration] EventSegmentExclusion eventExclusionDuration + * @property {google.analytics.data.v1alpha.IEventSegmentCriteria|null} [eventExclusionCriteria] EventSegmentExclusion eventExclusionCriteria */ /** - * Constructs a new Dimension. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Dimension. - * @implements IDimension + * Constructs a new EventSegmentExclusion. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents an EventSegmentExclusion. + * @implements IEventSegmentExclusion * @constructor - * @param {google.analytics.data.v1beta.IDimension=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set */ - function Dimension(properties) { + function EventSegmentExclusion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19977,88 +19174,88 @@ } /** - * Dimension name. - * @member {string} name - * @memberof google.analytics.data.v1beta.Dimension + * EventSegmentExclusion eventExclusionDuration. + * @member {google.analytics.data.v1alpha.EventExclusionDuration} eventExclusionDuration + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance */ - Dimension.prototype.name = ""; + EventSegmentExclusion.prototype.eventExclusionDuration = 0; /** - * Dimension dimensionExpression. - * @member {google.analytics.data.v1beta.IDimensionExpression|null|undefined} dimensionExpression - * @memberof google.analytics.data.v1beta.Dimension + * EventSegmentExclusion eventExclusionCriteria. + * @member {google.analytics.data.v1alpha.IEventSegmentCriteria|null|undefined} eventExclusionCriteria + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance */ - Dimension.prototype.dimensionExpression = null; + EventSegmentExclusion.prototype.eventExclusionCriteria = null; /** - * Creates a new Dimension instance using the specified properties. + * Creates a new EventSegmentExclusion instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IDimension=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Dimension} Dimension instance + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion instance */ - Dimension.create = function create(properties) { - return new Dimension(properties); + EventSegmentExclusion.create = function create(properties) { + return new EventSegmentExclusion(properties); }; /** - * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * Encodes the specified EventSegmentExclusion message. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IDimension} message Dimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Dimension.encode = function encode(message, writer) { + EventSegmentExclusion.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) - $root.google.analytics.data.v1beta.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.eventExclusionDuration != null && Object.hasOwnProperty.call(message, "eventExclusionDuration")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.eventExclusionDuration); + if (message.eventExclusionCriteria != null && Object.hasOwnProperty.call(message, "eventExclusionCriteria")) + $root.google.analytics.data.v1alpha.EventSegmentCriteria.encode(message.eventExclusionCriteria, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * Encodes the specified EventSegmentExclusion message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.EventSegmentExclusion.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1beta.IDimension} message Dimension message or plain object to encode + * @param {google.analytics.data.v1alpha.IEventSegmentExclusion} message EventSegmentExclusion message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Dimension.encodeDelimited = function encodeDelimited(message, writer) { + EventSegmentExclusion.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Dimension message from the specified reader or buffer. + * Decodes an EventSegmentExclusion message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Dimension.decode = function decode(reader, length) { + EventSegmentExclusion.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Dimension(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.eventExclusionDuration = reader.int32(); break; case 2: - message.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.decode(reader, reader.uint32()); + message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -20069,123 +19266,151 @@ }; /** - * Decodes a Dimension message from the specified reader or buffer, length delimited. + * Decodes an EventSegmentExclusion message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Dimension.decodeDelimited = function decodeDelimited(reader) { + EventSegmentExclusion.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Dimension message. + * Verifies an EventSegmentExclusion message. * @function verify - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Dimension.verify = function verify(message) { + EventSegmentExclusion.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { - var error = $root.google.analytics.data.v1beta.DimensionExpression.verify(message.dimensionExpression); + if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) + switch (message.eventExclusionDuration) { + default: + return "eventExclusionDuration: enum value expected"; + case 0: + case 1: + break; + } + if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) { + var error = $root.google.analytics.data.v1alpha.EventSegmentCriteria.verify(message.eventExclusionCriteria); if (error) - return "dimensionExpression." + error; + return "eventExclusionCriteria." + error; } return null; }; /** - * Creates a Dimension message from a plain object. Also converts values to their respective internal types. + * Creates an EventSegmentExclusion message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Dimension} Dimension + * @returns {google.analytics.data.v1alpha.EventSegmentExclusion} EventSegmentExclusion */ - Dimension.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Dimension) + EventSegmentExclusion.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.EventSegmentExclusion) return object; - var message = new $root.google.analytics.data.v1beta.Dimension(); - if (object.name != null) - message.name = String(object.name); - if (object.dimensionExpression != null) { - if (typeof object.dimensionExpression !== "object") - throw TypeError(".google.analytics.data.v1beta.Dimension.dimensionExpression: object expected"); - message.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.fromObject(object.dimensionExpression); + var message = new $root.google.analytics.data.v1alpha.EventSegmentExclusion(); + switch (object.eventExclusionDuration) { + case "EVENT_EXCLUSION_DURATION_UNSPECIFIED": + case 0: + message.eventExclusionDuration = 0; + break; + case "EVENT_EXCLUSION_PERMANENT": + case 1: + message.eventExclusionDuration = 1; + break; + } + if (object.eventExclusionCriteria != null) { + if (typeof object.eventExclusionCriteria !== "object") + throw TypeError(".google.analytics.data.v1alpha.EventSegmentExclusion.eventExclusionCriteria: object expected"); + message.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.fromObject(object.eventExclusionCriteria); } return message; }; /** - * Creates a plain object from a Dimension message. Also converts values to other types if specified. + * Creates a plain object from an EventSegmentExclusion message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @static - * @param {google.analytics.data.v1beta.Dimension} message Dimension + * @param {google.analytics.data.v1alpha.EventSegmentExclusion} message EventSegmentExclusion * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Dimension.toObject = function toObject(message, options) { + EventSegmentExclusion.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.name = ""; - object.dimensionExpression = null; + object.eventExclusionDuration = options.enums === String ? "EVENT_EXCLUSION_DURATION_UNSPECIFIED" : 0; + object.eventExclusionCriteria = null; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) - object.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.toObject(message.dimensionExpression, options); + if (message.eventExclusionDuration != null && message.hasOwnProperty("eventExclusionDuration")) + object.eventExclusionDuration = options.enums === String ? $root.google.analytics.data.v1alpha.EventExclusionDuration[message.eventExclusionDuration] : message.eventExclusionDuration; + if (message.eventExclusionCriteria != null && message.hasOwnProperty("eventExclusionCriteria")) + object.eventExclusionCriteria = $root.google.analytics.data.v1alpha.EventSegmentCriteria.toObject(message.eventExclusionCriteria, options); return object; }; /** - * Converts this Dimension to JSON. + * Converts this EventSegmentExclusion to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Dimension + * @memberof google.analytics.data.v1alpha.EventSegmentExclusion * @instance * @returns {Object.} JSON object */ - Dimension.prototype.toJSON = function toJSON() { + EventSegmentExclusion.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Dimension; + return EventSegmentExclusion; })(); - v1beta.DimensionExpression = (function() { + /** + * EventExclusionDuration enum. + * @name google.analytics.data.v1alpha.EventExclusionDuration + * @enum {number} + * @property {number} EVENT_EXCLUSION_DURATION_UNSPECIFIED=0 EVENT_EXCLUSION_DURATION_UNSPECIFIED value + * @property {number} EVENT_EXCLUSION_PERMANENT=1 EVENT_EXCLUSION_PERMANENT value + */ + v1alpha.EventExclusionDuration = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "EVENT_EXCLUSION_DURATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "EVENT_EXCLUSION_PERMANENT"] = 1; + return values; + })(); + + v1alpha.Segment = (function() { /** - * Properties of a DimensionExpression. - * @memberof google.analytics.data.v1beta - * @interface IDimensionExpression - * @property {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase - * @property {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase - * @property {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate + * Properties of a Segment. + * @memberof google.analytics.data.v1alpha + * @interface ISegment + * @property {string|null} [name] Segment name + * @property {google.analytics.data.v1alpha.IUserSegment|null} [userSegment] Segment userSegment + * @property {google.analytics.data.v1alpha.ISessionSegment|null} [sessionSegment] Segment sessionSegment + * @property {google.analytics.data.v1alpha.IEventSegment|null} [eventSegment] Segment eventSegment */ /** - * Constructs a new DimensionExpression. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a DimensionExpression. - * @implements IDimensionExpression + * Constructs a new Segment. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a Segment. + * @implements ISegment * @constructor - * @param {google.analytics.data.v1beta.IDimensionExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set */ - function DimensionExpression(properties) { + function Segment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20193,115 +19418,128 @@ } /** - * DimensionExpression lowerCase. - * @member {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null|undefined} lowerCase - * @memberof google.analytics.data.v1beta.DimensionExpression + * Segment name. + * @member {string} name + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - DimensionExpression.prototype.lowerCase = null; + Segment.prototype.name = ""; /** - * DimensionExpression upperCase. - * @member {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null|undefined} upperCase - * @memberof google.analytics.data.v1beta.DimensionExpression + * Segment userSegment. + * @member {google.analytics.data.v1alpha.IUserSegment|null|undefined} userSegment + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - DimensionExpression.prototype.upperCase = null; + Segment.prototype.userSegment = null; /** - * DimensionExpression concatenate. - * @member {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null|undefined} concatenate - * @memberof google.analytics.data.v1beta.DimensionExpression + * Segment sessionSegment. + * @member {google.analytics.data.v1alpha.ISessionSegment|null|undefined} sessionSegment + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - DimensionExpression.prototype.concatenate = null; + Segment.prototype.sessionSegment = null; + + /** + * Segment eventSegment. + * @member {google.analytics.data.v1alpha.IEventSegment|null|undefined} eventSegment + * @memberof google.analytics.data.v1alpha.Segment + * @instance + */ + Segment.prototype.eventSegment = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * DimensionExpression oneExpression. - * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression - * @memberof google.analytics.data.v1beta.DimensionExpression + * Segment oneSegmentScope. + * @member {"userSegment"|"sessionSegment"|"eventSegment"|undefined} oneSegmentScope + * @memberof google.analytics.data.v1alpha.Segment * @instance */ - Object.defineProperty(DimensionExpression.prototype, "oneExpression", { - get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), + Object.defineProperty(Segment.prototype, "oneSegmentScope", { + get: $util.oneOfGetter($oneOfFields = ["userSegment", "sessionSegment", "eventSegment"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new DimensionExpression instance using the specified properties. + * Creates a new Segment instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1beta.IDimensionExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression instance + * @param {google.analytics.data.v1alpha.ISegment=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.Segment} Segment instance */ - DimensionExpression.create = function create(properties) { - return new DimensionExpression(properties); + Segment.create = function create(properties) { + return new Segment(properties); }; /** - * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * Encodes the specified Segment message. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1beta.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionExpression.encode = function encode(message, writer) { + Segment.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) - $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) - $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) - $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.userSegment != null && Object.hasOwnProperty.call(message, "userSegment")) + $root.google.analytics.data.v1alpha.UserSegment.encode(message.userSegment, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.sessionSegment != null && Object.hasOwnProperty.call(message, "sessionSegment")) + $root.google.analytics.data.v1alpha.SessionSegment.encode(message.sessionSegment, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.eventSegment != null && Object.hasOwnProperty.call(message, "eventSegment")) + $root.google.analytics.data.v1alpha.EventSegment.encode(message.eventSegment, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * Encodes the specified Segment message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.Segment.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1beta.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegment} message Segment message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { + Segment.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionExpression message from the specified reader or buffer. + * Decodes a Segment message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + * @returns {google.analytics.data.v1alpha.Segment} Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionExpression.decode = function decode(reader, length) { + Segment.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.Segment(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 4: - message.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + case 1: + message.name = reader.string(); break; - case 5: - message.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + case 2: + message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.decode(reader, reader.uint32()); break; - case 6: - message.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); + case 3: + message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.decode(reader, reader.uint32()); + break; + case 4: + message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -20312,572 +19550,514 @@ }; /** - * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * Decodes a Segment message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + * @returns {google.analytics.data.v1alpha.Segment} Segment * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionExpression.decodeDelimited = function decodeDelimited(reader) { + Segment.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionExpression message. + * Verifies a Segment message. * @function verify - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionExpression.verify = function verify(message) { + Segment.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - properties.oneExpression = 1; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.userSegment != null && message.hasOwnProperty("userSegment")) { + properties.oneSegmentScope = 1; { - var error = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify(message.lowerCase); + var error = $root.google.analytics.data.v1alpha.UserSegment.verify(message.userSegment); if (error) - return "lowerCase." + error; + return "userSegment." + error; } } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; + if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { + if (properties.oneSegmentScope === 1) + return "oneSegmentScope: multiple values"; + properties.oneSegmentScope = 1; { - var error = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify(message.upperCase); + var error = $root.google.analytics.data.v1alpha.SessionSegment.verify(message.sessionSegment); if (error) - return "upperCase." + error; + return "sessionSegment." + error; } } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - if (properties.oneExpression === 1) - return "oneExpression: multiple values"; - properties.oneExpression = 1; + if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { + if (properties.oneSegmentScope === 1) + return "oneSegmentScope: multiple values"; + properties.oneSegmentScope = 1; { - var error = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify(message.concatenate); + var error = $root.google.analytics.data.v1alpha.EventSegment.verify(message.eventSegment); if (error) - return "concatenate." + error; + return "eventSegment." + error; } } return null; }; /** - * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. + * Creates a Segment message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + * @returns {google.analytics.data.v1alpha.Segment} Segment */ - DimensionExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression) + Segment.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.Segment) return object; - var message = new $root.google.analytics.data.v1beta.DimensionExpression(); - if (object.lowerCase != null) { - if (typeof object.lowerCase !== "object") - throw TypeError(".google.analytics.data.v1beta.DimensionExpression.lowerCase: object expected"); - message.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.fromObject(object.lowerCase); + var message = new $root.google.analytics.data.v1alpha.Segment(); + if (object.name != null) + message.name = String(object.name); + if (object.userSegment != null) { + if (typeof object.userSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.userSegment: object expected"); + message.userSegment = $root.google.analytics.data.v1alpha.UserSegment.fromObject(object.userSegment); } - if (object.upperCase != null) { - if (typeof object.upperCase !== "object") - throw TypeError(".google.analytics.data.v1beta.DimensionExpression.upperCase: object expected"); - message.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.fromObject(object.upperCase); + if (object.sessionSegment != null) { + if (typeof object.sessionSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.sessionSegment: object expected"); + message.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.fromObject(object.sessionSegment); } - if (object.concatenate != null) { - if (typeof object.concatenate !== "object") - throw TypeError(".google.analytics.data.v1beta.DimensionExpression.concatenate: object expected"); - message.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); + if (object.eventSegment != null) { + if (typeof object.eventSegment !== "object") + throw TypeError(".google.analytics.data.v1alpha.Segment.eventSegment: object expected"); + message.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.fromObject(object.eventSegment); } return message; }; /** - * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * Creates a plain object from a Segment message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @static - * @param {google.analytics.data.v1beta.DimensionExpression} message DimensionExpression + * @param {google.analytics.data.v1alpha.Segment} message Segment * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionExpression.toObject = function toObject(message, options) { + Segment.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { - object.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.userSegment != null && message.hasOwnProperty("userSegment")) { + object.userSegment = $root.google.analytics.data.v1alpha.UserSegment.toObject(message.userSegment, options); if (options.oneofs) - object.oneExpression = "lowerCase"; + object.oneSegmentScope = "userSegment"; } - if (message.upperCase != null && message.hasOwnProperty("upperCase")) { - object.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.toObject(message.upperCase, options); + if (message.sessionSegment != null && message.hasOwnProperty("sessionSegment")) { + object.sessionSegment = $root.google.analytics.data.v1alpha.SessionSegment.toObject(message.sessionSegment, options); if (options.oneofs) - object.oneExpression = "upperCase"; + object.oneSegmentScope = "sessionSegment"; } - if (message.concatenate != null && message.hasOwnProperty("concatenate")) { - object.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); + if (message.eventSegment != null && message.hasOwnProperty("eventSegment")) { + object.eventSegment = $root.google.analytics.data.v1alpha.EventSegment.toObject(message.eventSegment, options); if (options.oneofs) - object.oneExpression = "concatenate"; + object.oneSegmentScope = "eventSegment"; } return object; }; /** - * Converts this DimensionExpression to JSON. + * Converts this Segment to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionExpression + * @memberof google.analytics.data.v1alpha.Segment * @instance * @returns {Object.} JSON object */ - DimensionExpression.prototype.toJSON = function toJSON() { + Segment.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - DimensionExpression.CaseExpression = (function() { + return Segment; + })(); - /** - * Properties of a CaseExpression. - * @memberof google.analytics.data.v1beta.DimensionExpression - * @interface ICaseExpression - * @property {string|null} [dimensionName] CaseExpression dimensionName - */ + v1alpha.SegmentFilterExpression = (function() { - /** - * Constructs a new CaseExpression. - * @memberof google.analytics.data.v1beta.DimensionExpression - * @classdesc Represents a CaseExpression. - * @implements ICaseExpression - * @constructor - * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression=} [properties] Properties to set - */ - function CaseExpression(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a SegmentFilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentFilterExpression + * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [andGroup] SegmentFilterExpression andGroup + * @property {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null} [orGroup] SegmentFilterExpression orGroup + * @property {google.analytics.data.v1alpha.ISegmentFilterExpression|null} [notExpression] SegmentFilterExpression notExpression + * @property {google.analytics.data.v1alpha.ISegmentFilter|null} [segmentFilter] SegmentFilterExpression segmentFilter + * @property {google.analytics.data.v1alpha.ISegmentEventFilter|null} [segmentEventFilter] SegmentFilterExpression segmentEventFilter + */ - /** - * CaseExpression dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @instance - */ - CaseExpression.prototype.dimensionName = ""; + /** + * Constructs a new SegmentFilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentFilterExpression. + * @implements ISegmentFilterExpression + * @constructor + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set + */ + function SegmentFilterExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new CaseExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression instance - */ - CaseExpression.create = function create(properties) { - return new CaseExpression(properties); - }; + /** + * SegmentFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.andGroup = null; - /** - * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - return writer; - }; + /** + * SegmentFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.orGroup = null; - /** - * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * SegmentFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.ISegmentFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.notExpression = null; - /** - * Decodes a CaseExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * SegmentFilterExpression segmentFilter. + * @member {google.analytics.data.v1alpha.ISegmentFilter|null|undefined} segmentFilter + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.segmentFilter = null; - /** - * Decodes a CaseExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CaseExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * SegmentFilterExpression segmentEventFilter. + * @member {google.analytics.data.v1alpha.ISegmentEventFilter|null|undefined} segmentEventFilter + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + SegmentFilterExpression.prototype.segmentEventFilter = null; - /** - * Verifies a CaseExpression message. - * @function verify - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CaseExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - return null; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression - */ - CaseExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression) - return object; - var message = new $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - return message; - }; + /** + * SegmentFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"segmentFilter"|"segmentEventFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + */ + Object.defineProperty(SegmentFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentFilter", "segmentEventFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.CaseExpression} message CaseExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CaseExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.dimensionName = ""; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - return object; - }; + /** + * Creates a new SegmentFilterExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression instance + */ + SegmentFilterExpression.create = function create(properties) { + return new SegmentFilterExpression(properties); + }; - /** - * Converts this CaseExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression - * @instance - * @returns {Object.} JSON object - */ - CaseExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified SegmentFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentFilterExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.segmentFilter != null && Object.hasOwnProperty.call(message, "segmentFilter")) + $root.google.analytics.data.v1alpha.SegmentFilter.encode(message.segmentFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.segmentEventFilter != null && Object.hasOwnProperty.call(message, "segmentEventFilter")) + $root.google.analytics.data.v1alpha.SegmentEventFilter.encode(message.segmentEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + return writer; + }; - return CaseExpression; - })(); + /** + * Encodes the specified SegmentFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {google.analytics.data.v1alpha.ISegmentFilterExpression} message SegmentFilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - DimensionExpression.ConcatenateExpression = (function() { + /** + * Decodes a SegmentFilterExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentFilterExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); + break; + case 2: + message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.decode(reader, reader.uint32()); + break; + case 3: + message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32()); + break; + case 4: + message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.decode(reader, reader.uint32()); + break; + case 5: + message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Properties of a ConcatenateExpression. - * @memberof google.analytics.data.v1beta.DimensionExpression - * @interface IConcatenateExpression - * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames - * @property {string|null} [delimiter] ConcatenateExpression delimiter - */ + /** + * Decodes a SegmentFilterExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentFilterExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new ConcatenateExpression. - * @memberof google.analytics.data.v1beta.DimensionExpression - * @classdesc Represents a ConcatenateExpression. - * @implements IConcatenateExpression - * @constructor - * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - */ - function ConcatenateExpression(properties) { - this.dimensionNames = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Verifies a SegmentFilterExpression message. + * @function verify + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SegmentFilterExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentFilter.verify(message.segmentFilter); + if (error) + return "segmentFilter." + error; + } + } + if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentEventFilter.verify(message.segmentEventFilter); + if (error) + return "segmentEventFilter." + error; + } + } + return null; + }; - /** - * ConcatenateExpression dimensionNames. - * @member {Array.} dimensionNames - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; - - /** - * ConcatenateExpression delimiter. - * @member {string} delimiter - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @instance - */ - ConcatenateExpression.prototype.delimiter = ""; + /** + * Creates a SegmentFilterExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SegmentFilterExpression} SegmentFilterExpression + */ + SegmentFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpression) + return object; + var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.notExpression); + } + if (object.segmentFilter != null) { + if (typeof object.segmentFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentFilter: object expected"); + message.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.fromObject(object.segmentFilter); + } + if (object.segmentEventFilter != null) { + if (typeof object.segmentEventFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpression.segmentEventFilter: object expected"); + message.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.fromObject(object.segmentEventFilter); + } + return message; + }; - /** - * Creates a new ConcatenateExpression instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance - */ - ConcatenateExpression.create = function create(properties) { - return new ConcatenateExpression(properties); - }; - - /** - * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionNames != null && message.dimensionNames.length) - for (var i = 0; i < message.dimensionNames.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); - if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); - return writer; - }; - - /** - * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.dimensionNames && message.dimensionNames.length)) - message.dimensionNames = []; - message.dimensionNames.push(reader.string()); - break; - case 2: - message.delimiter = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ConcatenateExpression message. - * @function verify - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ConcatenateExpression.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { - if (!Array.isArray(message.dimensionNames)) - return "dimensionNames: array expected"; - for (var i = 0; i < message.dimensionNames.length; ++i) - if (!$util.isString(message.dimensionNames[i])) - return "dimensionNames: string[] expected"; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - if (!$util.isString(message.delimiter)) - return "delimiter: string expected"; - return null; - }; - - /** - * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression - */ - ConcatenateExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression) - return object; - var message = new $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression(); - if (object.dimensionNames) { - if (!Array.isArray(object.dimensionNames)) - throw TypeError(".google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); - message.dimensionNames = []; - for (var i = 0; i < object.dimensionNames.length; ++i) - message.dimensionNames[i] = String(object.dimensionNames[i]); - } - if (object.delimiter != null) - message.delimiter = String(object.delimiter); - return message; - }; - - /** - * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @static - * @param {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} message ConcatenateExpression - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ConcatenateExpression.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.dimensionNames = []; - if (options.defaults) - object.delimiter = ""; - if (message.dimensionNames && message.dimensionNames.length) { - object.dimensionNames = []; - for (var j = 0; j < message.dimensionNames.length; ++j) - object.dimensionNames[j] = message.dimensionNames[j]; - } - if (message.delimiter != null && message.hasOwnProperty("delimiter")) - object.delimiter = message.delimiter; - return object; - }; - - /** - * Converts this ConcatenateExpression to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression - * @instance - * @returns {Object.} JSON object - */ - ConcatenateExpression.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a SegmentFilterExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @static + * @param {google.analytics.data.v1alpha.SegmentFilterExpression} message SegmentFilterExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SegmentFilterExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.SegmentFilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.segmentFilter != null && message.hasOwnProperty("segmentFilter")) { + object.segmentFilter = $root.google.analytics.data.v1alpha.SegmentFilter.toObject(message.segmentFilter, options); + if (options.oneofs) + object.expr = "segmentFilter"; + } + if (message.segmentEventFilter != null && message.hasOwnProperty("segmentEventFilter")) { + object.segmentEventFilter = $root.google.analytics.data.v1alpha.SegmentEventFilter.toObject(message.segmentEventFilter, options); + if (options.oneofs) + object.expr = "segmentEventFilter"; + } + return object; + }; - return ConcatenateExpression; - })(); + /** + * Converts this SegmentFilterExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SegmentFilterExpression + * @instance + * @returns {Object.} JSON object + */ + SegmentFilterExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return DimensionExpression; + return SegmentFilterExpression; })(); - v1beta.Metric = (function() { + v1alpha.SegmentFilterExpressionList = (function() { /** - * Properties of a Metric. - * @memberof google.analytics.data.v1beta - * @interface IMetric - * @property {string|null} [name] Metric name - * @property {string|null} [expression] Metric expression - * @property {boolean|null} [invisible] Metric invisible + * Properties of a SegmentFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentFilterExpressionList + * @property {Array.|null} [expressions] SegmentFilterExpressionList expressions */ /** - * Constructs a new Metric. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Metric. - * @implements IMetric + * Constructs a new SegmentFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentFilterExpressionList. + * @implements ISegmentFilterExpressionList * @constructor - * @param {google.analytics.data.v1beta.IMetric=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set */ - function Metric(properties) { + function SegmentFilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20885,101 +20065,78 @@ } /** - * Metric name. - * @member {string} name - * @memberof google.analytics.data.v1beta.Metric - * @instance - */ - Metric.prototype.name = ""; - - /** - * Metric expression. - * @member {string} expression - * @memberof google.analytics.data.v1beta.Metric - * @instance - */ - Metric.prototype.expression = ""; - - /** - * Metric invisible. - * @member {boolean} invisible - * @memberof google.analytics.data.v1beta.Metric + * SegmentFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @instance */ - Metric.prototype.invisible = false; + SegmentFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new Metric instance using the specified properties. + * Creates a new SegmentFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1beta.IMetric=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Metric} Metric instance + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList instance */ - Metric.create = function create(properties) { - return new Metric(properties); + SegmentFilterExpressionList.create = function create(properties) { + return new SegmentFilterExpressionList(properties); }; /** - * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * Encodes the specified SegmentFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1beta.IMetric} message Metric message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metric.encode = function encode(message, writer) { + SegmentFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.expression); - if (message.invisible != null && Object.hasOwnProperty.call(message, "invisible")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.invisible); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.SegmentFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * Encodes the specified SegmentFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1beta.IMetric} message Metric message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterExpressionList} message SegmentFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Metric.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Metric message from the specified reader or buffer. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Metric} Metric + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metric.decode = function decode(reader, length) { + SegmentFilterExpressionList.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Metric(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); - break; - case 2: - message.expression = reader.string(); - break; - case 3: - message.invisible = reader.bool(); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.SegmentFilterExpression.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -20990,127 +20147,129 @@ }; /** - * Decodes a Metric message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Metric} Metric + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metric.decodeDelimited = function decodeDelimited(reader) { + SegmentFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Metric message. + * Verifies a SegmentFilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metric.verify = function verify(message) { + SegmentFilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.expression != null && message.hasOwnProperty("expression")) - if (!$util.isString(message.expression)) - return "expression: string expected"; - if (message.invisible != null && message.hasOwnProperty("invisible")) - if (typeof message.invisible !== "boolean") - return "invisible: boolean expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; + } + } return null; }; /** - * Creates a Metric message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Metric} Metric + * @returns {google.analytics.data.v1alpha.SegmentFilterExpressionList} SegmentFilterExpressionList */ - Metric.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Metric) + SegmentFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1beta.Metric(); - if (object.name != null) - message.name = String(object.name); - if (object.expression != null) - message.expression = String(object.expression); - if (object.invisible != null) - message.invisible = Boolean(object.invisible); + var message = new $root.google.analytics.data.v1alpha.SegmentFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.fromObject(object.expressions[i]); + } + } return message; }; /** - * Creates a plain object from a Metric message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @static - * @param {google.analytics.data.v1beta.Metric} message Metric + * @param {google.analytics.data.v1alpha.SegmentFilterExpressionList} message SegmentFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Metric.toObject = function toObject(message, options) { + SegmentFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.name = ""; - object.expression = ""; - object.invisible = false; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentFilterExpression.toObject(message.expressions[j], options); } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.expression != null && message.hasOwnProperty("expression")) - object.expression = message.expression; - if (message.invisible != null && message.hasOwnProperty("invisible")) - object.invisible = message.invisible; return object; }; /** - * Converts this Metric to JSON. + * Converts this SegmentFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Metric + * @memberof google.analytics.data.v1alpha.SegmentFilterExpressionList * @instance * @returns {Object.} JSON object */ - Metric.prototype.toJSON = function toJSON() { + SegmentFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Metric; + return SegmentFilterExpressionList; })(); - v1beta.FilterExpression = (function() { + v1alpha.SegmentFilter = (function() { /** - * Properties of a FilterExpression. - * @memberof google.analytics.data.v1beta - * @interface IFilterExpression - * @property {google.analytics.data.v1beta.IFilterExpressionList|null} [andGroup] FilterExpression andGroup - * @property {google.analytics.data.v1beta.IFilterExpressionList|null} [orGroup] FilterExpression orGroup - * @property {google.analytics.data.v1beta.IFilterExpression|null} [notExpression] FilterExpression notExpression - * @property {google.analytics.data.v1beta.IFilter|null} [filter] FilterExpression filter + * Properties of a SegmentFilter. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentFilter + * @property {string|null} [fieldName] SegmentFilter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentFilter betweenFilter + * @property {google.analytics.data.v1alpha.ISegmentFilterScoping|null} [filterScoping] SegmentFilter filterScoping */ /** - * Constructs a new FilterExpression. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a FilterExpression. - * @implements IFilterExpression + * Constructs a new SegmentFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentFilter. + * @implements ISegmentFilter * @constructor - * @param {google.analytics.data.v1beta.IFilterExpression=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set */ - function FilterExpression(properties) { + function SegmentFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -21118,128 +20277,154 @@ } /** - * FilterExpression andGroup. - * @member {google.analytics.data.v1beta.IFilterExpressionList|null|undefined} andGroup - * @memberof google.analytics.data.v1beta.FilterExpression + * SegmentFilter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - FilterExpression.prototype.andGroup = null; + SegmentFilter.prototype.fieldName = ""; /** - * FilterExpression orGroup. - * @member {google.analytics.data.v1beta.IFilterExpressionList|null|undefined} orGroup - * @memberof google.analytics.data.v1beta.FilterExpression + * SegmentFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - FilterExpression.prototype.orGroup = null; + SegmentFilter.prototype.stringFilter = null; /** - * FilterExpression notExpression. - * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} notExpression - * @memberof google.analytics.data.v1beta.FilterExpression + * SegmentFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - FilterExpression.prototype.notExpression = null; + SegmentFilter.prototype.inListFilter = null; /** - * FilterExpression filter. - * @member {google.analytics.data.v1beta.IFilter|null|undefined} filter - * @memberof google.analytics.data.v1beta.FilterExpression + * SegmentFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - FilterExpression.prototype.filter = null; + SegmentFilter.prototype.numericFilter = null; + + /** + * SegmentFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.betweenFilter = null; + + /** + * SegmentFilter filterScoping. + * @member {google.analytics.data.v1alpha.ISegmentFilterScoping|null|undefined} filterScoping + * @memberof google.analytics.data.v1alpha.SegmentFilter + * @instance + */ + SegmentFilter.prototype.filterScoping = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * FilterExpression expr. - * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr - * @memberof google.analytics.data.v1beta.FilterExpression + * SegmentFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance */ - Object.defineProperty(FilterExpression.prototype, "expr", { - get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), + Object.defineProperty(SegmentFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new FilterExpression instance using the specified properties. + * Creates a new SegmentFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1beta.IFilterExpression=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression instance + * @param {google.analytics.data.v1alpha.ISegmentFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter instance */ - FilterExpression.create = function create(properties) { - return new FilterExpression(properties); + SegmentFilter.create = function create(properties) { + return new SegmentFilter(properties); }; /** - * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * Encodes the specified SegmentFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1beta.IFilterExpression} message FilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpression.encode = function encode(message, writer) { + SegmentFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) - $root.google.analytics.data.v1beta.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) - $root.google.analytics.data.v1beta.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) - $root.google.analytics.data.v1beta.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.filterScoping != null && Object.hasOwnProperty.call(message, "filterScoping")) + $root.google.analytics.data.v1alpha.SegmentFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; /** - * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * Encodes the specified SegmentFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1beta.IFilterExpression} message FilterExpression message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilter} message SegmentFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FilterExpression message from the specified reader or buffer. + * Decodes a SegmentFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpression.decode = function decode(reader, length) { + SegmentFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.FilterExpression(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.decode(reader, reader.uint32()); + message.fieldName = reader.string(); break; - case 2: - message.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.decode(reader, reader.uint32()); + case 4: + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); break; - case 3: - message.notExpression = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + case 5: + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); break; - case 4: - message.filter = $root.google.analytics.data.v1beta.Filter.decode(reader, reader.uint32()); + case 6: + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + case 7: + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + break; + case 8: + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -21250,178 +20435,200 @@ }; /** - * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpression.decodeDelimited = function decodeDelimited(reader) { + SegmentFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FilterExpression message. + * Verifies a SegmentFilter message. * @function verify - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FilterExpression.verify = function verify(message) { + SegmentFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - properties.expr = 1; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; { - var error = $root.google.analytics.data.v1beta.FilterExpressionList.verify(message.andGroup); + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); if (error) - return "andGroup." + error; + return "stringFilter." + error; } } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; { - var error = $root.google.analytics.data.v1beta.FilterExpressionList.verify(message.orGroup); + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); if (error) - return "orGroup." + error; + return "inListFilter." + error; } } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.notExpression); + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); if (error) - return "notExpression." + error; + return "numericFilter." + error; } } - if (message.filter != null && message.hasOwnProperty("filter")) { - if (properties.expr === 1) - return "expr: multiple values"; - properties.expr = 1; + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; { - var error = $root.google.analytics.data.v1beta.Filter.verify(message.filter); + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); if (error) - return "filter." + error; + return "betweenFilter." + error; } } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) { + var error = $root.google.analytics.data.v1alpha.SegmentFilterScoping.verify(message.filterScoping); + if (error) + return "filterScoping." + error; + } return null; }; /** - * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + * @returns {google.analytics.data.v1alpha.SegmentFilter} SegmentFilter */ - FilterExpression.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.FilterExpression) + SegmentFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilter) return object; - var message = new $root.google.analytics.data.v1beta.FilterExpression(); - if (object.andGroup != null) { - if (typeof object.andGroup !== "object") - throw TypeError(".google.analytics.data.v1beta.FilterExpression.andGroup: object expected"); - message.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.fromObject(object.andGroup); + var message = new $root.google.analytics.data.v1alpha.SegmentFilter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); } - if (object.orGroup != null) { - if (typeof object.orGroup !== "object") - throw TypeError(".google.analytics.data.v1beta.FilterExpression.orGroup: object expected"); - message.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.fromObject(object.orGroup); + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); } - if (object.notExpression != null) { - if (typeof object.notExpression !== "object") - throw TypeError(".google.analytics.data.v1beta.FilterExpression.notExpression: object expected"); - message.notExpression = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.notExpression); + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); } - if (object.filter != null) { - if (typeof object.filter !== "object") - throw TypeError(".google.analytics.data.v1beta.FilterExpression.filter: object expected"); - message.filter = $root.google.analytics.data.v1beta.Filter.fromObject(object.filter); + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + } + if (object.filterScoping != null) { + if (typeof object.filterScoping !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentFilter.filterScoping: object expected"); + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.fromObject(object.filterScoping); } return message; }; /** - * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @static - * @param {google.analytics.data.v1beta.FilterExpression} message FilterExpression + * @param {google.analytics.data.v1alpha.SegmentFilter} message SegmentFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FilterExpression.toObject = function toObject(message, options) { + SegmentFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.andGroup != null && message.hasOwnProperty("andGroup")) { - object.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.toObject(message.andGroup, options); + if (options.defaults) { + object.fieldName = ""; + object.filterScoping = null; + } + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); if (options.oneofs) - object.expr = "andGroup"; + object.oneFilter = "stringFilter"; } - if (message.orGroup != null && message.hasOwnProperty("orGroup")) { - object.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.toObject(message.orGroup, options); + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); if (options.oneofs) - object.expr = "orGroup"; + object.oneFilter = "inListFilter"; } - if (message.notExpression != null && message.hasOwnProperty("notExpression")) { - object.notExpression = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.notExpression, options); + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); if (options.oneofs) - object.expr = "notExpression"; + object.oneFilter = "numericFilter"; } - if (message.filter != null && message.hasOwnProperty("filter")) { - object.filter = $root.google.analytics.data.v1beta.Filter.toObject(message.filter, options); + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); if (options.oneofs) - object.expr = "filter"; + object.oneFilter = "betweenFilter"; } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) + object.filterScoping = $root.google.analytics.data.v1alpha.SegmentFilterScoping.toObject(message.filterScoping, options); return object; }; /** - * Converts this FilterExpression to JSON. + * Converts this SegmentFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.FilterExpression + * @memberof google.analytics.data.v1alpha.SegmentFilter * @instance * @returns {Object.} JSON object */ - FilterExpression.prototype.toJSON = function toJSON() { + SegmentFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return FilterExpression; + return SegmentFilter; })(); - v1beta.FilterExpressionList = (function() { + v1alpha.SegmentFilterScoping = (function() { /** - * Properties of a FilterExpressionList. - * @memberof google.analytics.data.v1beta - * @interface IFilterExpressionList - * @property {Array.|null} [expressions] FilterExpressionList expressions + * Properties of a SegmentFilterScoping. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentFilterScoping + * @property {boolean|null} [atAnyPointInTime] SegmentFilterScoping atAnyPointInTime */ /** - * Constructs a new FilterExpressionList. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a FilterExpressionList. - * @implements IFilterExpressionList + * Constructs a new SegmentFilterScoping. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentFilterScoping. + * @implements ISegmentFilterScoping * @constructor - * @param {google.analytics.data.v1beta.IFilterExpressionList=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set */ - function FilterExpressionList(properties) { - this.expressions = []; + function SegmentFilterScoping(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -21429,78 +20636,89 @@ } /** - * FilterExpressionList expressions. - * @member {Array.} expressions - * @memberof google.analytics.data.v1beta.FilterExpressionList + * SegmentFilterScoping atAnyPointInTime. + * @member {boolean|null|undefined} atAnyPointInTime + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @instance */ - FilterExpressionList.prototype.expressions = $util.emptyArray; + SegmentFilterScoping.prototype.atAnyPointInTime = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Creates a new FilterExpressionList instance using the specified properties. + * SegmentFilterScoping _atAnyPointInTime. + * @member {"atAnyPointInTime"|undefined} _atAnyPointInTime + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping + * @instance + */ + Object.defineProperty(SegmentFilterScoping.prototype, "_atAnyPointInTime", { + get: $util.oneOfGetter($oneOfFields = ["atAnyPointInTime"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new SegmentFilterScoping instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1beta.IFilterExpressionList=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList instance + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping instance */ - FilterExpressionList.create = function create(properties) { - return new FilterExpressionList(properties); + SegmentFilterScoping.create = function create(properties) { + return new SegmentFilterScoping(properties); }; /** - * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * Encodes the specified SegmentFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1beta.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpressionList.encode = function encode(message, writer) { + SegmentFilterScoping.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.expressions != null && message.expressions.length) - for (var i = 0; i < message.expressions.length; ++i) - $root.google.analytics.data.v1beta.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.atAnyPointInTime != null && Object.hasOwnProperty.call(message, "atAnyPointInTime")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.atAnyPointInTime); return writer; }; /** - * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * Encodes the specified SegmentFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentFilterScoping.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1beta.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentFilterScoping} message SegmentFilterScoping message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + SegmentFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a FilterExpressionList message from the specified reader or buffer. + * Decodes a SegmentFilterScoping message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpressionList.decode = function decode(reader, length) { + SegmentFilterScoping.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.FilterExpressionList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.expressions && message.expressions.length)) - message.expressions = []; - message.expressions.push($root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32())); + message.atAnyPointInTime = reader.bool(); break; default: reader.skipType(tag & 7); @@ -21511,128 +20729,112 @@ }; /** - * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. + * Decodes a SegmentFilterScoping message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + SegmentFilterScoping.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a FilterExpressionList message. + * Verifies a SegmentFilterScoping message. * @function verify - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FilterExpressionList.verify = function verify(message) { + SegmentFilterScoping.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.expressions != null && message.hasOwnProperty("expressions")) { - if (!Array.isArray(message.expressions)) - return "expressions: array expected"; - for (var i = 0; i < message.expressions.length; ++i) { - var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.expressions[i]); - if (error) - return "expressions." + error; - } + var properties = {}; + if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { + properties._atAnyPointInTime = 1; + if (typeof message.atAnyPointInTime !== "boolean") + return "atAnyPointInTime: boolean expected"; } return null; }; /** - * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentFilterScoping message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + * @returns {google.analytics.data.v1alpha.SegmentFilterScoping} SegmentFilterScoping */ - FilterExpressionList.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.FilterExpressionList) + SegmentFilterScoping.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentFilterScoping) return object; - var message = new $root.google.analytics.data.v1beta.FilterExpressionList(); - if (object.expressions) { - if (!Array.isArray(object.expressions)) - throw TypeError(".google.analytics.data.v1beta.FilterExpressionList.expressions: array expected"); - message.expressions = []; - for (var i = 0; i < object.expressions.length; ++i) { - if (typeof object.expressions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.FilterExpressionList.expressions: object expected"); - message.expressions[i] = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.expressions[i]); - } - } + var message = new $root.google.analytics.data.v1alpha.SegmentFilterScoping(); + if (object.atAnyPointInTime != null) + message.atAnyPointInTime = Boolean(object.atAnyPointInTime); return message; }; /** - * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * Creates a plain object from a SegmentFilterScoping message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @static - * @param {google.analytics.data.v1beta.FilterExpressionList} message FilterExpressionList + * @param {google.analytics.data.v1alpha.SegmentFilterScoping} message SegmentFilterScoping * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - FilterExpressionList.toObject = function toObject(message, options) { + SegmentFilterScoping.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.expressions = []; - if (message.expressions && message.expressions.length) { - object.expressions = []; - for (var j = 0; j < message.expressions.length; ++j) - object.expressions[j] = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.expressions[j], options); + if (message.atAnyPointInTime != null && message.hasOwnProperty("atAnyPointInTime")) { + object.atAnyPointInTime = message.atAnyPointInTime; + if (options.oneofs) + object._atAnyPointInTime = "atAnyPointInTime"; } return object; }; /** - * Converts this FilterExpressionList to JSON. + * Converts this SegmentFilterScoping to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.FilterExpressionList + * @memberof google.analytics.data.v1alpha.SegmentFilterScoping * @instance * @returns {Object.} JSON object */ - FilterExpressionList.prototype.toJSON = function toJSON() { + SegmentFilterScoping.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return FilterExpressionList; + return SegmentFilterScoping; })(); - v1beta.Filter = (function() { + v1alpha.SegmentEventFilter = (function() { /** - * Properties of a Filter. - * @memberof google.analytics.data.v1beta - * @interface IFilter - * @property {string|null} [fieldName] Filter fieldName - * @property {google.analytics.data.v1beta.Filter.IStringFilter|null} [stringFilter] Filter stringFilter - * @property {google.analytics.data.v1beta.Filter.IInListFilter|null} [inListFilter] Filter inListFilter - * @property {google.analytics.data.v1beta.Filter.INumericFilter|null} [numericFilter] Filter numericFilter - * @property {google.analytics.data.v1beta.Filter.IBetweenFilter|null} [betweenFilter] Filter betweenFilter + * Properties of a SegmentEventFilter. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentEventFilter + * @property {string|null} [eventName] SegmentEventFilter eventName + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [segmentParameterFilterExpression] SegmentEventFilter segmentParameterFilterExpression */ /** - * Constructs a new Filter. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Filter. - * @implements IFilter + * Constructs a new SegmentEventFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentEventFilter. + * @implements ISegmentEventFilter * @constructor - * @param {google.analytics.data.v1beta.IFilter=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set */ - function Filter(properties) { + function SegmentEventFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -21640,141 +20842,378 @@ } /** - * Filter fieldName. - * @member {string} fieldName - * @memberof google.analytics.data.v1beta.Filter + * SegmentEventFilter eventName. + * @member {string|null|undefined} eventName + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Filter.prototype.fieldName = ""; + SegmentEventFilter.prototype.eventName = null; /** - * Filter stringFilter. - * @member {google.analytics.data.v1beta.Filter.IStringFilter|null|undefined} stringFilter - * @memberof google.analytics.data.v1beta.Filter + * SegmentEventFilter segmentParameterFilterExpression. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} segmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Filter.prototype.stringFilter = null; + SegmentEventFilter.prototype.segmentParameterFilterExpression = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Filter inListFilter. - * @member {google.analytics.data.v1beta.Filter.IInListFilter|null|undefined} inListFilter - * @memberof google.analytics.data.v1beta.Filter + * SegmentEventFilter _eventName. + * @member {"eventName"|undefined} _eventName + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Filter.prototype.inListFilter = null; + Object.defineProperty(SegmentEventFilter.prototype, "_eventName", { + get: $util.oneOfGetter($oneOfFields = ["eventName"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Filter numericFilter. - * @member {google.analytics.data.v1beta.Filter.INumericFilter|null|undefined} numericFilter - * @memberof google.analytics.data.v1beta.Filter + * SegmentEventFilter _segmentParameterFilterExpression. + * @member {"segmentParameterFilterExpression"|undefined} _segmentParameterFilterExpression + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance */ - Filter.prototype.numericFilter = null; + Object.defineProperty(SegmentEventFilter.prototype, "_segmentParameterFilterExpression", { + get: $util.oneOfGetter($oneOfFields = ["segmentParameterFilterExpression"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Filter betweenFilter. - * @member {google.analytics.data.v1beta.Filter.IBetweenFilter|null|undefined} betweenFilter - * @memberof google.analytics.data.v1beta.Filter + * Creates a new SegmentEventFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentEventFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter instance + */ + SegmentEventFilter.create = function create(properties) { + return new SegmentEventFilter(properties); + }; + + /** + * Encodes the specified SegmentEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentEventFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); + if (message.segmentParameterFilterExpression != null && Object.hasOwnProperty.call(message, "segmentParameterFilterExpression")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.segmentParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SegmentEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentEventFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentEventFilter} message SegmentEventFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentEventFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SegmentEventFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentEventFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.eventName = reader.string(); + break; + case 2: + message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SegmentEventFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentEventFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SegmentEventFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SegmentEventFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.eventName != null && message.hasOwnProperty("eventName")) { + properties._eventName = 1; + if (!$util.isString(message.eventName)) + return "eventName: string expected"; + } + if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { + properties._segmentParameterFilterExpression = 1; + { + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.segmentParameterFilterExpression); + if (error) + return "segmentParameterFilterExpression." + error; + } + } + return null; + }; + + /** + * Creates a SegmentEventFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SegmentEventFilter} SegmentEventFilter + */ + SegmentEventFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentEventFilter) + return object; + var message = new $root.google.analytics.data.v1alpha.SegmentEventFilter(); + if (object.eventName != null) + message.eventName = String(object.eventName); + if (object.segmentParameterFilterExpression != null) { + if (typeof object.segmentParameterFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentEventFilter.segmentParameterFilterExpression: object expected"); + message.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.segmentParameterFilterExpression); + } + return message; + }; + + /** + * Creates a plain object from a SegmentEventFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SegmentEventFilter + * @static + * @param {google.analytics.data.v1alpha.SegmentEventFilter} message SegmentEventFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SegmentEventFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.eventName != null && message.hasOwnProperty("eventName")) { + object.eventName = message.eventName; + if (options.oneofs) + object._eventName = "eventName"; + } + if (message.segmentParameterFilterExpression != null && message.hasOwnProperty("segmentParameterFilterExpression")) { + object.segmentParameterFilterExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.segmentParameterFilterExpression, options); + if (options.oneofs) + object._segmentParameterFilterExpression = "segmentParameterFilterExpression"; + } + return object; + }; + + /** + * Converts this SegmentEventFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SegmentEventFilter * @instance + * @returns {Object.} JSON object */ - Filter.prototype.betweenFilter = null; + SegmentEventFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SegmentEventFilter; + })(); + + v1alpha.SegmentParameterFilterExpression = (function() { + + /** + * Properties of a SegmentParameterFilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentParameterFilterExpression + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [andGroup] SegmentParameterFilterExpression andGroup + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null} [orGroup] SegmentParameterFilterExpression orGroup + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null} [notExpression] SegmentParameterFilterExpression notExpression + * @property {google.analytics.data.v1alpha.ISegmentParameterFilter|null} [segmentParameterFilter] SegmentParameterFilterExpression segmentParameterFilter + */ + + /** + * Constructs a new SegmentParameterFilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentParameterFilterExpression. + * @implements ISegmentParameterFilterExpression + * @constructor + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set + */ + function SegmentParameterFilterExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SegmentParameterFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @instance + */ + SegmentParameterFilterExpression.prototype.andGroup = null; + + /** + * SegmentParameterFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @instance + */ + SegmentParameterFilterExpression.prototype.orGroup = null; + + /** + * SegmentParameterFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @instance + */ + SegmentParameterFilterExpression.prototype.notExpression = null; + + /** + * SegmentParameterFilterExpression segmentParameterFilter. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilter|null|undefined} segmentParameterFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression + * @instance + */ + SegmentParameterFilterExpression.prototype.segmentParameterFilter = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * Filter oneFilter. - * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter - * @memberof google.analytics.data.v1beta.Filter + * SegmentParameterFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"segmentParameterFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance */ - Object.defineProperty(Filter.prototype, "oneFilter", { - get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + Object.defineProperty(SegmentParameterFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "segmentParameterFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new Filter instance using the specified properties. + * Creates a new SegmentParameterFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Filter} Filter instance + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression instance */ - Filter.create = function create(properties) { - return new Filter(properties); + SegmentParameterFilterExpression.create = function create(properties) { + return new SegmentParameterFilterExpression(properties); }; /** - * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IFilter} message Filter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Filter.encode = function encode(message, writer) { + SegmentParameterFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); - if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) - $root.google.analytics.data.v1beta.Filter.StringFilter.encode(message.stringFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) - $root.google.analytics.data.v1beta.Filter.InListFilter.encode(message.inListFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) - $root.google.analytics.data.v1beta.Filter.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) - $root.google.analytics.data.v1beta.Filter.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.segmentParameterFilter != null && Object.hasOwnProperty.call(message, "segmentParameterFilter")) + $root.google.analytics.data.v1alpha.SegmentParameterFilter.encode(message.segmentParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * Encodes the specified SegmentParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IFilter} message Filter message or plain object to encode + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpression} message SegmentParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Filter.encodeDelimited = function encodeDelimited(message, writer) { + SegmentParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Filter message from the specified reader or buffer. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Filter} Filter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Filter.decode = function decode(reader, length) { + SegmentParameterFilterExpression.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.fieldName = reader.string(); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); + break; + case 2: + message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.decode(reader, reader.uint32()); break; case 3: - message.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.decode(reader, reader.uint32()); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32()); break; case 4: - message.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.decode(reader, reader.uint32()); - break; - case 5: - message.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.decode(reader, reader.uint32()); - break; - case 6: - message.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.decode(reader, reader.uint32()); + message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -21785,1199 +21224,1010 @@ }; /** - * Decodes a Filter message from the specified reader or buffer, length delimited. + * Decodes a SegmentParameterFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Filter} Filter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Filter.decodeDelimited = function decodeDelimited(reader) { + SegmentParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Filter message. + * Verifies a SegmentParameterFilterExpression message. * @function verify - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Filter.verify = function verify(message) { + SegmentParameterFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - if (!$util.isString(message.fieldName)) - return "fieldName: string expected"; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - properties.oneFilter = 1; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.Filter.StringFilter.verify(message.stringFilter); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.andGroup); if (error) - return "stringFilter." + error; + return "andGroup." + error; } } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.Filter.InListFilter.verify(message.inListFilter); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify(message.orGroup); if (error) - return "inListFilter." + error; + return "orGroup." + error; } } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.Filter.NumericFilter.verify(message.numericFilter); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.notExpression); if (error) - return "numericFilter." + error; + return "notExpression." + error; } } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - if (properties.oneFilter === 1) - return "oneFilter: multiple values"; - properties.oneFilter = 1; + if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.Filter.BetweenFilter.verify(message.betweenFilter); + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilter.verify(message.segmentParameterFilter); if (error) - return "betweenFilter." + error; + return "segmentParameterFilter." + error; } } return null; }; /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * Creates a SegmentParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Filter} Filter + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpression} SegmentParameterFilterExpression */ - Filter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Filter) + SegmentParameterFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression) return object; - var message = new $root.google.analytics.data.v1beta.Filter(); - if (object.fieldName != null) - message.fieldName = String(object.fieldName); - if (object.stringFilter != null) { - if (typeof object.stringFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.stringFilter: object expected"); - message.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.fromObject(object.stringFilter); + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.andGroup); } - if (object.inListFilter != null) { - if (typeof object.inListFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.inListFilter: object expected"); - message.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.fromObject(object.inListFilter); + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.fromObject(object.orGroup); } - if (object.numericFilter != null) { - if (typeof object.numericFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.numericFilter: object expected"); - message.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.fromObject(object.numericFilter); + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.notExpression); } - if (object.betweenFilter != null) { - if (typeof object.betweenFilter !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.betweenFilter: object expected"); - message.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.fromObject(object.betweenFilter); + if (object.segmentParameterFilter != null) { + if (typeof object.segmentParameterFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpression.segmentParameterFilter: object expected"); + message.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.fromObject(object.segmentParameterFilter); } return message; }; /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. + * Creates a plain object from a SegmentParameterFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.Filter} message Filter + * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpression} message SegmentParameterFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Filter.toObject = function toObject(message, options) { + SegmentParameterFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.fieldName = ""; - if (message.fieldName != null && message.hasOwnProperty("fieldName")) - object.fieldName = message.fieldName; - if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { - object.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.toObject(message.stringFilter, options); + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.andGroup, options); if (options.oneofs) - object.oneFilter = "stringFilter"; + object.expr = "andGroup"; } - if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { - object.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.toObject(message.inListFilter, options); + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.toObject(message.orGroup, options); if (options.oneofs) - object.oneFilter = "inListFilter"; + object.expr = "orGroup"; } - if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { - object.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.toObject(message.numericFilter, options); + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.notExpression, options); if (options.oneofs) - object.oneFilter = "numericFilter"; + object.expr = "notExpression"; } - if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { - object.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.toObject(message.betweenFilter, options); + if (message.segmentParameterFilter != null && message.hasOwnProperty("segmentParameterFilter")) { + object.segmentParameterFilter = $root.google.analytics.data.v1alpha.SegmentParameterFilter.toObject(message.segmentParameterFilter, options); if (options.oneofs) - object.oneFilter = "betweenFilter"; + object.expr = "segmentParameterFilter"; } return object; }; /** - * Converts this Filter to JSON. + * Converts this SegmentParameterFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Filter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpression * @instance * @returns {Object.} JSON object */ - Filter.prototype.toJSON = function toJSON() { + SegmentParameterFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - Filter.StringFilter = (function() { + return SegmentParameterFilterExpression; + })(); - /** - * Properties of a StringFilter. - * @memberof google.analytics.data.v1beta.Filter - * @interface IStringFilter - * @property {google.analytics.data.v1beta.Filter.StringFilter.MatchType|null} [matchType] StringFilter matchType - * @property {string|null} [value] StringFilter value - * @property {boolean|null} [caseSensitive] StringFilter caseSensitive - */ + v1alpha.SegmentParameterFilterExpressionList = (function() { - /** - * Constructs a new StringFilter. - * @memberof google.analytics.data.v1beta.Filter - * @classdesc Represents a StringFilter. - * @implements IStringFilter - * @constructor - * @param {google.analytics.data.v1beta.Filter.IStringFilter=} [properties] Properties to set - */ - function StringFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * StringFilter matchType. - * @member {google.analytics.data.v1beta.Filter.StringFilter.MatchType} matchType - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @instance - */ - StringFilter.prototype.matchType = 0; - - /** - * StringFilter value. - * @member {string} value - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @instance - */ - StringFilter.prototype.value = ""; - - /** - * StringFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @instance - */ - StringFilter.prototype.caseSensitive = false; - - /** - * Creates a new StringFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IStringFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter instance - */ - StringFilter.create = function create(properties) { - return new StringFilter(properties); - }; + /** + * Properties of a SegmentParameterFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentParameterFilterExpressionList + * @property {Array.|null} [expressions] SegmentParameterFilterExpressionList expressions + */ - /** - * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); - return writer; - }; + /** + * Constructs a new SegmentParameterFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentParameterFilterExpressionList. + * @implements ISegmentParameterFilterExpressionList + * @constructor + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set + */ + function SegmentParameterFilterExpressionList(properties) { + this.expressions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IStringFilter} message StringFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StringFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * SegmentParameterFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @instance + */ + SegmentParameterFilterExpressionList.prototype.expressions = $util.emptyArray; - /** - * Decodes a StringFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.StringFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.matchType = reader.int32(); - break; - case 2: - message.value = reader.string(); - break; - case 3: - message.caseSensitive = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new SegmentParameterFilterExpressionList instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList instance + */ + SegmentParameterFilterExpressionList.create = function create(properties) { + return new SegmentParameterFilterExpressionList(properties); + }; - /** - * Decodes a StringFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StringFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified SegmentParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilterExpressionList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Verifies a StringFilter message. - * @function verify - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StringFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.matchType != null && message.hasOwnProperty("matchType")) - switch (message.matchType) { - default: - return "matchType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - break; - } - if (message.value != null && message.hasOwnProperty("value")) - if (!$util.isString(message.value)) - return "value: string expected"; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; + /** + * Encodes the specified SegmentParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter - */ - StringFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Filter.StringFilter) - return object; - var message = new $root.google.analytics.data.v1beta.Filter.StringFilter(); - switch (object.matchType) { - case "MATCH_TYPE_UNSPECIFIED": - case 0: - message.matchType = 0; - break; - case "EXACT": + /** + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilterExpressionList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { case 1: - message.matchType = 1; - break; - case "BEGINS_WITH": - case 2: - message.matchType = 2; - break; - case "ENDS_WITH": - case 3: - message.matchType = 3; - break; - case "CONTAINS": - case 4: - message.matchType = 4; - break; - case "FULL_REGEXP": - case 5: - message.matchType = 5; + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.decode(reader, reader.uint32())); break; - case "PARTIAL_REGEXP": - case 6: - message.matchType = 6; + default: + reader.skipType(tag & 7); break; } - if (object.value != null) - message.value = String(object.value); - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a StringFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @static - * @param {google.analytics.data.v1beta.Filter.StringFilter} message StringFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StringFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; - object.value = ""; - object.caseSensitive = false; + /** + * Decodes a SegmentParameterFilterExpressionList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SegmentParameterFilterExpressionList message. + * @function verify + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SegmentParameterFilterExpressionList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; } - if (message.matchType != null && message.hasOwnProperty("matchType")) - object.matchType = options.enums === String ? $root.google.analytics.data.v1beta.Filter.StringFilter.MatchType[message.matchType] : message.matchType; - if (message.value != null && message.hasOwnProperty("value")) - object.value = message.value; - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; + } + return null; + }; + + /** + * Creates a SegmentParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} SegmentParameterFilterExpressionList + */ + SegmentParameterFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList) return object; - }; + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.fromObject(object.expressions[i]); + } + } + return message; + }; - /** - * Converts this StringFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.Filter.StringFilter - * @instance - * @returns {Object.} JSON object - */ - StringFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a SegmentParameterFilterExpressionList message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.SegmentParameterFilterExpressionList} message SegmentParameterFilterExpressionList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SegmentParameterFilterExpressionList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.SegmentParameterFilterExpression.toObject(message.expressions[j], options); + } + return object; + }; - /** - * MatchType enum. - * @name google.analytics.data.v1beta.Filter.StringFilter.MatchType - * @enum {number} - * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value - * @property {number} EXACT=1 EXACT value - * @property {number} BEGINS_WITH=2 BEGINS_WITH value - * @property {number} ENDS_WITH=3 ENDS_WITH value - * @property {number} CONTAINS=4 CONTAINS value - * @property {number} FULL_REGEXP=5 FULL_REGEXP value - * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value - */ - StringFilter.MatchType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "EXACT"] = 1; - values[valuesById[2] = "BEGINS_WITH"] = 2; - values[valuesById[3] = "ENDS_WITH"] = 3; - values[valuesById[4] = "CONTAINS"] = 4; - values[valuesById[5] = "FULL_REGEXP"] = 5; - values[valuesById[6] = "PARTIAL_REGEXP"] = 6; - return values; - })(); + /** + * Converts this SegmentParameterFilterExpressionList to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterExpressionList + * @instance + * @returns {Object.} JSON object + */ + SegmentParameterFilterExpressionList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return StringFilter; - })(); + return SegmentParameterFilterExpressionList; + })(); - Filter.InListFilter = (function() { + v1alpha.SegmentParameterFilter = (function() { - /** - * Properties of an InListFilter. - * @memberof google.analytics.data.v1beta.Filter - * @interface IInListFilter - * @property {Array.|null} [values] InListFilter values - * @property {boolean|null} [caseSensitive] InListFilter caseSensitive - */ + /** + * Properties of a SegmentParameterFilter. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentParameterFilter + * @property {string|null} [eventParameterName] SegmentParameterFilter eventParameterName + * @property {string|null} [itemParameterName] SegmentParameterFilter itemParameterName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] SegmentParameterFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] SegmentParameterFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] SegmentParameterFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] SegmentParameterFilter betweenFilter + * @property {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null} [filterScoping] SegmentParameterFilter filterScoping + */ - /** - * Constructs a new InListFilter. - * @memberof google.analytics.data.v1beta.Filter - * @classdesc Represents an InListFilter. - * @implements IInListFilter - * @constructor - * @param {google.analytics.data.v1beta.Filter.IInListFilter=} [properties] Properties to set - */ - function InListFilter(properties) { - this.values = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new SegmentParameterFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentParameterFilter. + * @implements ISegmentParameterFilter + * @constructor + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set + */ + function SegmentParameterFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * InListFilter values. - * @member {Array.} values - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @instance - */ - InListFilter.prototype.values = $util.emptyArray; + /** + * SegmentParameterFilter eventParameterName. + * @member {string|null|undefined} eventParameterName + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.eventParameterName = null; - /** - * InListFilter caseSensitive. - * @member {boolean} caseSensitive - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @instance - */ - InListFilter.prototype.caseSensitive = false; + /** + * SegmentParameterFilter itemParameterName. + * @member {string|null|undefined} itemParameterName + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.itemParameterName = null; - /** - * Creates a new InListFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IInListFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter instance - */ - InListFilter.create = function create(properties) { - return new InListFilter(properties); - }; + /** + * SegmentParameterFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.stringFilter = null; - /** - * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.values != null && message.values.length) - for (var i = 0; i < message.values.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); - if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); - return writer; - }; + /** + * SegmentParameterFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.inListFilter = null; - /** - * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IInListFilter} message InListFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - InListFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * SegmentParameterFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.numericFilter = null; - /** - * Decodes an InListFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.InListFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.values && message.values.length)) - message.values = []; - message.values.push(reader.string()); - break; - case 2: - message.caseSensitive = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an InListFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - InListFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an InListFilter message. - * @function verify - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - InListFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.values != null && message.hasOwnProperty("values")) { - if (!Array.isArray(message.values)) - return "values: array expected"; - for (var i = 0; i < message.values.length; ++i) - if (!$util.isString(message.values[i])) - return "values: string[] expected"; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - if (typeof message.caseSensitive !== "boolean") - return "caseSensitive: boolean expected"; - return null; - }; - - /** - * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter - */ - InListFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Filter.InListFilter) - return object; - var message = new $root.google.analytics.data.v1beta.Filter.InListFilter(); - if (object.values) { - if (!Array.isArray(object.values)) - throw TypeError(".google.analytics.data.v1beta.Filter.InListFilter.values: array expected"); - message.values = []; - for (var i = 0; i < object.values.length; ++i) - message.values[i] = String(object.values[i]); - } - if (object.caseSensitive != null) - message.caseSensitive = Boolean(object.caseSensitive); - return message; - }; - - /** - * Creates a plain object from an InListFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @static - * @param {google.analytics.data.v1beta.Filter.InListFilter} message InListFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - InListFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.values = []; - if (options.defaults) - object.caseSensitive = false; - if (message.values && message.values.length) { - object.values = []; - for (var j = 0; j < message.values.length; ++j) - object.values[j] = message.values[j]; - } - if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) - object.caseSensitive = message.caseSensitive; - return object; - }; - - /** - * Converts this InListFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.Filter.InListFilter - * @instance - * @returns {Object.} JSON object - */ - InListFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return InListFilter; - })(); - - Filter.NumericFilter = (function() { - - /** - * Properties of a NumericFilter. - * @memberof google.analytics.data.v1beta.Filter - * @interface INumericFilter - * @property {google.analytics.data.v1beta.Filter.NumericFilter.Operation|null} [operation] NumericFilter operation - * @property {google.analytics.data.v1beta.INumericValue|null} [value] NumericFilter value - */ - - /** - * Constructs a new NumericFilter. - * @memberof google.analytics.data.v1beta.Filter - * @classdesc Represents a NumericFilter. - * @implements INumericFilter - * @constructor - * @param {google.analytics.data.v1beta.Filter.INumericFilter=} [properties] Properties to set - */ - function NumericFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * NumericFilter operation. - * @member {google.analytics.data.v1beta.Filter.NumericFilter.Operation} operation - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @instance - */ - NumericFilter.prototype.operation = 0; + /** + * SegmentParameterFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.betweenFilter = null; - /** - * NumericFilter value. - * @member {google.analytics.data.v1beta.INumericValue|null|undefined} value - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @instance - */ - NumericFilter.prototype.value = null; + /** + * SegmentParameterFilter filterScoping. + * @member {google.analytics.data.v1alpha.ISegmentParameterFilterScoping|null|undefined} filterScoping + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + SegmentParameterFilter.prototype.filterScoping = null; - /** - * Creates a new NumericFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1beta.Filter.INumericFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter instance - */ - NumericFilter.create = function create(properties) { - return new NumericFilter(properties); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1beta.Filter.INumericFilter} message NumericFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NumericFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - $root.google.analytics.data.v1beta.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * SegmentParameterFilter oneParameter. + * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + Object.defineProperty(SegmentParameterFilter.prototype, "oneParameter", { + get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1beta.Filter.INumericFilter} message NumericFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * SegmentParameterFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + */ + Object.defineProperty(SegmentParameterFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Decodes a NumericFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NumericFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.NumericFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.operation = reader.int32(); - break; - case 2: - message.value = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new SegmentParameterFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter instance + */ + SegmentParameterFilter.create = function create(properties) { + return new SegmentParameterFilter(properties); + }; - /** - * Decodes a NumericFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NumericFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified SegmentParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); + if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.filterScoping != null && Object.hasOwnProperty.call(message, "filterScoping")) + $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.encode(message.filterScoping, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + return writer; + }; - /** - * Verifies a NumericFilter message. - * @function verify - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - NumericFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.operation != null && message.hasOwnProperty("operation")) - switch (message.operation) { - default: - return "operation: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - break; - } - if (message.value != null && message.hasOwnProperty("value")) { - var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.value); - if (error) - return "value." + error; - } - return null; - }; + /** + * Encodes the specified SegmentParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilter} message SegmentParameterFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter - */ - NumericFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Filter.NumericFilter) - return object; - var message = new $root.google.analytics.data.v1beta.Filter.NumericFilter(); - switch (object.operation) { - case "OPERATION_UNSPECIFIED": - case 0: - message.operation = 0; - break; - case "EQUAL": + /** + * Decodes a SegmentParameterFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { case 1: - message.operation = 1; + message.eventParameterName = reader.string(); break; - case "LESS_THAN": case 2: - message.operation = 2; - break; - case "LESS_THAN_OR_EQUAL": - case 3: - message.operation = 3; + message.itemParameterName = reader.string(); break; - case "GREATER_THAN": case 4: - message.operation = 4; + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); break; - case "GREATER_THAN_OR_EQUAL": case 5: - message.operation = 5; + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + case 6: + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + case 7: + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + break; + case 8: + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); break; } - if (object.value != null) { - if (typeof object.value !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.NumericFilter.value: object expected"); - message.value = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.value); - } - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @static - * @param {google.analytics.data.v1beta.Filter.NumericFilter} message NumericFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - NumericFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; - object.value = null; + /** + * Decodes a SegmentParameterFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SegmentParameterFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SegmentParameterFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + properties.oneParameter = 1; + if (!$util.isString(message.eventParameterName)) + return "eventParameterName: string expected"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + if (properties.oneParameter === 1) + return "oneParameter: multiple values"; + properties.oneParameter = 1; + if (!$util.isString(message.itemParameterName)) + return "itemParameterName: string expected"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; } - if (message.operation != null && message.hasOwnProperty("operation")) - object.operation = options.enums === String ? $root.google.analytics.data.v1beta.Filter.NumericFilter.Operation[message.operation] : message.operation; - if (message.value != null && message.hasOwnProperty("value")) - object.value = $root.google.analytics.data.v1beta.NumericValue.toObject(message.value, options); - return object; - }; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } + } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) { + var error = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify(message.filterScoping); + if (error) + return "filterScoping." + error; + } + return null; + }; - /** - * Converts this NumericFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.Filter.NumericFilter - * @instance - * @returns {Object.} JSON object - */ - NumericFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a SegmentParameterFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SegmentParameterFilter} SegmentParameterFilter + */ + SegmentParameterFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilter) + return object; + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilter(); + if (object.eventParameterName != null) + message.eventParameterName = String(object.eventParameterName); + if (object.itemParameterName != null) + message.itemParameterName = String(object.itemParameterName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + } + if (object.filterScoping != null) { + if (typeof object.filterScoping !== "object") + throw TypeError(".google.analytics.data.v1alpha.SegmentParameterFilter.filterScoping: object expected"); + message.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.fromObject(object.filterScoping); + } + return message; + }; - /** - * Operation enum. - * @name google.analytics.data.v1beta.Filter.NumericFilter.Operation - * @enum {number} - * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value - * @property {number} EQUAL=1 EQUAL value - * @property {number} LESS_THAN=2 LESS_THAN value - * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value - * @property {number} GREATER_THAN=4 GREATER_THAN value - * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value - */ - NumericFilter.Operation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "EQUAL"] = 1; - values[valuesById[2] = "LESS_THAN"] = 2; - values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; - values[valuesById[4] = "GREATER_THAN"] = 4; - values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; - return values; - })(); + /** + * Creates a plain object from a SegmentParameterFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @static + * @param {google.analytics.data.v1alpha.SegmentParameterFilter} message SegmentParameterFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SegmentParameterFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.filterScoping = null; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + object.eventParameterName = message.eventParameterName; + if (options.oneofs) + object.oneParameter = "eventParameterName"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + object.itemParameterName = message.itemParameterName; + if (options.oneofs) + object.oneParameter = "itemParameterName"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; + } + if (message.filterScoping != null && message.hasOwnProperty("filterScoping")) + object.filterScoping = $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping.toObject(message.filterScoping, options); + return object; + }; - return NumericFilter; - })(); + /** + * Converts this SegmentParameterFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SegmentParameterFilter + * @instance + * @returns {Object.} JSON object + */ + SegmentParameterFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - Filter.BetweenFilter = (function() { + return SegmentParameterFilter; + })(); - /** - * Properties of a BetweenFilter. - * @memberof google.analytics.data.v1beta.Filter - * @interface IBetweenFilter - * @property {google.analytics.data.v1beta.INumericValue|null} [fromValue] BetweenFilter fromValue - * @property {google.analytics.data.v1beta.INumericValue|null} [toValue] BetweenFilter toValue - */ + v1alpha.SegmentParameterFilterScoping = (function() { - /** - * Constructs a new BetweenFilter. - * @memberof google.analytics.data.v1beta.Filter - * @classdesc Represents a BetweenFilter. - * @implements IBetweenFilter - * @constructor - * @param {google.analytics.data.v1beta.Filter.IBetweenFilter=} [properties] Properties to set - */ - function BetweenFilter(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a SegmentParameterFilterScoping. + * @memberof google.analytics.data.v1alpha + * @interface ISegmentParameterFilterScoping + * @property {number|Long|null} [inAnyNDayPeriod] SegmentParameterFilterScoping inAnyNDayPeriod + */ - /** - * BetweenFilter fromValue. - * @member {google.analytics.data.v1beta.INumericValue|null|undefined} fromValue - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @instance - */ - BetweenFilter.prototype.fromValue = null; + /** + * Constructs a new SegmentParameterFilterScoping. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SegmentParameterFilterScoping. + * @implements ISegmentParameterFilterScoping + * @constructor + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set + */ + function SegmentParameterFilterScoping(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * BetweenFilter toValue. - * @member {google.analytics.data.v1beta.INumericValue|null|undefined} toValue - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @instance - */ - BetweenFilter.prototype.toValue = null; + /** + * SegmentParameterFilterScoping inAnyNDayPeriod. + * @member {number|Long|null|undefined} inAnyNDayPeriod + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @instance + */ + SegmentParameterFilterScoping.prototype.inAnyNDayPeriod = null; - /** - * Creates a new BetweenFilter instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IBetweenFilter=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter instance - */ - BetweenFilter.create = function create(properties) { - return new BetweenFilter(properties); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BetweenFilter.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) - $root.google.analytics.data.v1beta.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) - $root.google.analytics.data.v1beta.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * SegmentParameterFilterScoping _inAnyNDayPeriod. + * @member {"inAnyNDayPeriod"|undefined} _inAnyNDayPeriod + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @instance + */ + Object.defineProperty(SegmentParameterFilterScoping.prototype, "_inAnyNDayPeriod", { + get: $util.oneOfGetter($oneOfFields = ["inAnyNDayPeriod"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1beta.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new SegmentParameterFilterScoping instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping instance + */ + SegmentParameterFilterScoping.create = function create(properties) { + return new SegmentParameterFilterScoping(properties); + }; - /** - * Decodes a BetweenFilter message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BetweenFilter.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.BetweenFilter(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.fromValue = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); - break; - case 2: - message.toValue = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified SegmentParameterFilterScoping message. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilterScoping.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.inAnyNDayPeriod != null && Object.hasOwnProperty.call(message, "inAnyNDayPeriod")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.inAnyNDayPeriod); + return writer; + }; - /** - * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - BetweenFilter.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified SegmentParameterFilterScoping message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SegmentParameterFilterScoping.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {google.analytics.data.v1alpha.ISegmentParameterFilterScoping} message SegmentParameterFilterScoping message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SegmentParameterFilterScoping.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies a BetweenFilter message. - * @function verify - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - BetweenFilter.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.fromValue != null && message.hasOwnProperty("fromValue")) { - var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.fromValue); - if (error) - return "fromValue." + error; - } - if (message.toValue != null && message.hasOwnProperty("toValue")) { - var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.toValue); - if (error) - return "toValue." + error; + /** + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilterScoping.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.inAnyNDayPeriod = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; } - return null; - }; + } + return message; + }; - /** - * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter - */ - BetweenFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Filter.BetweenFilter) - return object; - var message = new $root.google.analytics.data.v1beta.Filter.BetweenFilter(); - if (object.fromValue != null) { - if (typeof object.fromValue !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.BetweenFilter.fromValue: object expected"); - message.fromValue = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.fromValue); - } - if (object.toValue != null) { - if (typeof object.toValue !== "object") - throw TypeError(".google.analytics.data.v1beta.Filter.BetweenFilter.toValue: object expected"); - message.toValue = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.toValue); - } - return message; - }; + /** + * Decodes a SegmentParameterFilterScoping message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SegmentParameterFilterScoping.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @static - * @param {google.analytics.data.v1beta.Filter.BetweenFilter} message BetweenFilter - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - BetweenFilter.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.fromValue = null; - object.toValue = null; - } - if (message.fromValue != null && message.hasOwnProperty("fromValue")) - object.fromValue = $root.google.analytics.data.v1beta.NumericValue.toObject(message.fromValue, options); - if (message.toValue != null && message.hasOwnProperty("toValue")) - object.toValue = $root.google.analytics.data.v1beta.NumericValue.toObject(message.toValue, options); + /** + * Verifies a SegmentParameterFilterScoping message. + * @function verify + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SegmentParameterFilterScoping.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { + properties._inAnyNDayPeriod = 1; + if (!$util.isInteger(message.inAnyNDayPeriod) && !(message.inAnyNDayPeriod && $util.isInteger(message.inAnyNDayPeriod.low) && $util.isInteger(message.inAnyNDayPeriod.high))) + return "inAnyNDayPeriod: integer|Long expected"; + } + return null; + }; + + /** + * Creates a SegmentParameterFilterScoping message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.SegmentParameterFilterScoping} SegmentParameterFilterScoping + */ + SegmentParameterFilterScoping.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping) return object; - }; + var message = new $root.google.analytics.data.v1alpha.SegmentParameterFilterScoping(); + if (object.inAnyNDayPeriod != null) + if ($util.Long) + (message.inAnyNDayPeriod = $util.Long.fromValue(object.inAnyNDayPeriod)).unsigned = false; + else if (typeof object.inAnyNDayPeriod === "string") + message.inAnyNDayPeriod = parseInt(object.inAnyNDayPeriod, 10); + else if (typeof object.inAnyNDayPeriod === "number") + message.inAnyNDayPeriod = object.inAnyNDayPeriod; + else if (typeof object.inAnyNDayPeriod === "object") + message.inAnyNDayPeriod = new $util.LongBits(object.inAnyNDayPeriod.low >>> 0, object.inAnyNDayPeriod.high >>> 0).toNumber(); + return message; + }; - /** - * Converts this BetweenFilter to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.Filter.BetweenFilter - * @instance - * @returns {Object.} JSON object - */ - BetweenFilter.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a SegmentParameterFilterScoping message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @static + * @param {google.analytics.data.v1alpha.SegmentParameterFilterScoping} message SegmentParameterFilterScoping + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SegmentParameterFilterScoping.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.inAnyNDayPeriod != null && message.hasOwnProperty("inAnyNDayPeriod")) { + if (typeof message.inAnyNDayPeriod === "number") + object.inAnyNDayPeriod = options.longs === String ? String(message.inAnyNDayPeriod) : message.inAnyNDayPeriod; + else + object.inAnyNDayPeriod = options.longs === String ? $util.Long.prototype.toString.call(message.inAnyNDayPeriod) : options.longs === Number ? new $util.LongBits(message.inAnyNDayPeriod.low >>> 0, message.inAnyNDayPeriod.high >>> 0).toNumber() : message.inAnyNDayPeriod; + if (options.oneofs) + object._inAnyNDayPeriod = "inAnyNDayPeriod"; + } + return object; + }; - return BetweenFilter; - })(); + /** + * Converts this SegmentParameterFilterScoping to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.SegmentParameterFilterScoping + * @instance + * @returns {Object.} JSON object + */ + SegmentParameterFilterScoping.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Filter; + return SegmentParameterFilterScoping; })(); - v1beta.OrderBy = (function() { + v1alpha.FunnelFilterExpression = (function() { /** - * Properties of an OrderBy. - * @memberof google.analytics.data.v1beta - * @interface IOrderBy - * @property {google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null} [metric] OrderBy metric - * @property {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null} [dimension] OrderBy dimension - * @property {google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null} [pivot] OrderBy pivot - * @property {boolean|null} [desc] OrderBy desc + * Properties of a FunnelFilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelFilterExpression + * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [andGroup] FunnelFilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null} [orGroup] FunnelFilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFunnelFilterExpression|null} [notExpression] FunnelFilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFunnelFilter|null} [funnelFilter] FunnelFilterExpression funnelFilter + * @property {google.analytics.data.v1alpha.IFunnelEventFilter|null} [funnelEventFilter] FunnelFilterExpression funnelEventFilter */ /** - * Constructs a new OrderBy. - * @memberof google.analytics.data.v1beta - * @classdesc Represents an OrderBy. - * @implements IOrderBy + * Constructs a new FunnelFilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelFilterExpression. + * @implements IFunnelFilterExpression * @constructor - * @param {google.analytics.data.v1beta.IOrderBy=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set */ - function OrderBy(properties) { + function FunnelFilterExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22985,128 +22235,141 @@ } /** - * OrderBy metric. - * @member {google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null|undefined} metric - * @memberof google.analytics.data.v1beta.OrderBy + * FunnelFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - OrderBy.prototype.metric = null; + FunnelFilterExpression.prototype.andGroup = null; /** - * OrderBy dimension. - * @member {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null|undefined} dimension - * @memberof google.analytics.data.v1beta.OrderBy + * FunnelFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - OrderBy.prototype.dimension = null; + FunnelFilterExpression.prototype.orGroup = null; /** - * OrderBy pivot. - * @member {google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null|undefined} pivot - * @memberof google.analytics.data.v1beta.OrderBy + * FunnelFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFunnelFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - OrderBy.prototype.pivot = null; + FunnelFilterExpression.prototype.notExpression = null; /** - * OrderBy desc. - * @member {boolean} desc - * @memberof google.analytics.data.v1beta.OrderBy + * FunnelFilterExpression funnelFilter. + * @member {google.analytics.data.v1alpha.IFunnelFilter|null|undefined} funnelFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - OrderBy.prototype.desc = false; + FunnelFilterExpression.prototype.funnelFilter = null; + + /** + * FunnelFilterExpression funnelEventFilter. + * @member {google.analytics.data.v1alpha.IFunnelEventFilter|null|undefined} funnelEventFilter + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression + * @instance + */ + FunnelFilterExpression.prototype.funnelEventFilter = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * OrderBy oneOrderBy. - * @member {"metric"|"dimension"|"pivot"|undefined} oneOrderBy - * @memberof google.analytics.data.v1beta.OrderBy + * FunnelFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"funnelFilter"|"funnelEventFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance */ - Object.defineProperty(OrderBy.prototype, "oneOrderBy", { - get: $util.oneOfGetter($oneOfFields = ["metric", "dimension", "pivot"]), + Object.defineProperty(FunnelFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelFilter", "funnelEventFilter"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new OrderBy instance using the specified properties. + * Creates a new FunnelFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1beta.IOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.OrderBy} OrderBy instance + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression instance */ - OrderBy.create = function create(properties) { - return new OrderBy(properties); + FunnelFilterExpression.create = function create(properties) { + return new FunnelFilterExpression(properties); }; /** - * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * Encodes the specified FunnelFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1beta.IOrderBy} message OrderBy message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OrderBy.encode = function encode(message, writer) { + FunnelFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) - $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.encode(message.metric, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.encode(message.dimension, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.pivot != null && Object.hasOwnProperty.call(message, "pivot")) - $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.encode(message.pivot, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.desc); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelFilter != null && Object.hasOwnProperty.call(message, "funnelFilter")) + $root.google.analytics.data.v1alpha.FunnelFilter.encode(message.funnelFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.funnelEventFilter != null && Object.hasOwnProperty.call(message, "funnelEventFilter")) + $root.google.analytics.data.v1alpha.FunnelEventFilter.encode(message.funnelEventFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * Encodes the specified FunnelFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1beta.IOrderBy} message OrderBy message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelFilterExpression} message FunnelFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - OrderBy.encodeDelimited = function encodeDelimited(message, writer) { + FunnelFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an OrderBy message from the specified reader or buffer. + * Decodes a FunnelFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OrderBy.decode = function decode(reader, length) { + FunnelFilterExpression.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.decode(reader, reader.uint32()); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); break; case 2: - message.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.decode(reader, reader.uint32()); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.decode(reader, reader.uint32()); break; case 3: - message.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.decode(reader, reader.uint32()); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32()); break; case 4: - message.desc = reader.bool(); + message.funnelFilter = $root.google.analytics.data.v1alpha.FunnelFilter.decode(reader, reader.uint32()); + break; + case 5: + message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -23117,1052 +22380,992 @@ }; /** - * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * Decodes a FunnelFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OrderBy.decodeDelimited = function decodeDelimited(reader) { + FunnelFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an OrderBy message. + * Verifies a FunnelFilterExpression message. * @function verify - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OrderBy.verify = function verify(message) { + FunnelFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.metric != null && message.hasOwnProperty("metric")) { - properties.oneOrderBy = 1; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify(message.metric); + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.andGroup); if (error) - return "metric." + error; + return "andGroup." + error; } } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - if (properties.oneOrderBy === 1) - return "oneOrderBy: multiple values"; - properties.oneOrderBy = 1; + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify(message.dimension); + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.verify(message.orGroup); if (error) - return "dimension." + error; + return "orGroup." + error; } } - if (message.pivot != null && message.hasOwnProperty("pivot")) { - if (properties.oneOrderBy === 1) - return "oneOrderBy: multiple values"; - properties.oneOrderBy = 1; + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; { - var error = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify(message.pivot); + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.notExpression); if (error) - return "pivot." + error; + return "notExpression." + error; + } + } + if (message.funnelFilter != null && message.hasOwnProperty("funnelFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelFilter.verify(message.funnelFilter); + if (error) + return "funnelFilter." + error; + } + } + if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelEventFilter.verify(message.funnelEventFilter); + if (error) + return "funnelEventFilter." + error; } } - if (message.desc != null && message.hasOwnProperty("desc")) - if (typeof message.desc !== "boolean") - return "desc: boolean expected"; return null; }; /** - * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + * @returns {google.analytics.data.v1alpha.FunnelFilterExpression} FunnelFilterExpression */ - OrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.OrderBy) + FunnelFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpression) return object; - var message = new $root.google.analytics.data.v1beta.OrderBy(); - if (object.metric != null) { - if (typeof object.metric !== "object") - throw TypeError(".google.analytics.data.v1beta.OrderBy.metric: object expected"); - message.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.fromObject(object.metric); + var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.andGroup); } - if (object.dimension != null) { - if (typeof object.dimension !== "object") - throw TypeError(".google.analytics.data.v1beta.OrderBy.dimension: object expected"); - message.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.fromObject(object.dimension); + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.fromObject(object.orGroup); } - if (object.pivot != null) { - if (typeof object.pivot !== "object") - throw TypeError(".google.analytics.data.v1beta.OrderBy.pivot: object expected"); - message.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.fromObject(object.pivot); + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.notExpression); + } + if (object.funnelFilter != null) { + if (typeof object.funnelFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelFilter: object expected"); + message.funnelFilter = $root.google.analytics.data.v1alpha.FunnelFilter.fromObject(object.funnelFilter); + } + if (object.funnelEventFilter != null) { + if (typeof object.funnelEventFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpression.funnelEventFilter: object expected"); + message.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.fromObject(object.funnelEventFilter); } - if (object.desc != null) - message.desc = Boolean(object.desc); return message; }; /** - * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * Creates a plain object from a FunnelFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @static - * @param {google.analytics.data.v1beta.OrderBy} message OrderBy + * @param {google.analytics.data.v1alpha.FunnelFilterExpression} message FunnelFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - OrderBy.toObject = function toObject(message, options) { + FunnelFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.desc = false; - if (message.metric != null && message.hasOwnProperty("metric")) { - object.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.toObject(message.metric, options); + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.andGroup, options); if (options.oneofs) - object.oneOrderBy = "metric"; + object.expr = "andGroup"; } - if (message.dimension != null && message.hasOwnProperty("dimension")) { - object.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.toObject(message.dimension, options); + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FunnelFilterExpressionList.toObject(message.orGroup, options); if (options.oneofs) - object.oneOrderBy = "dimension"; + object.expr = "orGroup"; } - if (message.pivot != null && message.hasOwnProperty("pivot")) { - object.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.toObject(message.pivot, options); + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.notExpression, options); if (options.oneofs) - object.oneOrderBy = "pivot"; + object.expr = "notExpression"; + } + if (message.funnelFilter != null && message.hasOwnProperty("funnelFilter")) { + object.funnelFilter = $root.google.analytics.data.v1alpha.FunnelFilter.toObject(message.funnelFilter, options); + if (options.oneofs) + object.expr = "funnelFilter"; + } + if (message.funnelEventFilter != null && message.hasOwnProperty("funnelEventFilter")) { + object.funnelEventFilter = $root.google.analytics.data.v1alpha.FunnelEventFilter.toObject(message.funnelEventFilter, options); + if (options.oneofs) + object.expr = "funnelEventFilter"; } - if (message.desc != null && message.hasOwnProperty("desc")) - object.desc = message.desc; return object; }; /** - * Converts this OrderBy to JSON. + * Converts this FunnelFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.OrderBy + * @memberof google.analytics.data.v1alpha.FunnelFilterExpression * @instance * @returns {Object.} JSON object */ - OrderBy.prototype.toJSON = function toJSON() { + FunnelFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - OrderBy.MetricOrderBy = (function() { + return FunnelFilterExpression; + })(); - /** - * Properties of a MetricOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @interface IMetricOrderBy - * @property {string|null} [metricName] MetricOrderBy metricName - */ + v1alpha.FunnelFilterExpressionList = (function() { - /** - * Constructs a new MetricOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @classdesc Represents a MetricOrderBy. - * @implements IMetricOrderBy - * @constructor - * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy=} [properties] Properties to set - */ - function MetricOrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a FunnelFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelFilterExpressionList + * @property {Array.|null} [expressions] FunnelFilterExpressionList expressions + */ - /** - * MetricOrderBy metricName. - * @member {string} metricName - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @instance - */ - MetricOrderBy.prototype.metricName = ""; + /** + * Constructs a new FunnelFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelFilterExpressionList. + * @implements IFunnelFilterExpressionList + * @constructor + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set + */ + function FunnelFilterExpressionList(properties) { + this.expressions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new MetricOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy instance - */ - MetricOrderBy.create = function create(properties) { - return new MetricOrderBy(properties); - }; + /** + * FunnelFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @instance + */ + FunnelFilterExpressionList.prototype.expressions = $util.emptyArray; - /** - * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - return writer; - }; + /** + * Creates a new FunnelFilterExpressionList instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList instance + */ + FunnelFilterExpressionList.create = function create(properties) { + return new FunnelFilterExpressionList(properties); + }; - /** - * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MetricOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified FunnelFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelFilterExpressionList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FunnelFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metricName = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified FunnelFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilterExpressionList.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilterExpressionList} message FunnelFilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MetricOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelFilterExpressionList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FunnelFilterExpression.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Verifies a MetricOrderBy message. - * @function verify - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MetricOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.metricName != null && message.hasOwnProperty("metricName")) - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - return null; - }; + /** + * Decodes a FunnelFilterExpressionList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy - */ - MetricOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy) - return object; - var message = new $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy(); - if (object.metricName != null) - message.metricName = String(object.metricName); - return message; - }; + /** + * Verifies a FunnelFilterExpressionList message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FunnelFilterExpressionList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelFilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; + } + } + return null; + }; - /** - * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.MetricOrderBy} message MetricOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MetricOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metricName = ""; - if (message.metricName != null && message.hasOwnProperty("metricName")) - object.metricName = message.metricName; + /** + * Creates a FunnelFilterExpressionList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FunnelFilterExpressionList} FunnelFilterExpressionList + */ + FunnelFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilterExpressionList) return object; - }; + var message = new $root.google.analytics.data.v1alpha.FunnelFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.fromObject(object.expressions[i]); + } + } + return message; + }; - /** - * Converts this MetricOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy - * @instance - * @returns {Object.} JSON object - */ - MetricOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a FunnelFilterExpressionList message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @static + * @param {google.analytics.data.v1alpha.FunnelFilterExpressionList} message FunnelFilterExpressionList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FunnelFilterExpressionList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelFilterExpression.toObject(message.expressions[j], options); + } + return object; + }; - return MetricOrderBy; - })(); + /** + * Converts this FunnelFilterExpressionList to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FunnelFilterExpressionList + * @instance + * @returns {Object.} JSON object + */ + FunnelFilterExpressionList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - OrderBy.DimensionOrderBy = (function() { + return FunnelFilterExpressionList; + })(); - /** - * Properties of a DimensionOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @interface IDimensionOrderBy - * @property {string|null} [dimensionName] DimensionOrderBy dimensionName - * @property {google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|null} [orderType] DimensionOrderBy orderType - */ + v1alpha.FunnelFilter = (function() { - /** - * Constructs a new DimensionOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @classdesc Represents a DimensionOrderBy. - * @implements IDimensionOrderBy - * @constructor - * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy=} [properties] Properties to set - */ - function DimensionOrderBy(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a FunnelFilter. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelFilter + * @property {string|null} [fieldName] FunnelFilter fieldName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelFilter betweenFilter + */ - /** - * DimensionOrderBy dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.dimensionName = ""; + /** + * Constructs a new FunnelFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelFilter. + * @implements IFunnelFilter + * @constructor + * @param {google.analytics.data.v1alpha.IFunnelFilter=} [properties] Properties to set + */ + function FunnelFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * DimensionOrderBy orderType. - * @member {google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType} orderType - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @instance - */ - DimensionOrderBy.prototype.orderType = 0; + /** + * FunnelFilter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + FunnelFilter.prototype.fieldName = ""; - /** - * Creates a new DimensionOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy instance - */ - DimensionOrderBy.create = function create(properties) { - return new DimensionOrderBy(properties); - }; + /** + * FunnelFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + FunnelFilter.prototype.stringFilter = null; - /** - * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - if (message.orderType != null && Object.hasOwnProperty.call(message, "orderType")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.orderType); - return writer; - }; + /** + * FunnelFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + FunnelFilter.prototype.inListFilter = null; - /** - * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DimensionOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * FunnelFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + FunnelFilter.prototype.numericFilter = null; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - case 2: - message.orderType = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * FunnelFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + FunnelFilter.prototype.betweenFilter = null; - /** - * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DimensionOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Verifies a DimensionOrderBy message. - * @function verify - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DimensionOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - if (message.orderType != null && message.hasOwnProperty("orderType")) - switch (message.orderType) { - default: - return "orderType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; - } - return null; - }; + /** + * FunnelFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + */ + Object.defineProperty(FunnelFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy - */ - DimensionOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy) - return object; - var message = new $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - switch (object.orderType) { - case "ORDER_TYPE_UNSPECIFIED": - case 0: - message.orderType = 0; - break; - case "ALPHANUMERIC": + /** + * Creates a new FunnelFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelFilter} FunnelFilter instance + */ + FunnelFilter.create = function create(properties) { + return new FunnelFilter(properties); + }; + + /** + * Encodes the specified FunnelFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilter} message FunnelFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified FunnelFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelFilter} message FunnelFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FunnelFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FunnelFilter} FunnelFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { case 1: - message.orderType = 1; + message.fieldName = reader.string(); break; - case "CASE_INSENSITIVE_ALPHANUMERIC": - case 2: - message.orderType = 2; + case 4: + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); break; - case "NUMERIC": - case 3: - message.orderType = 3; + case 5: + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + case 6: + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + case 7: + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); break; } - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} message DimensionOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DimensionOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.dimensionName = ""; - object.orderType = options.enums === String ? "ORDER_TYPE_UNSPECIFIED" : 0; + /** + * Decodes a FunnelFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelFilter} FunnelFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FunnelFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FunnelFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; } - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - if (message.orderType != null && message.hasOwnProperty("orderType")) - object.orderType = options.enums === String ? $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType[message.orderType] : message.orderType; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } + } + return null; + }; + + /** + * Creates a FunnelFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FunnelFilter} FunnelFilter + */ + FunnelFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelFilter) return object; - }; + var message = new $root.google.analytics.data.v1alpha.FunnelFilter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); + } + return message; + }; - /** - * Converts this DimensionOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy - * @instance - * @returns {Object.} JSON object - */ - DimensionOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a FunnelFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @static + * @param {google.analytics.data.v1alpha.FunnelFilter} message FunnelFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FunnelFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.fieldName = ""; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; + } + return object; + }; - /** - * OrderType enum. - * @name google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType - * @enum {number} - * @property {number} ORDER_TYPE_UNSPECIFIED=0 ORDER_TYPE_UNSPECIFIED value - * @property {number} ALPHANUMERIC=1 ALPHANUMERIC value - * @property {number} CASE_INSENSITIVE_ALPHANUMERIC=2 CASE_INSENSITIVE_ALPHANUMERIC value - * @property {number} NUMERIC=3 NUMERIC value - */ - DimensionOrderBy.OrderType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ORDER_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "ALPHANUMERIC"] = 1; - values[valuesById[2] = "CASE_INSENSITIVE_ALPHANUMERIC"] = 2; - values[valuesById[3] = "NUMERIC"] = 3; - return values; - })(); + /** + * Converts this FunnelFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FunnelFilter + * @instance + * @returns {Object.} JSON object + */ + FunnelFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return DimensionOrderBy; - })(); + return FunnelFilter; + })(); - OrderBy.PivotOrderBy = (function() { + v1alpha.FunnelEventFilter = (function() { - /** - * Properties of a PivotOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @interface IPivotOrderBy - * @property {string|null} [metricName] PivotOrderBy metricName - * @property {Array.|null} [pivotSelections] PivotOrderBy pivotSelections - */ + /** + * Properties of a FunnelEventFilter. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelEventFilter + * @property {string|null} [eventName] FunnelEventFilter eventName + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [funnelParameterFilterExpression] FunnelEventFilter funnelParameterFilterExpression + */ - /** - * Constructs a new PivotOrderBy. - * @memberof google.analytics.data.v1beta.OrderBy - * @classdesc Represents a PivotOrderBy. - * @implements IPivotOrderBy - * @constructor - * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy=} [properties] Properties to set - */ - function PivotOrderBy(properties) { - this.pivotSelections = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new FunnelEventFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelEventFilter. + * @implements IFunnelEventFilter + * @constructor + * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set + */ + function FunnelEventFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * PivotOrderBy metricName. - * @member {string} metricName - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @instance - */ - PivotOrderBy.prototype.metricName = ""; + /** + * FunnelEventFilter eventName. + * @member {string|null|undefined} eventName + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @instance + */ + FunnelEventFilter.prototype.eventName = null; - /** - * PivotOrderBy pivotSelections. - * @member {Array.} pivotSelections - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @instance - */ - PivotOrderBy.prototype.pivotSelections = $util.emptyArray; + /** + * FunnelEventFilter funnelParameterFilterExpression. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} funnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @instance + */ + FunnelEventFilter.prototype.funnelParameterFilterExpression = null; - /** - * Creates a new PivotOrderBy instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy instance - */ - PivotOrderBy.create = function create(properties) { - return new PivotOrderBy(properties); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotOrderBy.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - if (message.pivotSelections != null && message.pivotSelections.length) - for (var i = 0; i < message.pivotSelections.length; ++i) - $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.encode(message.pivotSelections[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * FunnelEventFilter _eventName. + * @member {"eventName"|undefined} _eventName + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @instance + */ + Object.defineProperty(FunnelEventFilter.prototype, "_eventName", { + get: $util.oneOfGetter($oneOfFields = ["eventName"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotOrderBy.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * FunnelEventFilter _funnelParameterFilterExpression. + * @member {"funnelParameterFilterExpression"|undefined} _funnelParameterFilterExpression + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @instance + */ + Object.defineProperty(FunnelEventFilter.prototype, "_funnelParameterFilterExpression", { + get: $util.oneOfGetter($oneOfFields = ["funnelParameterFilterExpression"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Decodes a PivotOrderBy message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotOrderBy.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metricName = reader.string(); - break; - case 2: - if (!(message.pivotSelections && message.pivotSelections.length)) - message.pivotSelections = []; - message.pivotSelections.push($root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new FunnelEventFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelEventFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter instance + */ + FunnelEventFilter.create = function create(properties) { + return new FunnelEventFilter(properties); + }; - /** - * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotOrderBy.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified FunnelEventFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelEventFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.eventName != null && Object.hasOwnProperty.call(message, "eventName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventName); + if (message.funnelParameterFilterExpression != null && Object.hasOwnProperty.call(message, "funnelParameterFilterExpression")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.funnelParameterFilterExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Verifies a PivotOrderBy message. - * @function verify - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PivotOrderBy.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.metricName != null && message.hasOwnProperty("metricName")) - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - if (message.pivotSelections != null && message.hasOwnProperty("pivotSelections")) { - if (!Array.isArray(message.pivotSelections)) - return "pivotSelections: array expected"; - for (var i = 0; i < message.pivotSelections.length; ++i) { - var error = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify(message.pivotSelections[i]); - if (error) - return "pivotSelections." + error; - } + /** + * Encodes the specified FunnelEventFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelEventFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {google.analytics.data.v1alpha.IFunnelEventFilter} message FunnelEventFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FunnelEventFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FunnelEventFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelEventFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.eventName = reader.string(); + break; + case 2: + message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } - return null; - }; + } + return message; + }; - /** - * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy - */ - PivotOrderBy.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy) - return object; - var message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy(); - if (object.metricName != null) - message.metricName = String(object.metricName); - if (object.pivotSelections) { - if (!Array.isArray(object.pivotSelections)) - throw TypeError(".google.analytics.data.v1beta.OrderBy.PivotOrderBy.pivotSelections: array expected"); - message.pivotSelections = []; - for (var i = 0; i < object.pivotSelections.length; ++i) { - if (typeof object.pivotSelections[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.OrderBy.PivotOrderBy.pivotSelections: object expected"); - message.pivotSelections[i] = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.fromObject(object.pivotSelections[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @static - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy} message PivotOrderBy - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PivotOrderBy.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.pivotSelections = []; - if (options.defaults) - object.metricName = ""; - if (message.metricName != null && message.hasOwnProperty("metricName")) - object.metricName = message.metricName; - if (message.pivotSelections && message.pivotSelections.length) { - object.pivotSelections = []; - for (var j = 0; j < message.pivotSelections.length; ++j) - object.pivotSelections[j] = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.toObject(message.pivotSelections[j], options); - } - return object; - }; - - /** - * Converts this PivotOrderBy to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @instance - * @returns {Object.} JSON object - */ - PivotOrderBy.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - PivotOrderBy.PivotSelection = (function() { - - /** - * Properties of a PivotSelection. - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @interface IPivotSelection - * @property {string|null} [dimensionName] PivotSelection dimensionName - * @property {string|null} [dimensionValue] PivotSelection dimensionValue - */ + /** + * Decodes a FunnelEventFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FunnelEventFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new PivotSelection. - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy - * @classdesc Represents a PivotSelection. - * @implements IPivotSelection - * @constructor - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set - */ - function PivotSelection(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Verifies a FunnelEventFilter message. + * @function verify + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FunnelEventFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.eventName != null && message.hasOwnProperty("eventName")) { + properties._eventName = 1; + if (!$util.isString(message.eventName)) + return "eventName: string expected"; + } + if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { + properties._funnelParameterFilterExpression = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.funnelParameterFilterExpression); + if (error) + return "funnelParameterFilterExpression." + error; } + } + return null; + }; - /** - * PivotSelection dimensionName. - * @member {string} dimensionName - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @instance - */ - PivotSelection.prototype.dimensionName = ""; - - /** - * PivotSelection dimensionValue. - * @member {string} dimensionValue - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @instance - */ - PivotSelection.prototype.dimensionValue = ""; - - /** - * Creates a new PivotSelection instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection instance - */ - PivotSelection.create = function create(properties) { - return new PivotSelection(properties); - }; - - /** - * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotSelection.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); - if (message.dimensionValue != null && Object.hasOwnProperty.call(message, "dimensionValue")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimensionValue); - return writer; - }; - - /** - * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PivotSelection.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a PivotSelection message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotSelection.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.dimensionName = reader.string(); - break; - case 2: - message.dimensionValue = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a PivotSelection message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PivotSelection.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a PivotSelection message. - * @function verify - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PivotSelection.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - if (!$util.isString(message.dimensionName)) - return "dimensionName: string expected"; - if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) - if (!$util.isString(message.dimensionValue)) - return "dimensionValue: string expected"; - return null; - }; - - /** - * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection - */ - PivotSelection.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection) - return object; - var message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection(); - if (object.dimensionName != null) - message.dimensionName = String(object.dimensionName); - if (object.dimensionValue != null) - message.dimensionValue = String(object.dimensionValue); - return message; - }; - - /** - * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @static - * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} message PivotSelection - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PivotSelection.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.dimensionName = ""; - object.dimensionValue = ""; - } - if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) - object.dimensionName = message.dimensionName; - if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) - object.dimensionValue = message.dimensionValue; - return object; - }; - - /** - * Converts this PivotSelection to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection - * @instance - * @returns {Object.} JSON object - */ - PivotSelection.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a FunnelEventFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1alpha.FunnelEventFilter} FunnelEventFilter + */ + FunnelEventFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelEventFilter) + return object; + var message = new $root.google.analytics.data.v1alpha.FunnelEventFilter(); + if (object.eventName != null) + message.eventName = String(object.eventName); + if (object.funnelParameterFilterExpression != null) { + if (typeof object.funnelParameterFilterExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelEventFilter.funnelParameterFilterExpression: object expected"); + message.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.funnelParameterFilterExpression); + } + return message; + }; - return PivotSelection; - })(); + /** + * Creates a plain object from a FunnelEventFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @static + * @param {google.analytics.data.v1alpha.FunnelEventFilter} message FunnelEventFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FunnelEventFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.eventName != null && message.hasOwnProperty("eventName")) { + object.eventName = message.eventName; + if (options.oneofs) + object._eventName = "eventName"; + } + if (message.funnelParameterFilterExpression != null && message.hasOwnProperty("funnelParameterFilterExpression")) { + object.funnelParameterFilterExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.funnelParameterFilterExpression, options); + if (options.oneofs) + object._funnelParameterFilterExpression = "funnelParameterFilterExpression"; + } + return object; + }; - return PivotOrderBy; - })(); + /** + * Converts this FunnelEventFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1alpha.FunnelEventFilter + * @instance + * @returns {Object.} JSON object + */ + FunnelEventFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return OrderBy; + return FunnelEventFilter; })(); - v1beta.Pivot = (function() { + v1alpha.FunnelParameterFilterExpression = (function() { /** - * Properties of a Pivot. - * @memberof google.analytics.data.v1beta - * @interface IPivot - * @property {Array.|null} [fieldNames] Pivot fieldNames - * @property {Array.|null} [orderBys] Pivot orderBys - * @property {number|Long|null} [offset] Pivot offset - * @property {number|Long|null} [limit] Pivot limit - * @property {Array.|null} [metricAggregations] Pivot metricAggregations + * Properties of a FunnelParameterFilterExpression. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelParameterFilterExpression + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [andGroup] FunnelParameterFilterExpression andGroup + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null} [orGroup] FunnelParameterFilterExpression orGroup + * @property {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null} [notExpression] FunnelParameterFilterExpression notExpression + * @property {google.analytics.data.v1alpha.IFunnelParameterFilter|null} [funnelParameterFilter] FunnelParameterFilterExpression funnelParameterFilter */ /** - * Constructs a new Pivot. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Pivot. - * @implements IPivot + * Constructs a new FunnelParameterFilterExpression. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelParameterFilterExpression. + * @implements IFunnelParameterFilterExpression * @constructor - * @param {google.analytics.data.v1beta.IPivot=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set */ - function Pivot(properties) { - this.fieldNames = []; - this.orderBys = []; - this.metricAggregations = []; + function FunnelParameterFilterExpression(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24170,144 +23373,128 @@ } /** - * Pivot fieldNames. - * @member {Array.} fieldNames - * @memberof google.analytics.data.v1beta.Pivot + * FunnelParameterFilterExpression andGroup. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - Pivot.prototype.fieldNames = $util.emptyArray; + FunnelParameterFilterExpression.prototype.andGroup = null; /** - * Pivot orderBys. - * @member {Array.} orderBys - * @memberof google.analytics.data.v1beta.Pivot + * FunnelParameterFilterExpression orGroup. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - Pivot.prototype.orderBys = $util.emptyArray; + FunnelParameterFilterExpression.prototype.orGroup = null; /** - * Pivot offset. - * @member {number|Long} offset - * @memberof google.analytics.data.v1beta.Pivot + * FunnelParameterFilterExpression notExpression. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - Pivot.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + FunnelParameterFilterExpression.prototype.notExpression = null; /** - * Pivot limit. - * @member {number|Long} limit - * @memberof google.analytics.data.v1beta.Pivot + * FunnelParameterFilterExpression funnelParameterFilter. + * @member {google.analytics.data.v1alpha.IFunnelParameterFilter|null|undefined} funnelParameterFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - Pivot.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + FunnelParameterFilterExpression.prototype.funnelParameterFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Pivot metricAggregations. - * @member {Array.} metricAggregations - * @memberof google.analytics.data.v1beta.Pivot + * FunnelParameterFilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"funnelParameterFilter"|undefined} expr + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance */ - Pivot.prototype.metricAggregations = $util.emptyArray; + Object.defineProperty(FunnelParameterFilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "funnelParameterFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new Pivot instance using the specified properties. + * Creates a new FunnelParameterFilterExpression instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IPivot=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Pivot} Pivot instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression instance */ - Pivot.create = function create(properties) { - return new Pivot(properties); + FunnelParameterFilterExpression.create = function create(properties) { + return new FunnelParameterFilterExpression(properties); }; /** - * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpression message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IPivot} message Pivot message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Pivot.encode = function encode(message, writer) { + FunnelParameterFilterExpression.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.fieldNames != null && message.fieldNames.length) - for (var i = 0; i < message.fieldNames.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldNames[i]); - if (message.orderBys != null && message.orderBys.length) - for (var i = 0; i < message.orderBys.length; ++i) - $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 3, wireType 0 =*/24).int64(message.offset); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 4, wireType 0 =*/32).int64(message.limit); - if (message.metricAggregations != null && message.metricAggregations.length) { - writer.uint32(/* id 5, wireType 2 =*/42).fork(); - for (var i = 0; i < message.metricAggregations.length; ++i) - writer.int32(message.metricAggregations[i]); - writer.ldelim(); - } + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.funnelParameterFilter != null && Object.hasOwnProperty.call(message, "funnelParameterFilter")) + $root.google.analytics.data.v1alpha.FunnelParameterFilter.encode(message.funnelParameterFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.IPivot} message Pivot message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpression} message FunnelParameterFilterExpression message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Pivot.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilterExpression.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Pivot message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Pivot.decode = function decode(reader, length) { + FunnelParameterFilterExpression.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Pivot(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.fieldNames && message.fieldNames.length)) - message.fieldNames = []; - message.fieldNames.push(reader.string()); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); break; case 2: - if (!(message.orderBys && message.orderBys.length)) - message.orderBys = []; - message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.decode(reader, reader.uint32()); break; case 3: - message.offset = reader.int64(); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32()); break; case 4: - message.limit = reader.int64(); - break; - case 5: - if (!(message.metricAggregations && message.metricAggregations.length)) - message.metricAggregations = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.metricAggregations.push(reader.int32()); - } else - message.metricAggregations.push(reader.int32()); + message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -24318,244 +23505,178 @@ }; /** - * Decodes a Pivot message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpression message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Pivot.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilterExpression.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Pivot message. + * Verifies a FunnelParameterFilterExpression message. * @function verify - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Pivot.verify = function verify(message) { + FunnelParameterFilterExpression.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.fieldNames != null && message.hasOwnProperty("fieldNames")) { - if (!Array.isArray(message.fieldNames)) - return "fieldNames: array expected"; - for (var i = 0; i < message.fieldNames.length; ++i) - if (!$util.isString(message.fieldNames[i])) - return "fieldNames: string[] expected"; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } } - if (message.orderBys != null && message.hasOwnProperty("orderBys")) { - if (!Array.isArray(message.orderBys)) - return "orderBys: array expected"; - for (var i = 0; i < message.orderBys.length; ++i) { - var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify(message.orGroup); if (error) - return "orderBys." + error; + return "orGroup." + error; } } - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) - return "offset: integer|Long expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) - return "limit: integer|Long expected"; - if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { - if (!Array.isArray(message.metricAggregations)) - return "metricAggregations: array expected"; - for (var i = 0; i < message.metricAggregations.length; ++i) - switch (message.metricAggregations[i]) { - default: - return "metricAggregations: enum value[] expected"; - case 0: - case 1: - case 5: - case 6: - case 4: - break; - } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilter.verify(message.funnelParameterFilter); + if (error) + return "funnelParameterFilter." + error; + } } return null; }; /** - * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpression message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Pivot} Pivot + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpression} FunnelParameterFilterExpression */ - Pivot.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Pivot) + FunnelParameterFilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression) return object; - var message = new $root.google.analytics.data.v1beta.Pivot(); - if (object.fieldNames) { - if (!Array.isArray(object.fieldNames)) - throw TypeError(".google.analytics.data.v1beta.Pivot.fieldNames: array expected"); - message.fieldNames = []; - for (var i = 0; i < object.fieldNames.length; ++i) - message.fieldNames[i] = String(object.fieldNames[i]); + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.andGroup); } - if (object.orderBys) { - if (!Array.isArray(object.orderBys)) - throw TypeError(".google.analytics.data.v1beta.Pivot.orderBys: array expected"); - message.orderBys = []; - for (var i = 0; i < object.orderBys.length; ++i) { - if (typeof object.orderBys[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.Pivot.orderBys: object expected"); - message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); - } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.fromObject(object.orGroup); } - if (object.offset != null) - if ($util.Long) - (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; - else if (typeof object.offset === "string") - message.offset = parseInt(object.offset, 10); - else if (typeof object.offset === "number") - message.offset = object.offset; - else if (typeof object.offset === "object") - message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); - if (object.limit != null) - if ($util.Long) - (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; - else if (typeof object.limit === "string") - message.limit = parseInt(object.limit, 10); - else if (typeof object.limit === "number") - message.limit = object.limit; - else if (typeof object.limit === "object") - message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); - if (object.metricAggregations) { - if (!Array.isArray(object.metricAggregations)) - throw TypeError(".google.analytics.data.v1beta.Pivot.metricAggregations: array expected"); - message.metricAggregations = []; - for (var i = 0; i < object.metricAggregations.length; ++i) - switch (object.metricAggregations[i]) { - default: - case "METRIC_AGGREGATION_UNSPECIFIED": - case 0: - message.metricAggregations[i] = 0; - break; - case "TOTAL": - case 1: - message.metricAggregations[i] = 1; - break; - case "MINIMUM": - case 5: - message.metricAggregations[i] = 5; - break; - case "MAXIMUM": - case 6: - message.metricAggregations[i] = 6; - break; - case "COUNT": - case 4: - message.metricAggregations[i] = 4; - break; - } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.notExpression); + } + if (object.funnelParameterFilter != null) { + if (typeof object.funnelParameterFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpression.funnelParameterFilter: object expected"); + message.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.fromObject(object.funnelParameterFilter); } return message; }; /** - * Creates a plain object from a Pivot message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilterExpression message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @static - * @param {google.analytics.data.v1beta.Pivot} message Pivot + * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpression} message FunnelParameterFilterExpression * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Pivot.toObject = function toObject(message, options) { + FunnelParameterFilterExpression.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.fieldNames = []; - object.orderBys = []; - object.metricAggregations = []; - } - if (options.defaults) { - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.offset = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.limit = options.longs === String ? "0" : 0; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; } - if (message.fieldNames && message.fieldNames.length) { - object.fieldNames = []; - for (var j = 0; j < message.fieldNames.length; ++j) - object.fieldNames[j] = message.fieldNames[j]; + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; } - if (message.orderBys && message.orderBys.length) { - object.orderBys = []; - for (var j = 0; j < message.orderBys.length; ++j) - object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; } - if (message.offset != null && message.hasOwnProperty("offset")) - if (typeof message.offset === "number") - object.offset = options.longs === String ? String(message.offset) : message.offset; - else - object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; - if (message.limit != null && message.hasOwnProperty("limit")) - if (typeof message.limit === "number") - object.limit = options.longs === String ? String(message.limit) : message.limit; - else - object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; - if (message.metricAggregations && message.metricAggregations.length) { - object.metricAggregations = []; - for (var j = 0; j < message.metricAggregations.length; ++j) - object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; + if (message.funnelParameterFilter != null && message.hasOwnProperty("funnelParameterFilter")) { + object.funnelParameterFilter = $root.google.analytics.data.v1alpha.FunnelParameterFilter.toObject(message.funnelParameterFilter, options); + if (options.oneofs) + object.expr = "funnelParameterFilter"; } return object; }; /** - * Converts this Pivot to JSON. + * Converts this FunnelParameterFilterExpression to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Pivot + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpression * @instance * @returns {Object.} JSON object */ - Pivot.prototype.toJSON = function toJSON() { + FunnelParameterFilterExpression.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Pivot; + return FunnelParameterFilterExpression; })(); - v1beta.CohortSpec = (function() { + v1alpha.FunnelParameterFilterExpressionList = (function() { /** - * Properties of a CohortSpec. - * @memberof google.analytics.data.v1beta - * @interface ICohortSpec - * @property {Array.|null} [cohorts] CohortSpec cohorts - * @property {google.analytics.data.v1beta.ICohortsRange|null} [cohortsRange] CohortSpec cohortsRange - * @property {google.analytics.data.v1beta.ICohortReportSettings|null} [cohortReportSettings] CohortSpec cohortReportSettings + * Properties of a FunnelParameterFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelParameterFilterExpressionList + * @property {Array.|null} [expressions] FunnelParameterFilterExpressionList expressions */ /** - * Constructs a new CohortSpec. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a CohortSpec. - * @implements ICohortSpec + * Constructs a new FunnelParameterFilterExpressionList. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelParameterFilterExpressionList. + * @implements IFunnelParameterFilterExpressionList * @constructor - * @param {google.analytics.data.v1beta.ICohortSpec=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set */ - function CohortSpec(properties) { - this.cohorts = []; + function FunnelParameterFilterExpressionList(properties) { + this.expressions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24563,104 +23684,78 @@ } /** - * CohortSpec cohorts. - * @member {Array.} cohorts - * @memberof google.analytics.data.v1beta.CohortSpec - * @instance - */ - CohortSpec.prototype.cohorts = $util.emptyArray; - - /** - * CohortSpec cohortsRange. - * @member {google.analytics.data.v1beta.ICohortsRange|null|undefined} cohortsRange - * @memberof google.analytics.data.v1beta.CohortSpec - * @instance - */ - CohortSpec.prototype.cohortsRange = null; - - /** - * CohortSpec cohortReportSettings. - * @member {google.analytics.data.v1beta.ICohortReportSettings|null|undefined} cohortReportSettings - * @memberof google.analytics.data.v1beta.CohortSpec + * FunnelParameterFilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @instance */ - CohortSpec.prototype.cohortReportSettings = null; + FunnelParameterFilterExpressionList.prototype.expressions = $util.emptyArray; /** - * Creates a new CohortSpec instance using the specified properties. + * Creates a new FunnelParameterFilterExpressionList instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1beta.ICohortSpec=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList instance */ - CohortSpec.create = function create(properties) { - return new CohortSpec(properties); + FunnelParameterFilterExpressionList.create = function create(properties) { + return new FunnelParameterFilterExpressionList(properties); }; /** - * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpressionList message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1beta.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encode = function encode(message, writer) { + FunnelParameterFilterExpressionList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cohorts != null && message.cohorts.length) - for (var i = 0; i < message.cohorts.length; ++i) - $root.google.analytics.data.v1beta.Cohort.encode(message.cohorts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.cohortsRange != null && Object.hasOwnProperty.call(message, "cohortsRange")) - $root.google.analytics.data.v1beta.CohortsRange.encode(message.cohortsRange, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.cohortReportSettings != null && Object.hasOwnProperty.call(message, "cohortReportSettings")) - $root.google.analytics.data.v1beta.CohortReportSettings.encode(message.cohortReportSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * Encodes the specified FunnelParameterFilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1beta.ICohortSpec} message CohortSpec message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortSpec.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortSpec message from the specified reader or buffer. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decode = function decode(reader, length) { + FunnelParameterFilterExpressionList.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortSpec(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.cohorts && message.cohorts.length)) - message.cohorts = []; - message.cohorts.push($root.google.analytics.data.v1beta.Cohort.decode(reader, reader.uint32())); - break; - case 2: - message.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.decode(reader, reader.uint32()); - break; - case 3: - message.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.decode(reader, reader.uint32()); + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -24671,154 +23766,129 @@ }; /** - * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilterExpressionList message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortSpec.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilterExpressionList.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortSpec message. + * Verifies a FunnelParameterFilterExpressionList message. * @function verify - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortSpec.verify = function verify(message) { + FunnelParameterFilterExpressionList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cohorts != null && message.hasOwnProperty("cohorts")) { - if (!Array.isArray(message.cohorts)) - return "cohorts: array expected"; - for (var i = 0; i < message.cohorts.length; ++i) { - var error = $root.google.analytics.data.v1beta.Cohort.verify(message.cohorts[i]); + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.verify(message.expressions[i]); if (error) - return "cohorts." + error; + return "expressions." + error; } } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) { - var error = $root.google.analytics.data.v1beta.CohortsRange.verify(message.cohortsRange); - if (error) - return "cohortsRange." + error; - } - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) { - var error = $root.google.analytics.data.v1beta.CohortReportSettings.verify(message.cohortReportSettings); - if (error) - return "cohortReportSettings." + error; - } return null; }; /** - * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilterExpressionList message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + * @returns {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} FunnelParameterFilterExpressionList */ - CohortSpec.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.CohortSpec) + FunnelParameterFilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList) return object; - var message = new $root.google.analytics.data.v1beta.CohortSpec(); - if (object.cohorts) { - if (!Array.isArray(object.cohorts)) - throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohorts: array expected"); - message.cohorts = []; - for (var i = 0; i < object.cohorts.length; ++i) { - if (typeof object.cohorts[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohorts: object expected"); - message.cohorts[i] = $root.google.analytics.data.v1beta.Cohort.fromObject(object.cohorts[i]); + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.fromObject(object.expressions[i]); } } - if (object.cohortsRange != null) { - if (typeof object.cohortsRange !== "object") - throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohortsRange: object expected"); - message.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.fromObject(object.cohortsRange); - } - if (object.cohortReportSettings != null) { - if (typeof object.cohortReportSettings !== "object") - throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohortReportSettings: object expected"); - message.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.fromObject(object.cohortReportSettings); - } return message; }; /** - * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilterExpressionList message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @static - * @param {google.analytics.data.v1beta.CohortSpec} message CohortSpec + * @param {google.analytics.data.v1alpha.FunnelParameterFilterExpressionList} message FunnelParameterFilterExpressionList * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortSpec.toObject = function toObject(message, options) { + FunnelParameterFilterExpressionList.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.cohorts = []; - if (options.defaults) { - object.cohortsRange = null; - object.cohortReportSettings = null; - } - if (message.cohorts && message.cohorts.length) { - object.cohorts = []; - for (var j = 0; j < message.cohorts.length; ++j) - object.cohorts[j] = $root.google.analytics.data.v1beta.Cohort.toObject(message.cohorts[j], options); + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1alpha.FunnelParameterFilterExpression.toObject(message.expressions[j], options); } - if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) - object.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.toObject(message.cohortsRange, options); - if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) - object.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.toObject(message.cohortReportSettings, options); return object; }; /** - * Converts this CohortSpec to JSON. + * Converts this FunnelParameterFilterExpressionList to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.CohortSpec + * @memberof google.analytics.data.v1alpha.FunnelParameterFilterExpressionList * @instance * @returns {Object.} JSON object */ - CohortSpec.prototype.toJSON = function toJSON() { + FunnelParameterFilterExpressionList.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CohortSpec; + return FunnelParameterFilterExpressionList; })(); - v1beta.Cohort = (function() { + v1alpha.FunnelParameterFilter = (function() { /** - * Properties of a Cohort. - * @memberof google.analytics.data.v1beta - * @interface ICohort - * @property {string|null} [name] Cohort name - * @property {string|null} [dimension] Cohort dimension - * @property {google.analytics.data.v1beta.IDateRange|null} [dateRange] Cohort dateRange + * Properties of a FunnelParameterFilter. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelParameterFilter + * @property {string|null} [eventParameterName] FunnelParameterFilter eventParameterName + * @property {string|null} [itemParameterName] FunnelParameterFilter itemParameterName + * @property {google.analytics.data.v1alpha.IStringFilter|null} [stringFilter] FunnelParameterFilter stringFilter + * @property {google.analytics.data.v1alpha.IInListFilter|null} [inListFilter] FunnelParameterFilter inListFilter + * @property {google.analytics.data.v1alpha.INumericFilter|null} [numericFilter] FunnelParameterFilter numericFilter + * @property {google.analytics.data.v1alpha.IBetweenFilter|null} [betweenFilter] FunnelParameterFilter betweenFilter */ /** - * Constructs a new Cohort. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Cohort. - * @implements ICohort + * Constructs a new FunnelParameterFilter. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelParameterFilter. + * @implements IFunnelParameterFilter * @constructor - * @param {google.analytics.data.v1beta.ICohort=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set */ - function Cohort(properties) { + function FunnelParameterFilter(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24826,101 +23896,165 @@ } /** - * Cohort name. - * @member {string} name - * @memberof google.analytics.data.v1beta.Cohort + * FunnelParameterFilter eventParameterName. + * @member {string|null|undefined} eventParameterName + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance */ - Cohort.prototype.name = ""; + FunnelParameterFilter.prototype.eventParameterName = null; /** - * Cohort dimension. - * @member {string} dimension - * @memberof google.analytics.data.v1beta.Cohort + * FunnelParameterFilter itemParameterName. + * @member {string|null|undefined} itemParameterName + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance */ - Cohort.prototype.dimension = ""; + FunnelParameterFilter.prototype.itemParameterName = null; /** - * Cohort dateRange. - * @member {google.analytics.data.v1beta.IDateRange|null|undefined} dateRange - * @memberof google.analytics.data.v1beta.Cohort + * FunnelParameterFilter stringFilter. + * @member {google.analytics.data.v1alpha.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance */ - Cohort.prototype.dateRange = null; + FunnelParameterFilter.prototype.stringFilter = null; /** - * Creates a new Cohort instance using the specified properties. + * FunnelParameterFilter inListFilter. + * @member {google.analytics.data.v1alpha.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.inListFilter = null; + + /** + * FunnelParameterFilter numericFilter. + * @member {google.analytics.data.v1alpha.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.numericFilter = null; + + /** + * FunnelParameterFilter betweenFilter. + * @member {google.analytics.data.v1alpha.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + FunnelParameterFilter.prototype.betweenFilter = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * FunnelParameterFilter oneParameter. + * @member {"eventParameterName"|"itemParameterName"|undefined} oneParameter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + Object.defineProperty(FunnelParameterFilter.prototype, "oneParameter", { + get: $util.oneOfGetter($oneOfFields = ["eventParameterName", "itemParameterName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * FunnelParameterFilter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter + * @instance + */ + Object.defineProperty(FunnelParameterFilter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new FunnelParameterFilter instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1beta.ICohort=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Cohort} Cohort instance + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter instance */ - Cohort.create = function create(properties) { - return new Cohort(properties); + FunnelParameterFilter.create = function create(properties) { + return new FunnelParameterFilter(properties); }; /** - * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * Encodes the specified FunnelParameterFilter message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1beta.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encode = function encode(message, writer) { + FunnelParameterFilter.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimension); - if (message.dateRange != null && Object.hasOwnProperty.call(message, "dateRange")) - $root.google.analytics.data.v1beta.DateRange.encode(message.dateRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.eventParameterName != null && Object.hasOwnProperty.call(message, "eventParameterName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.eventParameterName); + if (message.itemParameterName != null && Object.hasOwnProperty.call(message, "itemParameterName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.itemParameterName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1alpha.StringFilter.encode(message.stringFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1alpha.InListFilter.encode(message.inListFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1alpha.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1alpha.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; /** - * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * Encodes the specified FunnelParameterFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelParameterFilter.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1beta.ICohort} message Cohort message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelParameterFilter} message FunnelParameterFilter message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cohort.encodeDelimited = function encodeDelimited(message, writer) { + FunnelParameterFilter.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cohort message from the specified reader or buffer. + * Decodes a FunnelParameterFilter message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decode = function decode(reader, length) { + FunnelParameterFilter.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Cohort(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.eventParameterName = reader.string(); break; case 2: - message.dimension = reader.string(); + message.itemParameterName = reader.string(); break; - case 3: - message.dateRange = $root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32()); + case 4: + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.decode(reader, reader.uint32()); + break; + case 5: + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.decode(reader, reader.uint32()); + break; + case 6: + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.decode(reader, reader.uint32()); + break; + case 7: + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -24931,131 +24065,204 @@ }; /** - * Decodes a Cohort message from the specified reader or buffer, length delimited. + * Decodes a FunnelParameterFilter message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cohort.decodeDelimited = function decodeDelimited(reader) { + FunnelParameterFilter.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cohort message. + * Verifies a FunnelParameterFilter message. * @function verify - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cohort.verify = function verify(message) { + FunnelParameterFilter.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.dimension != null && message.hasOwnProperty("dimension")) - if (!$util.isString(message.dimension)) - return "dimension: string expected"; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) { - var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRange); - if (error) - return "dateRange." + error; + var properties = {}; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + properties.oneParameter = 1; + if (!$util.isString(message.eventParameterName)) + return "eventParameterName: string expected"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + if (properties.oneParameter === 1) + return "oneParameter: multiple values"; + properties.oneParameter = 1; + if (!$util.isString(message.itemParameterName)) + return "itemParameterName: string expected"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1alpha.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } } return null; }; /** - * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelParameterFilter message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Cohort} Cohort + * @returns {google.analytics.data.v1alpha.FunnelParameterFilter} FunnelParameterFilter */ - Cohort.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Cohort) + FunnelParameterFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelParameterFilter) return object; - var message = new $root.google.analytics.data.v1beta.Cohort(); - if (object.name != null) - message.name = String(object.name); - if (object.dimension != null) - message.dimension = String(object.dimension); - if (object.dateRange != null) { - if (typeof object.dateRange !== "object") - throw TypeError(".google.analytics.data.v1beta.Cohort.dateRange: object expected"); - message.dateRange = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRange); + var message = new $root.google.analytics.data.v1alpha.FunnelParameterFilter(); + if (object.eventParameterName != null) + message.eventParameterName = String(object.eventParameterName); + if (object.itemParameterName != null) + message.itemParameterName = String(object.itemParameterName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelParameterFilter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.fromObject(object.betweenFilter); } return message; }; /** - * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * Creates a plain object from a FunnelParameterFilter message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @static - * @param {google.analytics.data.v1beta.Cohort} message Cohort + * @param {google.analytics.data.v1alpha.FunnelParameterFilter} message FunnelParameterFilter * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cohort.toObject = function toObject(message, options) { + FunnelParameterFilter.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.name = ""; - object.dimension = ""; - object.dateRange = null; + if (message.eventParameterName != null && message.hasOwnProperty("eventParameterName")) { + object.eventParameterName = message.eventParameterName; + if (options.oneofs) + object.oneParameter = "eventParameterName"; + } + if (message.itemParameterName != null && message.hasOwnProperty("itemParameterName")) { + object.itemParameterName = message.itemParameterName; + if (options.oneofs) + object.oneParameter = "itemParameterName"; + } + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1alpha.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1alpha.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1alpha.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1alpha.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.dimension != null && message.hasOwnProperty("dimension")) - object.dimension = message.dimension; - if (message.dateRange != null && message.hasOwnProperty("dateRange")) - object.dateRange = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRange, options); return object; }; /** - * Converts this Cohort to JSON. + * Converts this FunnelParameterFilter to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Cohort + * @memberof google.analytics.data.v1alpha.FunnelParameterFilter * @instance * @returns {Object.} JSON object */ - Cohort.prototype.toJSON = function toJSON() { + FunnelParameterFilter.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Cohort; + return FunnelParameterFilter; })(); - v1beta.CohortsRange = (function() { + v1alpha.FunnelResponseMetadata = (function() { /** - * Properties of a CohortsRange. - * @memberof google.analytics.data.v1beta - * @interface ICohortsRange - * @property {google.analytics.data.v1beta.CohortsRange.Granularity|null} [granularity] CohortsRange granularity - * @property {number|null} [startOffset] CohortsRange startOffset - * @property {number|null} [endOffset] CohortsRange endOffset + * Properties of a FunnelResponseMetadata. + * @memberof google.analytics.data.v1alpha + * @interface IFunnelResponseMetadata + * @property {Array.|null} [samplingMetadatas] FunnelResponseMetadata samplingMetadatas */ /** - * Constructs a new CohortsRange. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a CohortsRange. - * @implements ICohortsRange + * Constructs a new FunnelResponseMetadata. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a FunnelResponseMetadata. + * @implements IFunnelResponseMetadata * @constructor - * @param {google.analytics.data.v1beta.ICohortsRange=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set */ - function CohortsRange(properties) { + function FunnelResponseMetadata(properties) { + this.samplingMetadatas = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25063,101 +24270,78 @@ } /** - * CohortsRange granularity. - * @member {google.analytics.data.v1beta.CohortsRange.Granularity} granularity - * @memberof google.analytics.data.v1beta.CohortsRange + * FunnelResponseMetadata samplingMetadatas. + * @member {Array.} samplingMetadatas + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @instance */ - CohortsRange.prototype.granularity = 0; + FunnelResponseMetadata.prototype.samplingMetadatas = $util.emptyArray; /** - * CohortsRange startOffset. - * @member {number} startOffset - * @memberof google.analytics.data.v1beta.CohortsRange - * @instance + * Creates a new FunnelResponseMetadata instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata + * @static + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata instance */ - CohortsRange.prototype.startOffset = 0; + FunnelResponseMetadata.create = function create(properties) { + return new FunnelResponseMetadata(properties); + }; /** - * CohortsRange endOffset. - * @member {number} endOffset - * @memberof google.analytics.data.v1beta.CohortsRange - * @instance - */ - CohortsRange.prototype.endOffset = 0; - - /** - * Creates a new CohortsRange instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.CohortsRange - * @static - * @param {google.analytics.data.v1beta.ICohortsRange=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange instance - */ - CohortsRange.create = function create(properties) { - return new CohortsRange(properties); - }; - - /** - * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * Encodes the specified FunnelResponseMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1beta.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encode = function encode(message, writer) { + FunnelResponseMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.granularity != null && Object.hasOwnProperty.call(message, "granularity")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.granularity); - if (message.startOffset != null && Object.hasOwnProperty.call(message, "startOffset")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startOffset); - if (message.endOffset != null && Object.hasOwnProperty.call(message, "endOffset")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.endOffset); + if (message.samplingMetadatas != null && message.samplingMetadatas.length) + for (var i = 0; i < message.samplingMetadatas.length; ++i) + $root.google.analytics.data.v1alpha.SamplingMetadata.encode(message.samplingMetadatas[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * Encodes the specified FunnelResponseMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.FunnelResponseMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1beta.ICohortsRange} message CohortsRange message or plain object to encode + * @param {google.analytics.data.v1alpha.IFunnelResponseMetadata} message FunnelResponseMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortsRange.encodeDelimited = function encodeDelimited(message, writer) { + FunnelResponseMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortsRange message from the specified reader or buffer. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decode = function decode(reader, length) { + FunnelResponseMetadata.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortsRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granularity = reader.int32(); - break; - case 2: - message.startOffset = reader.int32(); - break; - case 3: - message.endOffset = reader.int32(); + if (!(message.samplingMetadatas && message.samplingMetadatas.length)) + message.samplingMetadatas = []; + message.samplingMetadatas.push($root.google.analytics.data.v1alpha.SamplingMetadata.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -25168,165 +24352,125 @@ }; /** - * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * Decodes a FunnelResponseMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortsRange.decodeDelimited = function decodeDelimited(reader) { + FunnelResponseMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortsRange message. + * Verifies a FunnelResponseMetadata message. * @function verify - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortsRange.verify = function verify(message) { + FunnelResponseMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.granularity != null && message.hasOwnProperty("granularity")) - switch (message.granularity) { - default: - return "granularity: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; + if (message.samplingMetadatas != null && message.hasOwnProperty("samplingMetadatas")) { + if (!Array.isArray(message.samplingMetadatas)) + return "samplingMetadatas: array expected"; + for (var i = 0; i < message.samplingMetadatas.length; ++i) { + var error = $root.google.analytics.data.v1alpha.SamplingMetadata.verify(message.samplingMetadatas[i]); + if (error) + return "samplingMetadatas." + error; } - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - if (!$util.isInteger(message.startOffset)) - return "startOffset: integer expected"; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - if (!$util.isInteger(message.endOffset)) - return "endOffset: integer expected"; + } return null; }; /** - * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * Creates a FunnelResponseMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + * @returns {google.analytics.data.v1alpha.FunnelResponseMetadata} FunnelResponseMetadata */ - CohortsRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.CohortsRange) + FunnelResponseMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.FunnelResponseMetadata) return object; - var message = new $root.google.analytics.data.v1beta.CohortsRange(); - switch (object.granularity) { - case "GRANULARITY_UNSPECIFIED": - case 0: - message.granularity = 0; - break; - case "DAILY": - case 1: - message.granularity = 1; - break; - case "WEEKLY": - case 2: - message.granularity = 2; - break; - case "MONTHLY": - case 3: - message.granularity = 3; - break; + var message = new $root.google.analytics.data.v1alpha.FunnelResponseMetadata(); + if (object.samplingMetadatas) { + if (!Array.isArray(object.samplingMetadatas)) + throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: array expected"); + message.samplingMetadatas = []; + for (var i = 0; i < object.samplingMetadatas.length; ++i) { + if (typeof object.samplingMetadatas[i] !== "object") + throw TypeError(".google.analytics.data.v1alpha.FunnelResponseMetadata.samplingMetadatas: object expected"); + message.samplingMetadatas[i] = $root.google.analytics.data.v1alpha.SamplingMetadata.fromObject(object.samplingMetadatas[i]); + } } - if (object.startOffset != null) - message.startOffset = object.startOffset | 0; - if (object.endOffset != null) - message.endOffset = object.endOffset | 0; return message; }; /** - * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * Creates a plain object from a FunnelResponseMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @static - * @param {google.analytics.data.v1beta.CohortsRange} message CohortsRange + * @param {google.analytics.data.v1alpha.FunnelResponseMetadata} message FunnelResponseMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortsRange.toObject = function toObject(message, options) { + FunnelResponseMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.granularity = options.enums === String ? "GRANULARITY_UNSPECIFIED" : 0; - object.startOffset = 0; - object.endOffset = 0; + if (options.arrays || options.defaults) + object.samplingMetadatas = []; + if (message.samplingMetadatas && message.samplingMetadatas.length) { + object.samplingMetadatas = []; + for (var j = 0; j < message.samplingMetadatas.length; ++j) + object.samplingMetadatas[j] = $root.google.analytics.data.v1alpha.SamplingMetadata.toObject(message.samplingMetadatas[j], options); } - if (message.granularity != null && message.hasOwnProperty("granularity")) - object.granularity = options.enums === String ? $root.google.analytics.data.v1beta.CohortsRange.Granularity[message.granularity] : message.granularity; - if (message.startOffset != null && message.hasOwnProperty("startOffset")) - object.startOffset = message.startOffset; - if (message.endOffset != null && message.hasOwnProperty("endOffset")) - object.endOffset = message.endOffset; return object; }; /** - * Converts this CohortsRange to JSON. + * Converts this FunnelResponseMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.CohortsRange + * @memberof google.analytics.data.v1alpha.FunnelResponseMetadata * @instance * @returns {Object.} JSON object */ - CohortsRange.prototype.toJSON = function toJSON() { + FunnelResponseMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * Granularity enum. - * @name google.analytics.data.v1beta.CohortsRange.Granularity - * @enum {number} - * @property {number} GRANULARITY_UNSPECIFIED=0 GRANULARITY_UNSPECIFIED value - * @property {number} DAILY=1 DAILY value - * @property {number} WEEKLY=2 WEEKLY value - * @property {number} MONTHLY=3 MONTHLY value - */ - CohortsRange.Granularity = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "GRANULARITY_UNSPECIFIED"] = 0; - values[valuesById[1] = "DAILY"] = 1; - values[valuesById[2] = "WEEKLY"] = 2; - values[valuesById[3] = "MONTHLY"] = 3; - return values; - })(); - - return CohortsRange; + return FunnelResponseMetadata; })(); - v1beta.CohortReportSettings = (function() { + v1alpha.SamplingMetadata = (function() { /** - * Properties of a CohortReportSettings. - * @memberof google.analytics.data.v1beta - * @interface ICohortReportSettings - * @property {boolean|null} [accumulate] CohortReportSettings accumulate + * Properties of a SamplingMetadata. + * @memberof google.analytics.data.v1alpha + * @interface ISamplingMetadata + * @property {number|Long|null} [samplesReadCount] SamplingMetadata samplesReadCount + * @property {number|Long|null} [samplingSpaceSize] SamplingMetadata samplingSpaceSize */ /** - * Constructs a new CohortReportSettings. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a CohortReportSettings. - * @implements ICohortReportSettings + * Constructs a new SamplingMetadata. + * @memberof google.analytics.data.v1alpha + * @classdesc Represents a SamplingMetadata. + * @implements ISamplingMetadata * @constructor - * @param {google.analytics.data.v1beta.ICohortReportSettings=} [properties] Properties to set + * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set */ - function CohortReportSettings(properties) { + function SamplingMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25334,75 +24478,88 @@ } /** - * CohortReportSettings accumulate. - * @member {boolean} accumulate - * @memberof google.analytics.data.v1beta.CohortReportSettings + * SamplingMetadata samplesReadCount. + * @member {number|Long} samplesReadCount + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @instance */ - CohortReportSettings.prototype.accumulate = false; + SamplingMetadata.prototype.samplesReadCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Creates a new CohortReportSettings instance using the specified properties. + * SamplingMetadata samplingSpaceSize. + * @member {number|Long} samplingSpaceSize + * @memberof google.analytics.data.v1alpha.SamplingMetadata + * @instance + */ + SamplingMetadata.prototype.samplingSpaceSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new SamplingMetadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1beta.ICohortReportSettings=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings instance + * @param {google.analytics.data.v1alpha.ISamplingMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata instance */ - CohortReportSettings.create = function create(properties) { - return new CohortReportSettings(properties); + SamplingMetadata.create = function create(properties) { + return new SamplingMetadata(properties); }; /** - * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * Encodes the specified SamplingMetadata message. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1beta.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encode = function encode(message, writer) { + SamplingMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.accumulate != null && Object.hasOwnProperty.call(message, "accumulate")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.accumulate); + if (message.samplesReadCount != null && Object.hasOwnProperty.call(message, "samplesReadCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.samplesReadCount); + if (message.samplingSpaceSize != null && Object.hasOwnProperty.call(message, "samplingSpaceSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.samplingSpaceSize); return writer; }; /** - * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * Encodes the specified SamplingMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1alpha.SamplingMetadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1beta.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {google.analytics.data.v1alpha.ISamplingMetadata} message SamplingMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CohortReportSettings.encodeDelimited = function encodeDelimited(message, writer) { + SamplingMetadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer. + * Decodes a SamplingMetadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decode = function decode(reader, length) { + SamplingMetadata.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortReportSettings(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.accumulate = reader.bool(); + message.samplesReadCount = reader.int64(); + break; + case 2: + message.samplingSpaceSize = reader.int64(); break; default: reader.skipType(tag & 7); @@ -25413,286 +24570,612 @@ }; /** - * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * Decodes a SamplingMetadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CohortReportSettings.decodeDelimited = function decodeDelimited(reader) { + SamplingMetadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CohortReportSettings message. + * Verifies a SamplingMetadata message. * @function verify - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CohortReportSettings.verify = function verify(message) { + SamplingMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - if (typeof message.accumulate !== "boolean") - return "accumulate: boolean expected"; + if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) + if (!$util.isInteger(message.samplesReadCount) && !(message.samplesReadCount && $util.isInteger(message.samplesReadCount.low) && $util.isInteger(message.samplesReadCount.high))) + return "samplesReadCount: integer|Long expected"; + if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) + if (!$util.isInteger(message.samplingSpaceSize) && !(message.samplingSpaceSize && $util.isInteger(message.samplingSpaceSize.low) && $util.isInteger(message.samplingSpaceSize.high))) + return "samplingSpaceSize: integer|Long expected"; return null; }; /** - * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * Creates a SamplingMetadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + * @returns {google.analytics.data.v1alpha.SamplingMetadata} SamplingMetadata */ - CohortReportSettings.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.CohortReportSettings) + SamplingMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1alpha.SamplingMetadata) return object; - var message = new $root.google.analytics.data.v1beta.CohortReportSettings(); - if (object.accumulate != null) - message.accumulate = Boolean(object.accumulate); + var message = new $root.google.analytics.data.v1alpha.SamplingMetadata(); + if (object.samplesReadCount != null) + if ($util.Long) + (message.samplesReadCount = $util.Long.fromValue(object.samplesReadCount)).unsigned = false; + else if (typeof object.samplesReadCount === "string") + message.samplesReadCount = parseInt(object.samplesReadCount, 10); + else if (typeof object.samplesReadCount === "number") + message.samplesReadCount = object.samplesReadCount; + else if (typeof object.samplesReadCount === "object") + message.samplesReadCount = new $util.LongBits(object.samplesReadCount.low >>> 0, object.samplesReadCount.high >>> 0).toNumber(); + if (object.samplingSpaceSize != null) + if ($util.Long) + (message.samplingSpaceSize = $util.Long.fromValue(object.samplingSpaceSize)).unsigned = false; + else if (typeof object.samplingSpaceSize === "string") + message.samplingSpaceSize = parseInt(object.samplingSpaceSize, 10); + else if (typeof object.samplingSpaceSize === "number") + message.samplingSpaceSize = object.samplingSpaceSize; + else if (typeof object.samplingSpaceSize === "object") + message.samplingSpaceSize = new $util.LongBits(object.samplingSpaceSize.low >>> 0, object.samplingSpaceSize.high >>> 0).toNumber(); return message; }; /** - * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * Creates a plain object from a SamplingMetadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @static - * @param {google.analytics.data.v1beta.CohortReportSettings} message CohortReportSettings + * @param {google.analytics.data.v1alpha.SamplingMetadata} message SamplingMetadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CohortReportSettings.toObject = function toObject(message, options) { + SamplingMetadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.accumulate = false; - if (message.accumulate != null && message.hasOwnProperty("accumulate")) - object.accumulate = message.accumulate; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.samplesReadCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.samplesReadCount = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.samplingSpaceSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.samplingSpaceSize = options.longs === String ? "0" : 0; + } + if (message.samplesReadCount != null && message.hasOwnProperty("samplesReadCount")) + if (typeof message.samplesReadCount === "number") + object.samplesReadCount = options.longs === String ? String(message.samplesReadCount) : message.samplesReadCount; + else + object.samplesReadCount = options.longs === String ? $util.Long.prototype.toString.call(message.samplesReadCount) : options.longs === Number ? new $util.LongBits(message.samplesReadCount.low >>> 0, message.samplesReadCount.high >>> 0).toNumber() : message.samplesReadCount; + if (message.samplingSpaceSize != null && message.hasOwnProperty("samplingSpaceSize")) + if (typeof message.samplingSpaceSize === "number") + object.samplingSpaceSize = options.longs === String ? String(message.samplingSpaceSize) : message.samplingSpaceSize; + else + object.samplingSpaceSize = options.longs === String ? $util.Long.prototype.toString.call(message.samplingSpaceSize) : options.longs === Number ? new $util.LongBits(message.samplingSpaceSize.low >>> 0, message.samplingSpaceSize.high >>> 0).toNumber() : message.samplingSpaceSize; return object; }; /** - * Converts this CohortReportSettings to JSON. + * Converts this SamplingMetadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.CohortReportSettings + * @memberof google.analytics.data.v1alpha.SamplingMetadata * @instance * @returns {Object.} JSON object */ - CohortReportSettings.prototype.toJSON = function toJSON() { + SamplingMetadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return CohortReportSettings; + return SamplingMetadata; })(); - v1beta.ResponseMetaData = (function() { + /** + * MetricType enum. + * @name google.analytics.data.v1alpha.MetricType + * @enum {number} + * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value + * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value + * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value + * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value + * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value + * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value + * @property {number} TYPE_HOURS=7 TYPE_HOURS value + * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value + * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value + * @property {number} TYPE_FEET=10 TYPE_FEET value + * @property {number} TYPE_MILES=11 TYPE_MILES value + * @property {number} TYPE_METERS=12 TYPE_METERS value + * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value + */ + v1alpha.MetricType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "TYPE_INTEGER"] = 1; + values[valuesById[2] = "TYPE_FLOAT"] = 2; + values[valuesById[4] = "TYPE_SECONDS"] = 4; + values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; + values[valuesById[6] = "TYPE_MINUTES"] = 6; + values[valuesById[7] = "TYPE_HOURS"] = 7; + values[valuesById[8] = "TYPE_STANDARD"] = 8; + values[valuesById[9] = "TYPE_CURRENCY"] = 9; + values[valuesById[10] = "TYPE_FEET"] = 10; + values[valuesById[11] = "TYPE_MILES"] = 11; + values[valuesById[12] = "TYPE_METERS"] = 12; + values[valuesById[13] = "TYPE_KILOMETERS"] = 13; + return values; + })(); - /** - * Properties of a ResponseMetaData. - * @memberof google.analytics.data.v1beta - * @interface IResponseMetaData - * @property {boolean|null} [dataLossFromOtherRow] ResponseMetaData dataLossFromOtherRow - * @property {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null} [schemaRestrictionResponse] ResponseMetaData schemaRestrictionResponse - * @property {string|null} [currencyCode] ResponseMetaData currencyCode - * @property {string|null} [timeZone] ResponseMetaData timeZone - * @property {string|null} [emptyReason] ResponseMetaData emptyReason - */ + return v1alpha; + })(); + + data.v1beta = (function() { + + /** + * Namespace v1beta. + * @memberof google.analytics.data + * @namespace + */ + var v1beta = {}; + + v1beta.BetaAnalyticsData = (function() { /** - * Constructs a new ResponseMetaData. + * Constructs a new BetaAnalyticsData service. * @memberof google.analytics.data.v1beta - * @classdesc Represents a ResponseMetaData. - * @implements IResponseMetaData + * @classdesc Represents a BetaAnalyticsData + * @extends $protobuf.rpc.Service * @constructor - * @param {google.analytics.data.v1beta.IResponseMetaData=} [properties] Properties to set + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited */ - function ResponseMetaData(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + function BetaAnalyticsData(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); } + (BetaAnalyticsData.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = BetaAnalyticsData; + /** - * ResponseMetaData dataLossFromOtherRow. - * @member {boolean} dataLossFromOtherRow - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @instance + * Creates new BetaAnalyticsData service using the specified rpc implementation. + * @function create + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {BetaAnalyticsData} RPC service. Useful where requests and/or responses are streamed. */ - ResponseMetaData.prototype.dataLossFromOtherRow = false; + BetaAnalyticsData.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; /** - * ResponseMetaData schemaRestrictionResponse. - * @member {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null|undefined} schemaRestrictionResponse - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runReport}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef RunReportCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.RunReportResponse} [response] RunReportResponse + */ + + /** + * Calls RunReport. + * @function runReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IRunReportRequest} request RunReportRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunReportCallback} callback Node-style callback called with the error, if any, and RunReportResponse + * @returns {undefined} + * @variation 1 */ - ResponseMetaData.prototype.schemaRestrictionResponse = null; + Object.defineProperty(BetaAnalyticsData.prototype.runReport = function runReport(request, callback) { + return this.rpcCall(runReport, $root.google.analytics.data.v1beta.RunReportRequest, $root.google.analytics.data.v1beta.RunReportResponse, request, callback); + }, "name", { value: "RunReport" }); /** - * ResponseMetaData currencyCode. - * @member {string|null|undefined} currencyCode - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Calls RunReport. + * @function runReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IRunReportRequest} request RunReportRequest message or plain object + * @returns {Promise} Promise + * @variation 2 */ - ResponseMetaData.prototype.currencyCode = null; /** - * ResponseMetaData timeZone. - * @member {string|null|undefined} timeZone - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runPivotReport}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef RunPivotReportCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.RunPivotReportResponse} [response] RunPivotReportResponse + */ + + /** + * Calls RunPivotReport. + * @function runPivotReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IRunPivotReportRequest} request RunPivotReportRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReportCallback} callback Node-style callback called with the error, if any, and RunPivotReportResponse + * @returns {undefined} + * @variation 1 */ - ResponseMetaData.prototype.timeZone = null; + Object.defineProperty(BetaAnalyticsData.prototype.runPivotReport = function runPivotReport(request, callback) { + return this.rpcCall(runPivotReport, $root.google.analytics.data.v1beta.RunPivotReportRequest, $root.google.analytics.data.v1beta.RunPivotReportResponse, request, callback); + }, "name", { value: "RunPivotReport" }); /** - * ResponseMetaData emptyReason. - * @member {string|null|undefined} emptyReason - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Calls RunPivotReport. + * @function runPivotReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IRunPivotReportRequest} request RunPivotReportRequest message or plain object + * @returns {Promise} Promise + * @variation 2 */ - ResponseMetaData.prototype.emptyReason = null; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunReports}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef BatchRunReportsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.BatchRunReportsResponse} [response] BatchRunReportsResponse + */ /** - * ResponseMetaData _schemaRestrictionResponse. - * @member {"schemaRestrictionResponse"|undefined} _schemaRestrictionResponse - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Calls BatchRunReports. + * @function batchRunReports + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReportsCallback} callback Node-style callback called with the error, if any, and BatchRunReportsResponse + * @returns {undefined} + * @variation 1 */ - Object.defineProperty(ResponseMetaData.prototype, "_schemaRestrictionResponse", { - get: $util.oneOfGetter($oneOfFields = ["schemaRestrictionResponse"]), - set: $util.oneOfSetter($oneOfFields) - }); + Object.defineProperty(BetaAnalyticsData.prototype.batchRunReports = function batchRunReports(request, callback) { + return this.rpcCall(batchRunReports, $root.google.analytics.data.v1beta.BatchRunReportsRequest, $root.google.analytics.data.v1beta.BatchRunReportsResponse, request, callback); + }, "name", { value: "BatchRunReports" }); /** - * ResponseMetaData _currencyCode. - * @member {"currencyCode"|undefined} _currencyCode - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Calls BatchRunReports. + * @function batchRunReports + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} request BatchRunReportsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 */ - Object.defineProperty(ResponseMetaData.prototype, "_currencyCode", { - get: $util.oneOfGetter($oneOfFields = ["currencyCode"]), - set: $util.oneOfSetter($oneOfFields) - }); /** - * ResponseMetaData _timeZone. - * @member {"timeZone"|undefined} _timeZone - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @instance + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#batchRunPivotReports}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef BatchRunPivotReportsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.BatchRunPivotReportsResponse} [response] BatchRunPivotReportsResponse */ - Object.defineProperty(ResponseMetaData.prototype, "_timeZone", { - get: $util.oneOfGetter($oneOfFields = ["timeZone"]), - set: $util.oneOfSetter($oneOfFields) - }); /** - * ResponseMetaData _emptyReason. - * @member {"emptyReason"|undefined} _emptyReason - * @memberof google.analytics.data.v1beta.ResponseMetaData + * Calls BatchRunPivotReports. + * @function batchRunPivotReports + * @memberof google.analytics.data.v1beta.BetaAnalyticsData * @instance + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReportsCallback} callback Node-style callback called with the error, if any, and BatchRunPivotReportsResponse + * @returns {undefined} + * @variation 1 */ - Object.defineProperty(ResponseMetaData.prototype, "_emptyReason", { - get: $util.oneOfGetter($oneOfFields = ["emptyReason"]), - set: $util.oneOfSetter($oneOfFields) - }); + Object.defineProperty(BetaAnalyticsData.prototype.batchRunPivotReports = function batchRunPivotReports(request, callback) { + return this.rpcCall(batchRunPivotReports, $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest, $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse, request, callback); + }, "name", { value: "BatchRunPivotReports" }); /** - * Creates a new ResponseMetaData instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @static - * @param {google.analytics.data.v1beta.IResponseMetaData=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData instance + * Calls BatchRunPivotReports. + * @function batchRunPivotReports + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} request BatchRunPivotReportsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 */ - ResponseMetaData.create = function create(properties) { - return new ResponseMetaData(properties); - }; /** - * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @static - * @param {google.analytics.data.v1beta.IResponseMetaData} message ResponseMetaData message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#getMetadata}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef GetMetadataCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.Metadata} [response] Metadata */ - ResponseMetaData.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dataLossFromOtherRow != null && Object.hasOwnProperty.call(message, "dataLossFromOtherRow")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.dataLossFromOtherRow); - if (message.schemaRestrictionResponse != null && Object.hasOwnProperty.call(message, "schemaRestrictionResponse")) - $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.encode(message.schemaRestrictionResponse, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.currencyCode); - if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.timeZone); - if (message.emptyReason != null && Object.hasOwnProperty.call(message, "emptyReason")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.emptyReason); - return writer; - }; /** - * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @static - * @param {google.analytics.data.v1beta.IResponseMetaData} message ResponseMetaData message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * Calls GetMetadata. + * @function getMetadata + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.IGetMetadataRequest} request GetMetadataRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.GetMetadataCallback} callback Node-style callback called with the error, if any, and Metadata + * @returns {undefined} + * @variation 1 */ - ResponseMetaData.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + Object.defineProperty(BetaAnalyticsData.prototype.getMetadata = function getMetadata(request, callback) { + return this.rpcCall(getMetadata, $root.google.analytics.data.v1beta.GetMetadataRequest, $root.google.analytics.data.v1beta.Metadata, request, callback); + }, "name", { value: "GetMetadata" }); /** - * Decodes a ResponseMetaData message from the specified reader or buffer. + * Calls GetMetadata. + * @function getMetadata + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.IGetMetadataRequest} request GetMetadataRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#runRealtimeReport}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef RunRealtimeReportCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.RunRealtimeReportResponse} [response] RunRealtimeReportResponse + */ + + /** + * Calls RunRealtimeReport. + * @function runRealtimeReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReportCallback} callback Node-style callback called with the error, if any, and RunRealtimeReportResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(BetaAnalyticsData.prototype.runRealtimeReport = function runRealtimeReport(request, callback) { + return this.rpcCall(runRealtimeReport, $root.google.analytics.data.v1beta.RunRealtimeReportRequest, $root.google.analytics.data.v1beta.RunRealtimeReportResponse, request, callback); + }, "name", { value: "RunRealtimeReport" }); + + /** + * Calls RunRealtimeReport. + * @function runRealtimeReport + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} request RunRealtimeReportRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.analytics.data.v1beta.BetaAnalyticsData#checkCompatibility}. + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @typedef CheckCompatibilityCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.analytics.data.v1beta.CheckCompatibilityResponse} [response] CheckCompatibilityResponse + */ + + /** + * Calls CheckCompatibility. + * @function checkCompatibility + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} request CheckCompatibilityRequest message or plain object + * @param {google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibilityCallback} callback Node-style callback called with the error, if any, and CheckCompatibilityResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(BetaAnalyticsData.prototype.checkCompatibility = function checkCompatibility(request, callback) { + return this.rpcCall(checkCompatibility, $root.google.analytics.data.v1beta.CheckCompatibilityRequest, $root.google.analytics.data.v1beta.CheckCompatibilityResponse, request, callback); + }, "name", { value: "CheckCompatibility" }); + + /** + * Calls CheckCompatibility. + * @function checkCompatibility + * @memberof google.analytics.data.v1beta.BetaAnalyticsData + * @instance + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} request CheckCompatibilityRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return BetaAnalyticsData; + })(); + + v1beta.CheckCompatibilityRequest = (function() { + + /** + * Properties of a CheckCompatibilityRequest. + * @memberof google.analytics.data.v1beta + * @interface ICheckCompatibilityRequest + * @property {string|null} [property] CheckCompatibilityRequest property + * @property {Array.|null} [dimensions] CheckCompatibilityRequest dimensions + * @property {Array.|null} [metrics] CheckCompatibilityRequest metrics + * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] CheckCompatibilityRequest dimensionFilter + * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] CheckCompatibilityRequest metricFilter + * @property {google.analytics.data.v1beta.Compatibility|null} [compatibilityFilter] CheckCompatibilityRequest compatibilityFilter + */ + + /** + * Constructs a new CheckCompatibilityRequest. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a CheckCompatibilityRequest. + * @implements ICheckCompatibilityRequest + * @constructor + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest=} [properties] Properties to set + */ + function CheckCompatibilityRequest(properties) { + this.dimensions = []; + this.metrics = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CheckCompatibilityRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.property = ""; + + /** + * CheckCompatibilityRequest dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.dimensions = $util.emptyArray; + + /** + * CheckCompatibilityRequest metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.metrics = $util.emptyArray; + + /** + * CheckCompatibilityRequest dimensionFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.dimensionFilter = null; + + /** + * CheckCompatibilityRequest metricFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.metricFilter = null; + + /** + * CheckCompatibilityRequest compatibilityFilter. + * @member {google.analytics.data.v1beta.Compatibility} compatibilityFilter + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @instance + */ + CheckCompatibilityRequest.prototype.compatibilityFilter = 0; + + /** + * Creates a new CheckCompatibilityRequest instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @static + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest instance + */ + CheckCompatibilityRequest.create = function create(properties) { + return new CheckCompatibilityRequest(properties); + }; + + /** + * Encodes the specified CheckCompatibilityRequest message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @static + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} message CheckCompatibilityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CheckCompatibilityRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.compatibilityFilter != null && Object.hasOwnProperty.call(message, "compatibilityFilter")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.compatibilityFilter); + return writer; + }; + + /** + * Encodes the specified CheckCompatibilityRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest + * @static + * @param {google.analytics.data.v1beta.ICheckCompatibilityRequest} message CheckCompatibilityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CheckCompatibilityRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CheckCompatibilityRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decode = function decode(reader, length) { + CheckCompatibilityRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CheckCompatibilityRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.property = reader.string(); + break; + case 2: + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); + break; case 3: - message.dataLossFromOtherRow = reader.bool(); + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); break; case 4: - message.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.decode(reader, reader.uint32()); + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); break; case 5: - message.currencyCode = reader.string(); + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); break; case 6: - message.timeZone = reader.string(); - break; - case 7: - message.emptyReason = reader.string(); + message.compatibilityFilter = reader.int32(); break; default: reader.skipType(tag & 7); @@ -25703,718 +25186,310 @@ }; /** - * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * Decodes a CheckCompatibilityRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResponseMetaData.decodeDelimited = function decodeDelimited(reader) { + CheckCompatibilityRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ResponseMetaData message. + * Verifies a CheckCompatibilityRequest message. * @function verify - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResponseMetaData.verify = function verify(message) { + CheckCompatibilityRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - if (typeof message.dataLossFromOtherRow !== "boolean") - return "dataLossFromOtherRow: boolean expected"; - if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { - properties._schemaRestrictionResponse = 1; - { - var error = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify(message.schemaRestrictionResponse); + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); if (error) - return "schemaRestrictionResponse." + error; + return "dimensions." + error; } } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { - properties._currencyCode = 1; - if (!$util.isString(message.currencyCode)) - return "currencyCode: string expected"; + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) { - properties._timeZone = 1; - if (!$util.isString(message.timeZone)) - return "timeZone: string expected"; + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; } - if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { - properties._emptyReason = 1; - if (!$util.isString(message.emptyReason)) - return "emptyReason: string expected"; + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (error) + return "metricFilter." + error; } + if (message.compatibilityFilter != null && message.hasOwnProperty("compatibilityFilter")) + switch (message.compatibilityFilter) { + default: + return "compatibilityFilter: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; /** - * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * Creates a CheckCompatibilityRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + * @returns {google.analytics.data.v1beta.CheckCompatibilityRequest} CheckCompatibilityRequest */ - ResponseMetaData.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData) + CheckCompatibilityRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.CheckCompatibilityRequest) return object; - var message = new $root.google.analytics.data.v1beta.ResponseMetaData(); - if (object.dataLossFromOtherRow != null) - message.dataLossFromOtherRow = Boolean(object.dataLossFromOtherRow); - if (object.schemaRestrictionResponse != null) { - if (typeof object.schemaRestrictionResponse !== "object") - throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.schemaRestrictionResponse: object expected"); - message.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.fromObject(object.schemaRestrictionResponse); + var message = new $root.google.analytics.data.v1beta.CheckCompatibilityRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); + } + } + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); + } + } + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.metricFilter != null) { + if (typeof object.metricFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityRequest.metricFilter: object expected"); + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); + } + switch (object.compatibilityFilter) { + case "COMPATIBILITY_UNSPECIFIED": + case 0: + message.compatibilityFilter = 0; + break; + case "COMPATIBLE": + case 1: + message.compatibilityFilter = 1; + break; + case "INCOMPATIBLE": + case 2: + message.compatibilityFilter = 2; + break; } - if (object.currencyCode != null) - message.currencyCode = String(object.currencyCode); - if (object.timeZone != null) - message.timeZone = String(object.timeZone); - if (object.emptyReason != null) - message.emptyReason = String(object.emptyReason); return message; }; /** - * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * Creates a plain object from a CheckCompatibilityRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @static - * @param {google.analytics.data.v1beta.ResponseMetaData} message ResponseMetaData + * @param {google.analytics.data.v1beta.CheckCompatibilityRequest} message CheckCompatibilityRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResponseMetaData.toObject = function toObject(message, options) { + CheckCompatibilityRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.dataLossFromOtherRow = false; - if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) - object.dataLossFromOtherRow = message.dataLossFromOtherRow; - if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { - object.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.toObject(message.schemaRestrictionResponse, options); - if (options.oneofs) - object._schemaRestrictionResponse = "schemaRestrictionResponse"; + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; } - if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { - object.currencyCode = message.currencyCode; - if (options.oneofs) - object._currencyCode = "currencyCode"; + if (options.defaults) { + object.property = ""; + object.dimensionFilter = null; + object.metricFilter = null; + object.compatibilityFilter = options.enums === String ? "COMPATIBILITY_UNSPECIFIED" : 0; } - if (message.timeZone != null && message.hasOwnProperty("timeZone")) { - object.timeZone = message.timeZone; - if (options.oneofs) - object._timeZone = "timeZone"; + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); } - if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { - object.emptyReason = message.emptyReason; - if (options.oneofs) - object._emptyReason = "emptyReason"; + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) + object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); + if (message.compatibilityFilter != null && message.hasOwnProperty("compatibilityFilter")) + object.compatibilityFilter = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibilityFilter] : message.compatibilityFilter; return object; }; /** - * Converts this ResponseMetaData to JSON. + * Converts this CheckCompatibilityRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.ResponseMetaData + * @memberof google.analytics.data.v1beta.CheckCompatibilityRequest * @instance * @returns {Object.} JSON object */ - ResponseMetaData.prototype.toJSON = function toJSON() { + CheckCompatibilityRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - ResponseMetaData.SchemaRestrictionResponse = (function() { + return CheckCompatibilityRequest; + })(); - /** - * Properties of a SchemaRestrictionResponse. - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @interface ISchemaRestrictionResponse - * @property {Array.|null} [activeMetricRestrictions] SchemaRestrictionResponse activeMetricRestrictions - */ + v1beta.CheckCompatibilityResponse = (function() { - /** - * Constructs a new SchemaRestrictionResponse. - * @memberof google.analytics.data.v1beta.ResponseMetaData - * @classdesc Represents a SchemaRestrictionResponse. - * @implements ISchemaRestrictionResponse - * @constructor - * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set - */ - function SchemaRestrictionResponse(properties) { - this.activeMetricRestrictions = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a CheckCompatibilityResponse. + * @memberof google.analytics.data.v1beta + * @interface ICheckCompatibilityResponse + * @property {Array.|null} [dimensionCompatibilities] CheckCompatibilityResponse dimensionCompatibilities + * @property {Array.|null} [metricCompatibilities] CheckCompatibilityResponse metricCompatibilities + */ - /** - * SchemaRestrictionResponse activeMetricRestrictions. - * @member {Array.} activeMetricRestrictions - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @instance - */ - SchemaRestrictionResponse.prototype.activeMetricRestrictions = $util.emptyArray; + /** + * Constructs a new CheckCompatibilityResponse. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a CheckCompatibilityResponse. + * @implements ICheckCompatibilityResponse + * @constructor + * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse=} [properties] Properties to set + */ + function CheckCompatibilityResponse(properties) { + this.dimensionCompatibilities = []; + this.metricCompatibilities = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new SchemaRestrictionResponse instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse instance - */ - SchemaRestrictionResponse.create = function create(properties) { - return new SchemaRestrictionResponse(properties); - }; - - /** - * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - SchemaRestrictionResponse.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.activeMetricRestrictions != null && message.activeMetricRestrictions.length) - for (var i = 0; i < message.activeMetricRestrictions.length; ++i) - $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.encode(message.activeMetricRestrictions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - SchemaRestrictionResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - SchemaRestrictionResponse.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.activeMetricRestrictions && message.activeMetricRestrictions.length)) - message.activeMetricRestrictions = []; - message.activeMetricRestrictions.push($root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - SchemaRestrictionResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a SchemaRestrictionResponse message. - * @function verify - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - SchemaRestrictionResponse.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.activeMetricRestrictions != null && message.hasOwnProperty("activeMetricRestrictions")) { - if (!Array.isArray(message.activeMetricRestrictions)) - return "activeMetricRestrictions: array expected"; - for (var i = 0; i < message.activeMetricRestrictions.length; ++i) { - var error = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify(message.activeMetricRestrictions[i]); - if (error) - return "activeMetricRestrictions." + error; - } - } - return null; - }; - - /** - * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse - */ - SchemaRestrictionResponse.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse) - return object; - var message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse(); - if (object.activeMetricRestrictions) { - if (!Array.isArray(object.activeMetricRestrictions)) - throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: array expected"); - message.activeMetricRestrictions = []; - for (var i = 0; i < object.activeMetricRestrictions.length; ++i) { - if (typeof object.activeMetricRestrictions[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: object expected"); - message.activeMetricRestrictions[i] = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.fromObject(object.activeMetricRestrictions[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} message SchemaRestrictionResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - SchemaRestrictionResponse.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.activeMetricRestrictions = []; - if (message.activeMetricRestrictions && message.activeMetricRestrictions.length) { - object.activeMetricRestrictions = []; - for (var j = 0; j < message.activeMetricRestrictions.length; ++j) - object.activeMetricRestrictions[j] = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.toObject(message.activeMetricRestrictions[j], options); - } - return object; - }; - - /** - * Converts this SchemaRestrictionResponse to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @instance - * @returns {Object.} JSON object - */ - SchemaRestrictionResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - SchemaRestrictionResponse.ActiveMetricRestriction = (function() { - - /** - * Properties of an ActiveMetricRestriction. - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @interface IActiveMetricRestriction - * @property {string|null} [metricName] ActiveMetricRestriction metricName - * @property {Array.|null} [restrictedMetricTypes] ActiveMetricRestriction restrictedMetricTypes - */ - - /** - * Constructs a new ActiveMetricRestriction. - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse - * @classdesc Represents an ActiveMetricRestriction. - * @implements IActiveMetricRestriction - * @constructor - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set - */ - function ActiveMetricRestriction(properties) { - this.restrictedMetricTypes = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * ActiveMetricRestriction metricName. - * @member {string|null|undefined} metricName - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - */ - ActiveMetricRestriction.prototype.metricName = null; - - /** - * ActiveMetricRestriction restrictedMetricTypes. - * @member {Array.} restrictedMetricTypes - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - */ - ActiveMetricRestriction.prototype.restrictedMetricTypes = $util.emptyArray; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * ActiveMetricRestriction _metricName. - * @member {"metricName"|undefined} _metricName - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - */ - Object.defineProperty(ActiveMetricRestriction.prototype, "_metricName", { - get: $util.oneOfGetter($oneOfFields = ["metricName"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new ActiveMetricRestriction instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction instance - */ - ActiveMetricRestriction.create = function create(properties) { - return new ActiveMetricRestriction(properties); - }; - - /** - * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ActiveMetricRestriction.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); - if (message.restrictedMetricTypes != null && message.restrictedMetricTypes.length) { - writer.uint32(/* id 2, wireType 2 =*/18).fork(); - for (var i = 0; i < message.restrictedMetricTypes.length; ++i) - writer.int32(message.restrictedMetricTypes[i]); - writer.ldelim(); - } - return writer; - }; - - /** - * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ActiveMetricRestriction.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ActiveMetricRestriction.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.metricName = reader.string(); - break; - case 2: - if (!(message.restrictedMetricTypes && message.restrictedMetricTypes.length)) - message.restrictedMetricTypes = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.restrictedMetricTypes.push(reader.int32()); - } else - message.restrictedMetricTypes.push(reader.int32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ActiveMetricRestriction.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an ActiveMetricRestriction message. - * @function verify - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ActiveMetricRestriction.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.metricName != null && message.hasOwnProperty("metricName")) { - properties._metricName = 1; - if (!$util.isString(message.metricName)) - return "metricName: string expected"; - } - if (message.restrictedMetricTypes != null && message.hasOwnProperty("restrictedMetricTypes")) { - if (!Array.isArray(message.restrictedMetricTypes)) - return "restrictedMetricTypes: array expected"; - for (var i = 0; i < message.restrictedMetricTypes.length; ++i) - switch (message.restrictedMetricTypes[i]) { - default: - return "restrictedMetricTypes: enum value[] expected"; - case 0: - case 1: - case 2: - break; - } - } - return null; - }; - - /** - * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction - */ - ActiveMetricRestriction.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction) - return object; - var message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); - if (object.metricName != null) - message.metricName = String(object.metricName); - if (object.restrictedMetricTypes) { - if (!Array.isArray(object.restrictedMetricTypes)) - throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.restrictedMetricTypes: array expected"); - message.restrictedMetricTypes = []; - for (var i = 0; i < object.restrictedMetricTypes.length; ++i) - switch (object.restrictedMetricTypes[i]) { - default: - case "RESTRICTED_METRIC_TYPE_UNSPECIFIED": - case 0: - message.restrictedMetricTypes[i] = 0; - break; - case "COST_DATA": - case 1: - message.restrictedMetricTypes[i] = 1; - break; - case "REVENUE_DATA": - case 2: - message.restrictedMetricTypes[i] = 2; - break; - } - } - return message; - }; - - /** - * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @static - * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} message ActiveMetricRestriction - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ActiveMetricRestriction.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.restrictedMetricTypes = []; - if (message.metricName != null && message.hasOwnProperty("metricName")) { - object.metricName = message.metricName; - if (options.oneofs) - object._metricName = "metricName"; - } - if (message.restrictedMetricTypes && message.restrictedMetricTypes.length) { - object.restrictedMetricTypes = []; - for (var j = 0; j < message.restrictedMetricTypes.length; ++j) - object.restrictedMetricTypes[j] = options.enums === String ? $root.google.analytics.data.v1beta.RestrictedMetricType[message.restrictedMetricTypes[j]] : message.restrictedMetricTypes[j]; - } - return object; - }; - - /** - * Converts this ActiveMetricRestriction to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction - * @instance - * @returns {Object.} JSON object - */ - ActiveMetricRestriction.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return ActiveMetricRestriction; - })(); - - return SchemaRestrictionResponse; - })(); - - return ResponseMetaData; - })(); - - v1beta.DimensionHeader = (function() { - - /** - * Properties of a DimensionHeader. - * @memberof google.analytics.data.v1beta - * @interface IDimensionHeader - * @property {string|null} [name] DimensionHeader name - */ - - /** - * Constructs a new DimensionHeader. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a DimensionHeader. - * @implements IDimensionHeader - * @constructor - * @param {google.analytics.data.v1beta.IDimensionHeader=} [properties] Properties to set - */ - function DimensionHeader(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * CheckCompatibilityResponse dimensionCompatibilities. + * @member {Array.} dimensionCompatibilities + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse + * @instance + */ + CheckCompatibilityResponse.prototype.dimensionCompatibilities = $util.emptyArray; /** - * DimensionHeader name. - * @member {string} name - * @memberof google.analytics.data.v1beta.DimensionHeader + * CheckCompatibilityResponse metricCompatibilities. + * @member {Array.} metricCompatibilities + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @instance */ - DimensionHeader.prototype.name = ""; + CheckCompatibilityResponse.prototype.metricCompatibilities = $util.emptyArray; /** - * Creates a new DimensionHeader instance using the specified properties. + * Creates a new CheckCompatibilityResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static - * @param {google.analytics.data.v1beta.IDimensionHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader instance + * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse instance */ - DimensionHeader.create = function create(properties) { - return new DimensionHeader(properties); + CheckCompatibilityResponse.create = function create(properties) { + return new CheckCompatibilityResponse(properties); }; /** - * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * Encodes the specified CheckCompatibilityResponse message. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static - * @param {google.analytics.data.v1beta.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse} message CheckCompatibilityResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encode = function encode(message, writer) { + CheckCompatibilityResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimensionCompatibilities != null && message.dimensionCompatibilities.length) + for (var i = 0; i < message.dimensionCompatibilities.length; ++i) + $root.google.analytics.data.v1beta.DimensionCompatibility.encode(message.dimensionCompatibilities[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricCompatibilities != null && message.metricCompatibilities.length) + for (var i = 0; i < message.metricCompatibilities.length; ++i) + $root.google.analytics.data.v1beta.MetricCompatibility.encode(message.metricCompatibilities[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * Encodes the specified CheckCompatibilityResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CheckCompatibilityResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static - * @param {google.analytics.data.v1beta.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {google.analytics.data.v1beta.ICheckCompatibilityResponse} message CheckCompatibilityResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + CheckCompatibilityResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionHeader message from the specified reader or buffer. + * Decodes a CheckCompatibilityResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decode = function decode(reader, length) { + CheckCompatibilityResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CheckCompatibilityResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + if (!(message.dimensionCompatibilities && message.dimensionCompatibilities.length)) + message.dimensionCompatibilities = []; + message.dimensionCompatibilities.push($root.google.analytics.data.v1beta.DimensionCompatibility.decode(reader, reader.uint32())); + break; + case 2: + if (!(message.metricCompatibilities && message.metricCompatibilities.length)) + message.metricCompatibilities = []; + message.metricCompatibilities.push($root.google.analytics.data.v1beta.MetricCompatibility.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -26425,108 +25500,154 @@ }; /** - * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a CheckCompatibilityResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionHeader.decodeDelimited = function decodeDelimited(reader) { + CheckCompatibilityResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionHeader message. + * Verifies a CheckCompatibilityResponse message. * @function verify - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionHeader.verify = function verify(message) { + CheckCompatibilityResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; + if (message.dimensionCompatibilities != null && message.hasOwnProperty("dimensionCompatibilities")) { + if (!Array.isArray(message.dimensionCompatibilities)) + return "dimensionCompatibilities: array expected"; + for (var i = 0; i < message.dimensionCompatibilities.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionCompatibility.verify(message.dimensionCompatibilities[i]); + if (error) + return "dimensionCompatibilities." + error; + } + } + if (message.metricCompatibilities != null && message.hasOwnProperty("metricCompatibilities")) { + if (!Array.isArray(message.metricCompatibilities)) + return "metricCompatibilities: array expected"; + for (var i = 0; i < message.metricCompatibilities.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricCompatibility.verify(message.metricCompatibilities[i]); + if (error) + return "metricCompatibilities." + error; + } + } return null; }; /** - * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a CheckCompatibilityResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + * @returns {google.analytics.data.v1beta.CheckCompatibilityResponse} CheckCompatibilityResponse */ - DimensionHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionHeader) + CheckCompatibilityResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.CheckCompatibilityResponse) return object; - var message = new $root.google.analytics.data.v1beta.DimensionHeader(); - if (object.name != null) - message.name = String(object.name); + var message = new $root.google.analytics.data.v1beta.CheckCompatibilityResponse(); + if (object.dimensionCompatibilities) { + if (!Array.isArray(object.dimensionCompatibilities)) + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.dimensionCompatibilities: array expected"); + message.dimensionCompatibilities = []; + for (var i = 0; i < object.dimensionCompatibilities.length; ++i) { + if (typeof object.dimensionCompatibilities[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.dimensionCompatibilities: object expected"); + message.dimensionCompatibilities[i] = $root.google.analytics.data.v1beta.DimensionCompatibility.fromObject(object.dimensionCompatibilities[i]); + } + } + if (object.metricCompatibilities) { + if (!Array.isArray(object.metricCompatibilities)) + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.metricCompatibilities: array expected"); + message.metricCompatibilities = []; + for (var i = 0; i < object.metricCompatibilities.length; ++i) { + if (typeof object.metricCompatibilities[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.CheckCompatibilityResponse.metricCompatibilities: object expected"); + message.metricCompatibilities[i] = $root.google.analytics.data.v1beta.MetricCompatibility.fromObject(object.metricCompatibilities[i]); + } + } return message; }; /** - * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * Creates a plain object from a CheckCompatibilityResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @static - * @param {google.analytics.data.v1beta.DimensionHeader} message DimensionHeader + * @param {google.analytics.data.v1beta.CheckCompatibilityResponse} message CheckCompatibilityResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionHeader.toObject = function toObject(message, options) { + CheckCompatibilityResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; + if (options.arrays || options.defaults) { + object.dimensionCompatibilities = []; + object.metricCompatibilities = []; + } + if (message.dimensionCompatibilities && message.dimensionCompatibilities.length) { + object.dimensionCompatibilities = []; + for (var j = 0; j < message.dimensionCompatibilities.length; ++j) + object.dimensionCompatibilities[j] = $root.google.analytics.data.v1beta.DimensionCompatibility.toObject(message.dimensionCompatibilities[j], options); + } + if (message.metricCompatibilities && message.metricCompatibilities.length) { + object.metricCompatibilities = []; + for (var j = 0; j < message.metricCompatibilities.length; ++j) + object.metricCompatibilities[j] = $root.google.analytics.data.v1beta.MetricCompatibility.toObject(message.metricCompatibilities[j], options); + } return object; }; /** - * Converts this DimensionHeader to JSON. + * Converts this CheckCompatibilityResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionHeader + * @memberof google.analytics.data.v1beta.CheckCompatibilityResponse * @instance * @returns {Object.} JSON object */ - DimensionHeader.prototype.toJSON = function toJSON() { + CheckCompatibilityResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionHeader; + return CheckCompatibilityResponse; })(); - v1beta.MetricHeader = (function() { + v1beta.Metadata = (function() { /** - * Properties of a MetricHeader. + * Properties of a Metadata. * @memberof google.analytics.data.v1beta - * @interface IMetricHeader - * @property {string|null} [name] MetricHeader name - * @property {google.analytics.data.v1beta.MetricType|null} [type] MetricHeader type + * @interface IMetadata + * @property {string|null} [name] Metadata name + * @property {Array.|null} [dimensions] Metadata dimensions + * @property {Array.|null} [metrics] Metadata metrics */ /** - * Constructs a new MetricHeader. + * Constructs a new Metadata. * @memberof google.analytics.data.v1beta - * @classdesc Represents a MetricHeader. - * @implements IMetricHeader + * @classdesc Represents a Metadata. + * @implements IMetadata * @constructor - * @param {google.analytics.data.v1beta.IMetricHeader=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IMetadata=} [properties] Properties to set */ - function MetricHeader(properties) { + function Metadata(properties) { + this.dimensions = []; + this.metrics = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26534,88 +25655,107 @@ } /** - * MetricHeader name. + * Metadata name. * @member {string} name - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @instance */ - MetricHeader.prototype.name = ""; + Metadata.prototype.name = ""; /** - * MetricHeader type. - * @member {google.analytics.data.v1beta.MetricType} type - * @memberof google.analytics.data.v1beta.MetricHeader + * Metadata dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1beta.Metadata * @instance */ - MetricHeader.prototype.type = 0; + Metadata.prototype.dimensions = $util.emptyArray; /** - * Creates a new MetricHeader instance using the specified properties. + * Metadata metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1beta.Metadata + * @instance + */ + Metadata.prototype.metrics = $util.emptyArray; + + /** + * Creates a new Metadata instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static - * @param {google.analytics.data.v1beta.IMetricHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader instance + * @param {google.analytics.data.v1beta.IMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Metadata} Metadata instance */ - MetricHeader.create = function create(properties) { - return new MetricHeader(properties); + Metadata.create = function create(properties) { + return new Metadata(properties); }; /** - * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * Encodes the specified Metadata message. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static - * @param {google.analytics.data.v1beta.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1beta.IMetadata} message Metadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encode = function encode(message, writer) { + Metadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1beta.DimensionMetadata.encode(message.dimensions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1beta.MetricMetadata.encode(message.metrics[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); return writer; }; /** - * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metadata.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static - * @param {google.analytics.data.v1beta.IMetricHeader} message MetricHeader message or plain object to encode + * @param {google.analytics.data.v1beta.IMetadata} message Metadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { + Metadata.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricHeader message from the specified reader or buffer. + * Decodes a Metadata message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1beta.Metadata} Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decode = function decode(reader, length) { + Metadata.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Metadata(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 3: message.name = reader.string(); break; + case 1: + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1beta.DimensionMetadata.decode(reader, reader.uint32())); + break; case 2: - message.type = reader.int32(); + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1beta.MetricMetadata.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -26626,186 +25766,177 @@ }; /** - * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * Decodes a Metadata message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1beta.Metadata} Metadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricHeader.decodeDelimited = function decodeDelimited(reader) { + Metadata.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricHeader message. + * Verifies a Metadata message. * @function verify - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricHeader.verify = function verify(message) { + Metadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 0: - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionMetadata.verify(message.dimensions[i]); + if (error) + return "dimensions." + error; + } + } + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricMetadata.verify(message.metrics[i]); + if (error) + return "metrics." + error; } + } return null; }; /** - * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * Creates a Metadata message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + * @returns {google.analytics.data.v1beta.Metadata} Metadata */ - MetricHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.MetricHeader) + Metadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Metadata) return object; - var message = new $root.google.analytics.data.v1beta.MetricHeader(); + var message = new $root.google.analytics.data.v1beta.Metadata(); if (object.name != null) message.name = String(object.name); - switch (object.type) { - case "METRIC_TYPE_UNSPECIFIED": - case 0: - message.type = 0; - break; - case "TYPE_INTEGER": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_SECONDS": - case 4: - message.type = 4; - break; - case "TYPE_MILLISECONDS": - case 5: - message.type = 5; - break; - case "TYPE_MINUTES": - case 6: - message.type = 6; - break; - case "TYPE_HOURS": - case 7: - message.type = 7; - break; - case "TYPE_STANDARD": - case 8: - message.type = 8; - break; - case "TYPE_CURRENCY": - case 9: - message.type = 9; - break; - case "TYPE_FEET": - case 10: - message.type = 10; - break; - case "TYPE_MILES": - case 11: - message.type = 11; - break; - case "TYPE_METERS": - case 12: - message.type = 12; - break; - case "TYPE_KILOMETERS": - case 13: - message.type = 13; - break; + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1beta.Metadata.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.Metadata.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1beta.DimensionMetadata.fromObject(object.dimensions[i]); + } + } + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1beta.Metadata.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.Metadata.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1beta.MetricMetadata.fromObject(object.metrics[i]); + } } return message; }; /** - * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * Creates a plain object from a Metadata message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @static - * @param {google.analytics.data.v1beta.MetricHeader} message MetricHeader + * @param {google.analytics.data.v1beta.Metadata} message Metadata * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricHeader.toObject = function toObject(message, options) { + Metadata.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + } + if (options.defaults) object.name = ""; - object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1beta.DimensionMetadata.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1beta.MetricMetadata.toObject(message.metrics[j], options); } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.analytics.data.v1beta.MetricType[message.type] : message.type; return object; }; /** - * Converts this MetricHeader to JSON. + * Converts this Metadata to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.MetricHeader + * @memberof google.analytics.data.v1beta.Metadata * @instance * @returns {Object.} JSON object */ - MetricHeader.prototype.toJSON = function toJSON() { + Metadata.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MetricHeader; + return Metadata; })(); - v1beta.PivotHeader = (function() { + v1beta.RunReportRequest = (function() { /** - * Properties of a PivotHeader. + * Properties of a RunReportRequest. * @memberof google.analytics.data.v1beta - * @interface IPivotHeader - * @property {Array.|null} [pivotDimensionHeaders] PivotHeader pivotDimensionHeaders - * @property {number|null} [rowCount] PivotHeader rowCount + * @interface IRunReportRequest + * @property {string|null} [property] RunReportRequest property + * @property {Array.|null} [dimensions] RunReportRequest dimensions + * @property {Array.|null} [metrics] RunReportRequest metrics + * @property {Array.|null} [dateRanges] RunReportRequest dateRanges + * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunReportRequest dimensionFilter + * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunReportRequest metricFilter + * @property {number|Long|null} [offset] RunReportRequest offset + * @property {number|Long|null} [limit] RunReportRequest limit + * @property {Array.|null} [metricAggregations] RunReportRequest metricAggregations + * @property {Array.|null} [orderBys] RunReportRequest orderBys + * @property {string|null} [currencyCode] RunReportRequest currencyCode + * @property {google.analytics.data.v1beta.ICohortSpec|null} [cohortSpec] RunReportRequest cohortSpec + * @property {boolean|null} [keepEmptyRows] RunReportRequest keepEmptyRows + * @property {boolean|null} [returnPropertyQuota] RunReportRequest returnPropertyQuota */ /** - * Constructs a new PivotHeader. + * Constructs a new RunReportRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a PivotHeader. - * @implements IPivotHeader + * @classdesc Represents a RunReportRequest. + * @implements IRunReportRequest * @constructor - * @param {google.analytics.data.v1beta.IPivotHeader=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IRunReportRequest=} [properties] Properties to set */ - function PivotHeader(properties) { - this.pivotDimensionHeaders = []; + function RunReportRequest(properties) { + this.dimensions = []; + this.metrics = []; + this.dateRanges = []; + this.metricAggregations = []; + this.orderBys = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26813,308 +25944,267 @@ } /** - * PivotHeader pivotDimensionHeaders. - * @member {Array.} pivotDimensionHeaders - * @memberof google.analytics.data.v1beta.PivotHeader + * RunReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.RunReportRequest * @instance */ - PivotHeader.prototype.pivotDimensionHeaders = $util.emptyArray; + RunReportRequest.prototype.property = ""; /** - * PivotHeader rowCount. - * @member {number} rowCount - * @memberof google.analytics.data.v1beta.PivotHeader + * RunReportRequest dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1beta.RunReportRequest * @instance */ - PivotHeader.prototype.rowCount = 0; + RunReportRequest.prototype.dimensions = $util.emptyArray; /** - * Creates a new PivotHeader instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {google.analytics.data.v1beta.IPivotHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader instance + * RunReportRequest metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.create = function create(properties) { - return new PivotHeader(properties); - }; + RunReportRequest.prototype.metrics = $util.emptyArray; /** - * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. - * @function encode - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {google.analytics.data.v1beta.IPivotHeader} message PivotHeader message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * RunReportRequest dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.pivotDimensionHeaders != null && message.pivotDimensionHeaders.length) - for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) - $root.google.analytics.data.v1beta.PivotDimensionHeader.encode(message.pivotDimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.rowCount); - return writer; - }; + RunReportRequest.prototype.dateRanges = $util.emptyArray; /** - * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. - * @function encodeDelimited - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {google.analytics.data.v1beta.IPivotHeader} message PivotHeader message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * RunReportRequest dimensionFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + RunReportRequest.prototype.dimensionFilter = null; /** - * Decodes a PivotHeader message from the specified reader or buffer. - * @function decode - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing + * RunReportRequest metricFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PivotHeader(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.pivotDimensionHeaders && message.pivotDimensionHeaders.length)) - message.pivotDimensionHeaders = []; - message.pivotDimensionHeaders.push($root.google.analytics.data.v1beta.PivotDimensionHeader.decode(reader, reader.uint32())); - break; - case 2: - message.rowCount = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + RunReportRequest.prototype.metricFilter = null; /** - * Decodes a PivotHeader message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing + * RunReportRequest offset. + * @member {number|Long} offset + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + RunReportRequest.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Verifies a PivotHeader message. - * @function verify - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not + * RunReportRequest limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.pivotDimensionHeaders != null && message.hasOwnProperty("pivotDimensionHeaders")) { - if (!Array.isArray(message.pivotDimensionHeaders)) - return "pivotDimensionHeaders: array expected"; - for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) { - var error = $root.google.analytics.data.v1beta.PivotDimensionHeader.verify(message.pivotDimensionHeaders[i]); - if (error) - return "pivotDimensionHeaders." + error; - } - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - if (!$util.isInteger(message.rowCount)) - return "rowCount: integer expected"; - return null; - }; + RunReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader + * RunReportRequest metricAggregations. + * @member {Array.} metricAggregations + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.PivotHeader) - return object; - var message = new $root.google.analytics.data.v1beta.PivotHeader(); - if (object.pivotDimensionHeaders) { - if (!Array.isArray(object.pivotDimensionHeaders)) - throw TypeError(".google.analytics.data.v1beta.PivotHeader.pivotDimensionHeaders: array expected"); - message.pivotDimensionHeaders = []; - for (var i = 0; i < object.pivotDimensionHeaders.length; ++i) { - if (typeof object.pivotDimensionHeaders[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.PivotHeader.pivotDimensionHeaders: object expected"); - message.pivotDimensionHeaders[i] = $root.google.analytics.data.v1beta.PivotDimensionHeader.fromObject(object.pivotDimensionHeaders[i]); - } - } - if (object.rowCount != null) - message.rowCount = object.rowCount | 0; - return message; - }; + RunReportRequest.prototype.metricAggregations = $util.emptyArray; /** - * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.PivotHeader - * @static - * @param {google.analytics.data.v1beta.PivotHeader} message PivotHeader - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object + * RunReportRequest orderBys. + * @member {Array.} orderBys + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - PivotHeader.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.pivotDimensionHeaders = []; - if (options.defaults) - object.rowCount = 0; - if (message.pivotDimensionHeaders && message.pivotDimensionHeaders.length) { - object.pivotDimensionHeaders = []; - for (var j = 0; j < message.pivotDimensionHeaders.length; ++j) - object.pivotDimensionHeaders[j] = $root.google.analytics.data.v1beta.PivotDimensionHeader.toObject(message.pivotDimensionHeaders[j], options); - } - if (message.rowCount != null && message.hasOwnProperty("rowCount")) - object.rowCount = message.rowCount; - return object; - }; + RunReportRequest.prototype.orderBys = $util.emptyArray; /** - * Converts this PivotHeader to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.PivotHeader + * RunReportRequest currencyCode. + * @member {string} currencyCode + * @memberof google.analytics.data.v1beta.RunReportRequest * @instance - * @returns {Object.} JSON object */ - PivotHeader.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return PivotHeader; - })(); - - v1beta.PivotDimensionHeader = (function() { + RunReportRequest.prototype.currencyCode = ""; /** - * Properties of a PivotDimensionHeader. - * @memberof google.analytics.data.v1beta - * @interface IPivotDimensionHeader - * @property {Array.|null} [dimensionValues] PivotDimensionHeader dimensionValues + * RunReportRequest cohortSpec. + * @member {google.analytics.data.v1beta.ICohortSpec|null|undefined} cohortSpec + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ + RunReportRequest.prototype.cohortSpec = null; /** - * Constructs a new PivotDimensionHeader. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a PivotDimensionHeader. - * @implements IPivotDimensionHeader - * @constructor - * @param {google.analytics.data.v1beta.IPivotDimensionHeader=} [properties] Properties to set + * RunReportRequest keepEmptyRows. + * @member {boolean} keepEmptyRows + * @memberof google.analytics.data.v1beta.RunReportRequest + * @instance */ - function PivotDimensionHeader(properties) { - this.dimensionValues = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + RunReportRequest.prototype.keepEmptyRows = false; /** - * PivotDimensionHeader dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * RunReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1beta.RunReportRequest * @instance */ - PivotDimensionHeader.prototype.dimensionValues = $util.emptyArray; + RunReportRequest.prototype.returnPropertyQuota = false; /** - * Creates a new PivotDimensionHeader instance using the specified properties. + * Creates a new RunReportRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static - * @param {google.analytics.data.v1beta.IPivotDimensionHeader=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader instance + * @param {google.analytics.data.v1beta.IRunReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest instance */ - PivotDimensionHeader.create = function create(properties) { - return new PivotDimensionHeader(properties); + RunReportRequest.create = function create(properties) { + return new RunReportRequest(properties); }; /** - * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * Encodes the specified RunReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static - * @param {google.analytics.data.v1beta.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {google.analytics.data.v1beta.IRunReportRequest} message RunReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotDimensionHeader.encode = function encode(message, writer) { + RunReportRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1beta.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.dateRanges != null && message.dateRanges.length) + for (var i = 0; i < message.dateRanges.length; ++i) + $root.google.analytics.data.v1beta.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) + writer.uint32(/* id 7, wireType 0 =*/56).int64(message.offset); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 8, wireType 0 =*/64).int64(message.limit); + if (message.metricAggregations != null && message.metricAggregations.length) { + writer.uint32(/* id 9, wireType 2 =*/74).fork(); + for (var i = 0; i < message.metricAggregations.length; ++i) + writer.int32(message.metricAggregations[i]); + writer.ldelim(); + } + if (message.orderBys != null && message.orderBys.length) + for (var i = 0; i < message.orderBys.length; ++i) + $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.currencyCode); + if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) + $root.google.analytics.data.v1beta.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); + if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) + writer.uint32(/* id 13, wireType 0 =*/104).bool(message.keepEmptyRows); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 14, wireType 0 =*/112).bool(message.returnPropertyQuota); return writer; }; /** - * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static - * @param {google.analytics.data.v1beta.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {google.analytics.data.v1beta.IRunReportRequest} message RunReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PivotDimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + RunReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * Decodes a RunReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotDimensionHeader.decode = function decode(reader, length) { + RunReportRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PivotDimensionHeader(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1beta.DimensionValue.decode(reader, reader.uint32())); + message.property = reader.string(); + break; + case 2: + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.dateRanges && message.dateRanges.length)) + message.dateRanges = []; + message.dateRanges.push($root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32())); + break; + case 5: + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 6: + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 7: + message.offset = reader.int64(); + break; + case 8: + message.limit = reader.int64(); + break; + case 9: + if (!(message.metricAggregations && message.metricAggregations.length)) + message.metricAggregations = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.metricAggregations.push(reader.int32()); + } else + message.metricAggregations.push(reader.int32()); + break; + case 10: + if (!(message.orderBys && message.orderBys.length)) + message.orderBys = []; + message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); + break; + case 11: + message.currencyCode = reader.string(); + break; + case 12: + message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.decode(reader, reader.uint32()); + break; + case 13: + message.keepEmptyRows = reader.bool(); + break; + case 14: + message.returnPropertyQuota = reader.bool(); break; default: reader.skipType(tag & 7); @@ -27125,222 +26215,593 @@ }; /** - * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * Decodes a RunReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PivotDimensionHeader.decodeDelimited = function decodeDelimited(reader) { + RunReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PivotDimensionHeader message. + * Verifies a RunReportRequest message. * @function verify - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PivotDimensionHeader.verify = function verify(message) { + RunReportRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionValue.verify(message.dimensionValues[i]); + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); if (error) - return "dimensionValues." + error; + return "dimensions." + error; + } + } + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } + } + if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { + if (!Array.isArray(message.dateRanges)) + return "dateRanges: array expected"; + for (var i = 0; i < message.dateRanges.length; ++i) { + var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRanges[i]); + if (error) + return "dateRanges." + error; + } + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; + } + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (error) + return "metricFilter." + error; + } + if (message.offset != null && message.hasOwnProperty("offset")) + if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) + return "offset: integer|Long expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { + if (!Array.isArray(message.metricAggregations)) + return "metricAggregations: array expected"; + for (var i = 0; i < message.metricAggregations.length; ++i) + switch (message.metricAggregations[i]) { + default: + return "metricAggregations: enum value[] expected"; + case 0: + case 1: + case 5: + case 6: + case 4: + break; + } + } + if (message.orderBys != null && message.hasOwnProperty("orderBys")) { + if (!Array.isArray(message.orderBys)) + return "orderBys: array expected"; + for (var i = 0; i < message.orderBys.length; ++i) { + var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); + if (error) + return "orderBys." + error; } } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { + var error = $root.google.analytics.data.v1beta.CohortSpec.verify(message.cohortSpec); + if (error) + return "cohortSpec." + error; + } + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + if (typeof message.keepEmptyRows !== "boolean") + return "keepEmptyRows: boolean expected"; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; return null; }; /** - * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @memberof google.analytics.data.v1beta.RunReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + * @returns {google.analytics.data.v1beta.RunReportRequest} RunReportRequest */ - PivotDimensionHeader.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.PivotDimensionHeader) + RunReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunReportRequest) return object; - var message = new $root.google.analytics.data.v1beta.PivotDimensionHeader(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1beta.PivotDimensionHeader.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.PivotDimensionHeader.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1beta.DimensionValue.fromObject(object.dimensionValues[i]); + var message = new $root.google.analytics.data.v1beta.RunReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); } } - return message; - }; - - /** - * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. - * @function toObject - * @memberof google.analytics.data.v1beta.PivotDimensionHeader - * @static - * @param {google.analytics.data.v1beta.PivotDimensionHeader} message PivotDimensionHeader - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PivotDimensionHeader.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.dimensionValues = []; - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1beta.DimensionValue.toObject(message.dimensionValues[j], options); + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); + } } - return object; - }; - - /** - * Converts this PivotDimensionHeader to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.PivotDimensionHeader - * @instance - * @returns {Object.} JSON object - */ - PivotDimensionHeader.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return PivotDimensionHeader; - })(); - - v1beta.Row = (function() { - - /** - * Properties of a Row. - * @memberof google.analytics.data.v1beta - * @interface IRow - * @property {Array.|null} [dimensionValues] Row dimensionValues - * @property {Array.|null} [metricValues] Row metricValues - */ - - /** - * Constructs a new Row. - * @memberof google.analytics.data.v1beta - * @classdesc Represents a Row. - * @implements IRow - * @constructor - * @param {google.analytics.data.v1beta.IRow=} [properties] Properties to set - */ - function Row(properties) { - this.dimensionValues = []; - this.metricValues = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - + if (object.dateRanges) { + if (!Array.isArray(object.dateRanges)) + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dateRanges: array expected"); + message.dateRanges = []; + for (var i = 0; i < object.dateRanges.length; ++i) { + if (typeof object.dateRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dateRanges: object expected"); + message.dateRanges[i] = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRanges[i]); + } + } + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.metricFilter != null) { + if (typeof object.metricFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metricFilter: object expected"); + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); + } + if (object.offset != null) + if ($util.Long) + (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; + else if (typeof object.offset === "string") + message.offset = parseInt(object.offset, 10); + else if (typeof object.offset === "number") + message.offset = object.offset; + else if (typeof object.offset === "object") + message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + if (object.metricAggregations) { + if (!Array.isArray(object.metricAggregations)) + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.metricAggregations: array expected"); + message.metricAggregations = []; + for (var i = 0; i < object.metricAggregations.length; ++i) + switch (object.metricAggregations[i]) { + default: + case "METRIC_AGGREGATION_UNSPECIFIED": + case 0: + message.metricAggregations[i] = 0; + break; + case "TOTAL": + case 1: + message.metricAggregations[i] = 1; + break; + case "MINIMUM": + case 5: + message.metricAggregations[i] = 5; + break; + case "MAXIMUM": + case 6: + message.metricAggregations[i] = 6; + break; + case "COUNT": + case 4: + message.metricAggregations[i] = 4; + break; + } + } + if (object.orderBys) { + if (!Array.isArray(object.orderBys)) + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.orderBys: array expected"); + message.orderBys = []; + for (var i = 0; i < object.orderBys.length; ++i) { + if (typeof object.orderBys[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.orderBys: object expected"); + message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); + } + } + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.cohortSpec != null) { + if (typeof object.cohortSpec !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportRequest.cohortSpec: object expected"); + message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.fromObject(object.cohortSpec); + } + if (object.keepEmptyRows != null) + message.keepEmptyRows = Boolean(object.keepEmptyRows); + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); + return message; + }; + /** - * Row dimensionValues. - * @member {Array.} dimensionValues - * @memberof google.analytics.data.v1beta.Row + * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.RunReportRequest + * @static + * @param {google.analytics.data.v1beta.RunReportRequest} message RunReportRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RunReportRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + object.dateRanges = []; + object.metricAggregations = []; + object.orderBys = []; + } + if (options.defaults) { + object.property = ""; + object.dimensionFilter = null; + object.metricFilter = null; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.offset = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.limit = options.longs === String ? "0" : 0; + object.currencyCode = ""; + object.cohortSpec = null; + object.keepEmptyRows = false; + object.returnPropertyQuota = false; + } + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); + } + if (message.dateRanges && message.dateRanges.length) { + object.dateRanges = []; + for (var j = 0; j < message.dateRanges.length; ++j) + object.dateRanges[j] = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRanges[j], options); + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) + object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); + if (message.offset != null && message.hasOwnProperty("offset")) + if (typeof message.offset === "number") + object.offset = options.longs === String ? String(message.offset) : message.offset; + else + object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; + if (message.limit != null && message.hasOwnProperty("limit")) + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (message.metricAggregations && message.metricAggregations.length) { + object.metricAggregations = []; + for (var j = 0; j < message.metricAggregations.length; ++j) + object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; + } + if (message.orderBys && message.orderBys.length) { + object.orderBys = []; + for (var j = 0; j < message.orderBys.length; ++j) + object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + object.currencyCode = message.currencyCode; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) + object.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.toObject(message.cohortSpec, options); + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + object.keepEmptyRows = message.keepEmptyRows; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; + return object; + }; + + /** + * Converts this RunReportRequest to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.RunReportRequest * @instance + * @returns {Object.} JSON object */ - Row.prototype.dimensionValues = $util.emptyArray; + RunReportRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RunReportRequest; + })(); + + v1beta.RunReportResponse = (function() { /** - * Row metricValues. - * @member {Array.} metricValues - * @memberof google.analytics.data.v1beta.Row + * Properties of a RunReportResponse. + * @memberof google.analytics.data.v1beta + * @interface IRunReportResponse + * @property {Array.|null} [dimensionHeaders] RunReportResponse dimensionHeaders + * @property {Array.|null} [metricHeaders] RunReportResponse metricHeaders + * @property {Array.|null} [rows] RunReportResponse rows + * @property {Array.|null} [totals] RunReportResponse totals + * @property {Array.|null} [maximums] RunReportResponse maximums + * @property {Array.|null} [minimums] RunReportResponse minimums + * @property {number|null} [rowCount] RunReportResponse rowCount + * @property {google.analytics.data.v1beta.IResponseMetaData|null} [metadata] RunReportResponse metadata + * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunReportResponse propertyQuota + * @property {string|null} [kind] RunReportResponse kind + */ + + /** + * Constructs a new RunReportResponse. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a RunReportResponse. + * @implements IRunReportResponse + * @constructor + * @param {google.analytics.data.v1beta.IRunReportResponse=} [properties] Properties to set + */ + function RunReportResponse(properties) { + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; + this.totals = []; + this.maximums = []; + this.minimums = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RunReportResponse dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1beta.RunReportResponse * @instance */ - Row.prototype.metricValues = $util.emptyArray; + RunReportResponse.prototype.dimensionHeaders = $util.emptyArray; /** - * Creates a new Row instance using the specified properties. + * RunReportResponse metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.metricHeaders = $util.emptyArray; + + /** + * RunReportResponse rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.rows = $util.emptyArray; + + /** + * RunReportResponse totals. + * @member {Array.} totals + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.totals = $util.emptyArray; + + /** + * RunReportResponse maximums. + * @member {Array.} maximums + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.maximums = $util.emptyArray; + + /** + * RunReportResponse minimums. + * @member {Array.} minimums + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.minimums = $util.emptyArray; + + /** + * RunReportResponse rowCount. + * @member {number} rowCount + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.rowCount = 0; + + /** + * RunReportResponse metadata. + * @member {google.analytics.data.v1beta.IResponseMetaData|null|undefined} metadata + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.metadata = null; + + /** + * RunReportResponse propertyQuota. + * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.propertyQuota = null; + + /** + * RunReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1beta.RunReportResponse + * @instance + */ + RunReportResponse.prototype.kind = ""; + + /** + * Creates a new RunReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static - * @param {google.analytics.data.v1beta.IRow=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.Row} Row instance + * @param {google.analytics.data.v1beta.IRunReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse instance */ - Row.create = function create(properties) { - return new Row(properties); + RunReportResponse.create = function create(properties) { + return new RunReportResponse(properties); }; /** - * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * Encodes the specified RunReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static - * @param {google.analytics.data.v1beta.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1beta.IRunReportResponse} message RunReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + RunReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionValues != null && message.dimensionValues.length) - for (var i = 0; i < message.dimensionValues.length; ++i) - $root.google.analytics.data.v1beta.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metricValues != null && message.metricValues.length) - for (var i = 0; i < message.metricValues.length; ++i) - $root.google.analytics.data.v1beta.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.dimensionHeaders != null && message.dimensionHeaders.length) + for (var i = 0; i < message.dimensionHeaders.length; ++i) + $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricHeaders != null && message.metricHeaders.length) + for (var i = 0; i < message.metricHeaders.length; ++i) + $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.rows != null && message.rows.length) + for (var i = 0; i < message.rows.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.totals != null && message.totals.length) + for (var i = 0; i < message.totals.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.maximums != null && message.maximums.length) + for (var i = 0; i < message.maximums.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.minimums != null && message.minimums.length) + for (var i = 0; i < message.minimums.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.google.analytics.data.v1beta.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.kind); return writer; }; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static - * @param {google.analytics.data.v1beta.IRow} message Row message or plain object to encode + * @param {google.analytics.data.v1beta.IRunReportResponse} message RunReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encodeDelimited = function encodeDelimited(message, writer) { + RunReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a RunReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.Row} Row + * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decode = function decode(reader, length) { + RunReportResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Row(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.dimensionValues && message.dimensionValues.length)) - message.dimensionValues = []; - message.dimensionValues.push($root.google.analytics.data.v1beta.DimensionValue.decode(reader, reader.uint32())); + if (!(message.dimensionHeaders && message.dimensionHeaders.length)) + message.dimensionHeaders = []; + message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); break; case 2: - if (!(message.metricValues && message.metricValues.length)) - message.metricValues = []; - message.metricValues.push($root.google.analytics.data.v1beta.MetricValue.decode(reader, reader.uint32())); + if (!(message.metricHeaders && message.metricHeaders.length)) + message.metricHeaders = []; + message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.rows && message.rows.length)) + message.rows = []; + message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.totals && message.totals.length)) + message.totals = []; + message.totals.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.maximums && message.maximums.length)) + message.maximums = []; + message.maximums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.minimums && message.minimums.length)) + message.minimums = []; + message.minimums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 7: + message.rowCount = reader.int32(); + break; + case 8: + message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.decode(reader, reader.uint32()); + break; + case 9: + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); + break; + case 10: + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -27351,150 +26812,308 @@ }; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a RunReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.Row} Row + * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decodeDelimited = function decodeDelimited(reader) { + RunReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Row message. + * Verifies a RunReportResponse message. * @function verify - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Row.verify = function verify(message) { + RunReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { - if (!Array.isArray(message.dimensionValues)) - return "dimensionValues: array expected"; - for (var i = 0; i < message.dimensionValues.length; ++i) { - var error = $root.google.analytics.data.v1beta.DimensionValue.verify(message.dimensionValues[i]); + if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { + if (!Array.isArray(message.dimensionHeaders)) + return "dimensionHeaders: array expected"; + for (var i = 0; i < message.dimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); if (error) - return "dimensionValues." + error; + return "dimensionHeaders." + error; } } - if (message.metricValues != null && message.hasOwnProperty("metricValues")) { - if (!Array.isArray(message.metricValues)) - return "metricValues: array expected"; - for (var i = 0; i < message.metricValues.length; ++i) { - var error = $root.google.analytics.data.v1beta.MetricValue.verify(message.metricValues[i]); + if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { + if (!Array.isArray(message.metricHeaders)) + return "metricHeaders: array expected"; + for (var i = 0; i < message.metricHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); if (error) - return "metricValues." + error; + return "metricHeaders." + error; } } - return null; - }; - - /** - * Creates a Row message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.analytics.data.v1beta.Row - * @static - * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.Row} Row - */ - Row.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.Row) - return object; - var message = new $root.google.analytics.data.v1beta.Row(); - if (object.dimensionValues) { - if (!Array.isArray(object.dimensionValues)) - throw TypeError(".google.analytics.data.v1beta.Row.dimensionValues: array expected"); - message.dimensionValues = []; - for (var i = 0; i < object.dimensionValues.length; ++i) { - if (typeof object.dimensionValues[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.Row.dimensionValues: object expected"); - message.dimensionValues[i] = $root.google.analytics.data.v1beta.DimensionValue.fromObject(object.dimensionValues[i]); + if (message.rows != null && message.hasOwnProperty("rows")) { + if (!Array.isArray(message.rows)) + return "rows: array expected"; + for (var i = 0; i < message.rows.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); + if (error) + return "rows." + error; } } - if (object.metricValues) { - if (!Array.isArray(object.metricValues)) - throw TypeError(".google.analytics.data.v1beta.Row.metricValues: array expected"); - message.metricValues = []; - for (var i = 0; i < object.metricValues.length; ++i) { - if (typeof object.metricValues[i] !== "object") - throw TypeError(".google.analytics.data.v1beta.Row.metricValues: object expected"); - message.metricValues[i] = $root.google.analytics.data.v1beta.MetricValue.fromObject(object.metricValues[i]); + if (message.totals != null && message.hasOwnProperty("totals")) { + if (!Array.isArray(message.totals)) + return "totals: array expected"; + for (var i = 0; i < message.totals.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.totals[i]); + if (error) + return "totals." + error; } } + if (message.maximums != null && message.hasOwnProperty("maximums")) { + if (!Array.isArray(message.maximums)) + return "maximums: array expected"; + for (var i = 0; i < message.maximums.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.maximums[i]); + if (error) + return "maximums." + error; + } + } + if (message.minimums != null && message.hasOwnProperty("minimums")) { + if (!Array.isArray(message.minimums)) + return "minimums: array expected"; + for (var i = 0; i < message.minimums.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.minimums[i]); + if (error) + return "minimums." + error; + } + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + if (!$util.isInteger(message.rowCount)) + return "rowCount: integer expected"; + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.google.analytics.data.v1beta.ResponseMetaData.verify(message.metadata); + if (error) + return "metadata." + error; + } + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); + if (error) + return "propertyQuota." + error; + } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; + return null; + }; + + /** + * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.RunReportResponse + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.RunReportResponse} RunReportResponse + */ + RunReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunReportResponse) + return object; + var message = new $root.google.analytics.data.v1beta.RunReportResponse(); + if (object.dimensionHeaders) { + if (!Array.isArray(object.dimensionHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.dimensionHeaders: array expected"); + message.dimensionHeaders = []; + for (var i = 0; i < object.dimensionHeaders.length; ++i) { + if (typeof object.dimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); + } + } + if (object.metricHeaders) { + if (!Array.isArray(object.metricHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metricHeaders: array expected"); + message.metricHeaders = []; + for (var i = 0; i < object.metricHeaders.length; ++i) { + if (typeof object.metricHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); + } + } + if (object.rows) { + if (!Array.isArray(object.rows)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.rows: array expected"); + message.rows = []; + for (var i = 0; i < object.rows.length; ++i) { + if (typeof object.rows[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); + } + } + if (object.totals) { + if (!Array.isArray(object.totals)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.totals: array expected"); + message.totals = []; + for (var i = 0; i < object.totals.length; ++i) { + if (typeof object.totals[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.totals: object expected"); + message.totals[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.totals[i]); + } + } + if (object.maximums) { + if (!Array.isArray(object.maximums)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.maximums: array expected"); + message.maximums = []; + for (var i = 0; i < object.maximums.length; ++i) { + if (typeof object.maximums[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.maximums: object expected"); + message.maximums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.maximums[i]); + } + } + if (object.minimums) { + if (!Array.isArray(object.minimums)) + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.minimums: array expected"); + message.minimums = []; + for (var i = 0; i < object.minimums.length; ++i) { + if (typeof object.minimums[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.minimums: object expected"); + message.minimums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.minimums[i]); + } + } + if (object.rowCount != null) + message.rowCount = object.rowCount | 0; + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.metadata: object expected"); + message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.fromObject(object.metadata); + } + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1beta.RunReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); + } + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. + * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @static - * @param {google.analytics.data.v1beta.Row} message Row + * @param {google.analytics.data.v1beta.RunReportResponse} message RunReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + RunReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) { - object.dimensionValues = []; - object.metricValues = []; + object.dimensionHeaders = []; + object.metricHeaders = []; + object.rows = []; + object.totals = []; + object.maximums = []; + object.minimums = []; } - if (message.dimensionValues && message.dimensionValues.length) { - object.dimensionValues = []; - for (var j = 0; j < message.dimensionValues.length; ++j) - object.dimensionValues[j] = $root.google.analytics.data.v1beta.DimensionValue.toObject(message.dimensionValues[j], options); + if (options.defaults) { + object.rowCount = 0; + object.metadata = null; + object.propertyQuota = null; + object.kind = ""; } - if (message.metricValues && message.metricValues.length) { - object.metricValues = []; - for (var j = 0; j < message.metricValues.length; ++j) - object.metricValues[j] = $root.google.analytics.data.v1beta.MetricValue.toObject(message.metricValues[j], options); + if (message.dimensionHeaders && message.dimensionHeaders.length) { + object.dimensionHeaders = []; + for (var j = 0; j < message.dimensionHeaders.length; ++j) + object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); + } + if (message.metricHeaders && message.metricHeaders.length) { + object.metricHeaders = []; + for (var j = 0; j < message.metricHeaders.length; ++j) + object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); + } + if (message.rows && message.rows.length) { + object.rows = []; + for (var j = 0; j < message.rows.length; ++j) + object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); + } + if (message.totals && message.totals.length) { + object.totals = []; + for (var j = 0; j < message.totals.length; ++j) + object.totals[j] = $root.google.analytics.data.v1beta.Row.toObject(message.totals[j], options); + } + if (message.maximums && message.maximums.length) { + object.maximums = []; + for (var j = 0; j < message.maximums.length; ++j) + object.maximums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.maximums[j], options); } + if (message.minimums && message.minimums.length) { + object.minimums = []; + for (var j = 0; j < message.minimums.length; ++j) + object.minimums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.minimums[j], options); + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + object.rowCount = message.rowCount; + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.toObject(message.metadata, options); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this Row to JSON. + * Converts this RunReportResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.Row + * @memberof google.analytics.data.v1beta.RunReportResponse * @instance * @returns {Object.} JSON object */ - Row.prototype.toJSON = function toJSON() { + RunReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return Row; + return RunReportResponse; })(); - v1beta.DimensionValue = (function() { + v1beta.RunPivotReportRequest = (function() { /** - * Properties of a DimensionValue. + * Properties of a RunPivotReportRequest. * @memberof google.analytics.data.v1beta - * @interface IDimensionValue - * @property {string|null} [value] DimensionValue value + * @interface IRunPivotReportRequest + * @property {string|null} [property] RunPivotReportRequest property + * @property {Array.|null} [dimensions] RunPivotReportRequest dimensions + * @property {Array.|null} [metrics] RunPivotReportRequest metrics + * @property {Array.|null} [dateRanges] RunPivotReportRequest dateRanges + * @property {Array.|null} [pivots] RunPivotReportRequest pivots + * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunPivotReportRequest dimensionFilter + * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunPivotReportRequest metricFilter + * @property {string|null} [currencyCode] RunPivotReportRequest currencyCode + * @property {google.analytics.data.v1beta.ICohortSpec|null} [cohortSpec] RunPivotReportRequest cohortSpec + * @property {boolean|null} [keepEmptyRows] RunPivotReportRequest keepEmptyRows + * @property {boolean|null} [returnPropertyQuota] RunPivotReportRequest returnPropertyQuota */ /** - * Constructs a new DimensionValue. + * Constructs a new RunPivotReportRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a DimensionValue. - * @implements IDimensionValue + * @classdesc Represents a RunPivotReportRequest. + * @implements IRunPivotReportRequest * @constructor - * @param {google.analytics.data.v1beta.IDimensionValue=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IRunPivotReportRequest=} [properties] Properties to set */ - function DimensionValue(properties) { + function RunPivotReportRequest(properties) { + this.dimensions = []; + this.metrics = []; + this.dateRanges = []; + this.pivots = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27502,89 +27121,217 @@ } /** - * DimensionValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1beta.DimensionValue + * RunPivotReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @instance */ - DimensionValue.prototype.value = null; + RunPivotReportRequest.prototype.property = ""; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * RunPivotReportRequest dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.dimensions = $util.emptyArray; /** - * DimensionValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1beta.DimensionValue + * RunPivotReportRequest metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @instance */ - Object.defineProperty(DimensionValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunPivotReportRequest.prototype.metrics = $util.emptyArray; /** - * Creates a new DimensionValue instance using the specified properties. + * RunPivotReportRequest dateRanges. + * @member {Array.} dateRanges + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.dateRanges = $util.emptyArray; + + /** + * RunPivotReportRequest pivots. + * @member {Array.} pivots + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.pivots = $util.emptyArray; + + /** + * RunPivotReportRequest dimensionFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.dimensionFilter = null; + + /** + * RunPivotReportRequest metricFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.metricFilter = null; + + /** + * RunPivotReportRequest currencyCode. + * @member {string} currencyCode + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.currencyCode = ""; + + /** + * RunPivotReportRequest cohortSpec. + * @member {google.analytics.data.v1beta.ICohortSpec|null|undefined} cohortSpec + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.cohortSpec = null; + + /** + * RunPivotReportRequest keepEmptyRows. + * @member {boolean} keepEmptyRows + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.keepEmptyRows = false; + + /** + * RunPivotReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1beta.RunPivotReportRequest + * @instance + */ + RunPivotReportRequest.prototype.returnPropertyQuota = false; + + /** + * Creates a new RunPivotReportRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionValue=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue instance + * @param {google.analytics.data.v1beta.IRunPivotReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest instance */ - DimensionValue.create = function create(properties) { - return new DimensionValue(properties); + RunPivotReportRequest.create = function create(properties) { + return new RunPivotReportRequest(properties); }; /** - * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * Encodes the specified RunPivotReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1beta.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encode = function encode(message, writer) { + RunPivotReportRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.dateRanges != null && message.dateRanges.length) + for (var i = 0; i < message.dateRanges.length; ++i) + $root.google.analytics.data.v1beta.DateRange.encode(message.dateRanges[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.pivots != null && message.pivots.length) + for (var i = 0; i < message.pivots.length; ++i) + $root.google.analytics.data.v1beta.Pivot.encode(message.pivots[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.currencyCode); + if (message.cohortSpec != null && Object.hasOwnProperty.call(message, "cohortSpec")) + $root.google.analytics.data.v1beta.CohortSpec.encode(message.cohortSpec, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.keepEmptyRows != null && Object.hasOwnProperty.call(message, "keepEmptyRows")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.keepEmptyRows); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 11, wireType 0 =*/88).bool(message.returnPropertyQuota); return writer; }; /** - * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * Encodes the specified RunPivotReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionValue} message DimensionValue message or plain object to encode + * @param {google.analytics.data.v1beta.IRunPivotReportRequest} message RunPivotReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { + RunPivotReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionValue message from the specified reader or buffer. + * Decodes a RunPivotReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decode = function decode(reader, length) { + RunPivotReportRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunPivotReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.value = reader.string(); + message.property = reader.string(); + break; + case 2: + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.dateRanges && message.dateRanges.length)) + message.dateRanges = []; + message.dateRanges.push($root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.pivots && message.pivots.length)) + message.pivots = []; + message.pivots.push($root.google.analytics.data.v1beta.Pivot.decode(reader, reader.uint32())); + break; + case 6: + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 7: + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 8: + message.currencyCode = reader.string(); + break; + case 9: + message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.decode(reader, reader.uint32()); + break; + case 10: + message.keepEmptyRows = reader.bool(); + break; + case 11: + message.returnPropertyQuota = reader.bool(); break; default: reader.skipType(tag & 7); @@ -27595,111 +27342,285 @@ }; /** - * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * Decodes a RunPivotReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionValue.decodeDelimited = function decodeDelimited(reader) { + RunPivotReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionValue message. + * Verifies a RunPivotReportRequest message. * @function verify - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionValue.verify = function verify(message) { + RunPivotReportRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); + if (error) + return "dimensions." + error; + } + } + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } + } + if (message.dateRanges != null && message.hasOwnProperty("dateRanges")) { + if (!Array.isArray(message.dateRanges)) + return "dateRanges: array expected"; + for (var i = 0; i < message.dateRanges.length; ++i) { + var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRanges[i]); + if (error) + return "dateRanges." + error; + } + } + if (message.pivots != null && message.hasOwnProperty("pivots")) { + if (!Array.isArray(message.pivots)) + return "pivots: array expected"; + for (var i = 0; i < message.pivots.length; ++i) { + var error = $root.google.analytics.data.v1beta.Pivot.verify(message.pivots[i]); + if (error) + return "pivots." + error; + } + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; + } + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (error) + return "metricFilter." + error; + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) { + var error = $root.google.analytics.data.v1beta.CohortSpec.verify(message.cohortSpec); + if (error) + return "cohortSpec." + error; } + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + if (typeof message.keepEmptyRows !== "boolean") + return "keepEmptyRows: boolean expected"; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; return null; }; /** - * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * Creates a RunPivotReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + * @returns {google.analytics.data.v1beta.RunPivotReportRequest} RunPivotReportRequest */ - DimensionValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionValue) + RunPivotReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunPivotReportRequest) return object; - var message = new $root.google.analytics.data.v1beta.DimensionValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1beta.RunPivotReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); + } + } + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); + } + } + if (object.dateRanges) { + if (!Array.isArray(object.dateRanges)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dateRanges: array expected"); + message.dateRanges = []; + for (var i = 0; i < object.dateRanges.length; ++i) { + if (typeof object.dateRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dateRanges: object expected"); + message.dateRanges[i] = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRanges[i]); + } + } + if (object.pivots) { + if (!Array.isArray(object.pivots)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.pivots: array expected"); + message.pivots = []; + for (var i = 0; i < object.pivots.length; ++i) { + if (typeof object.pivots[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.pivots: object expected"); + message.pivots[i] = $root.google.analytics.data.v1beta.Pivot.fromObject(object.pivots[i]); + } + } + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.metricFilter != null) { + if (typeof object.metricFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.metricFilter: object expected"); + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); + } + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.cohortSpec != null) { + if (typeof object.cohortSpec !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportRequest.cohortSpec: object expected"); + message.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.fromObject(object.cohortSpec); + } + if (object.keepEmptyRows != null) + message.keepEmptyRows = Boolean(object.keepEmptyRows); + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); return message; }; /** - * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * Creates a plain object from a RunPivotReportRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @static - * @param {google.analytics.data.v1beta.DimensionValue} message DimensionValue + * @param {google.analytics.data.v1beta.RunPivotReportRequest} message RunPivotReportRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionValue.toObject = function toObject(message, options) { + RunPivotReportRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + object.dateRanges = []; + object.pivots = []; + } + if (options.defaults) { + object.property = ""; + object.dimensionFilter = null; + object.metricFilter = null; + object.currencyCode = ""; + object.cohortSpec = null; + object.keepEmptyRows = false; + object.returnPropertyQuota = false; + } + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); + } + if (message.dateRanges && message.dateRanges.length) { + object.dateRanges = []; + for (var j = 0; j < message.dateRanges.length; ++j) + object.dateRanges[j] = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRanges[j], options); + } + if (message.pivots && message.pivots.length) { + object.pivots = []; + for (var j = 0; j < message.pivots.length; ++j) + object.pivots[j] = $root.google.analytics.data.v1beta.Pivot.toObject(message.pivots[j], options); } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) + object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) + object.currencyCode = message.currencyCode; + if (message.cohortSpec != null && message.hasOwnProperty("cohortSpec")) + object.cohortSpec = $root.google.analytics.data.v1beta.CohortSpec.toObject(message.cohortSpec, options); + if (message.keepEmptyRows != null && message.hasOwnProperty("keepEmptyRows")) + object.keepEmptyRows = message.keepEmptyRows; + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; return object; }; /** - * Converts this DimensionValue to JSON. + * Converts this RunPivotReportRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionValue + * @memberof google.analytics.data.v1beta.RunPivotReportRequest * @instance * @returns {Object.} JSON object */ - DimensionValue.prototype.toJSON = function toJSON() { + RunPivotReportRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionValue; + return RunPivotReportRequest; })(); - v1beta.MetricValue = (function() { + v1beta.RunPivotReportResponse = (function() { /** - * Properties of a MetricValue. + * Properties of a RunPivotReportResponse. * @memberof google.analytics.data.v1beta - * @interface IMetricValue - * @property {string|null} [value] MetricValue value + * @interface IRunPivotReportResponse + * @property {Array.|null} [pivotHeaders] RunPivotReportResponse pivotHeaders + * @property {Array.|null} [dimensionHeaders] RunPivotReportResponse dimensionHeaders + * @property {Array.|null} [metricHeaders] RunPivotReportResponse metricHeaders + * @property {Array.|null} [rows] RunPivotReportResponse rows + * @property {Array.|null} [aggregates] RunPivotReportResponse aggregates + * @property {google.analytics.data.v1beta.IResponseMetaData|null} [metadata] RunPivotReportResponse metadata + * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunPivotReportResponse propertyQuota + * @property {string|null} [kind] RunPivotReportResponse kind */ /** - * Constructs a new MetricValue. + * Constructs a new RunPivotReportResponse. * @memberof google.analytics.data.v1beta - * @classdesc Represents a MetricValue. - * @implements IMetricValue + * @classdesc Represents a RunPivotReportResponse. + * @implements IRunPivotReportResponse * @constructor - * @param {google.analytics.data.v1beta.IMetricValue=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IRunPivotReportResponse=} [properties] Properties to set */ - function MetricValue(properties) { + function RunPivotReportResponse(properties) { + this.pivotHeaders = []; + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; + this.aggregates = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27707,89 +27628,181 @@ } /** - * MetricValue value. - * @member {string|null|undefined} value - * @memberof google.analytics.data.v1beta.MetricValue + * RunPivotReportResponse pivotHeaders. + * @member {Array.} pivotHeaders + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @instance */ - MetricValue.prototype.value = null; + RunPivotReportResponse.prototype.pivotHeaders = $util.emptyArray; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * RunPivotReportResponse dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.dimensionHeaders = $util.emptyArray; /** - * MetricValue oneValue. - * @member {"value"|undefined} oneValue - * @memberof google.analytics.data.v1beta.MetricValue + * RunPivotReportResponse metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @instance */ - Object.defineProperty(MetricValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["value"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunPivotReportResponse.prototype.metricHeaders = $util.emptyArray; /** - * Creates a new MetricValue instance using the specified properties. + * RunPivotReportResponse rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.rows = $util.emptyArray; + + /** + * RunPivotReportResponse aggregates. + * @member {Array.} aggregates + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.aggregates = $util.emptyArray; + + /** + * RunPivotReportResponse metadata. + * @member {google.analytics.data.v1beta.IResponseMetaData|null|undefined} metadata + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.metadata = null; + + /** + * RunPivotReportResponse propertyQuota. + * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.propertyQuota = null; + + /** + * RunPivotReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + */ + RunPivotReportResponse.prototype.kind = ""; + + /** + * Creates a new RunPivotReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricValue=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.MetricValue} MetricValue instance + * @param {google.analytics.data.v1beta.IRunPivotReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse instance */ - MetricValue.create = function create(properties) { - return new MetricValue(properties); + RunPivotReportResponse.create = function create(properties) { + return new RunPivotReportResponse(properties); }; /** - * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * Encodes the specified RunPivotReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricValue} message MetricValue message or plain object to encode + * @param {google.analytics.data.v1beta.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricValue.encode = function encode(message, writer) { + RunPivotReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); + if (message.pivotHeaders != null && message.pivotHeaders.length) + for (var i = 0; i < message.pivotHeaders.length; ++i) + $root.google.analytics.data.v1beta.PivotHeader.encode(message.pivotHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.dimensionHeaders != null && message.dimensionHeaders.length) + for (var i = 0; i < message.dimensionHeaders.length; ++i) + $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metricHeaders != null && message.metricHeaders.length) + for (var i = 0; i < message.metricHeaders.length; ++i) + $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.rows != null && message.rows.length) + for (var i = 0; i < message.rows.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.aggregates != null && message.aggregates.length) + for (var i = 0; i < message.aggregates.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.aggregates[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.google.analytics.data.v1beta.ResponseMetaData.encode(message.metadata, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.kind); return writer; }; /** - * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * Encodes the specified RunPivotReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunPivotReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricValue} message MetricValue message or plain object to encode + * @param {google.analytics.data.v1beta.IRunPivotReportResponse} message RunPivotReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricValue.encodeDelimited = function encodeDelimited(message, writer) { + RunPivotReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricValue message from the specified reader or buffer. + * Decodes a RunPivotReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricValue.decode = function decode(reader, length) { + RunPivotReportResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunPivotReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + if (!(message.pivotHeaders && message.pivotHeaders.length)) + message.pivotHeaders = []; + message.pivotHeaders.push($root.google.analytics.data.v1beta.PivotHeader.decode(reader, reader.uint32())); + break; + case 2: + if (!(message.dimensionHeaders && message.dimensionHeaders.length)) + message.dimensionHeaders = []; + message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.metricHeaders && message.metricHeaders.length)) + message.metricHeaders = []; + message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); + break; case 4: - message.value = reader.string(); + if (!(message.rows && message.rows.length)) + message.rows = []; + message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.aggregates && message.aggregates.length)) + message.aggregates = []; + message.aggregates.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 6: + message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.decode(reader, reader.uint32()); + break; + case 7: + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); + break; + case 8: + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -27800,112 +27813,263 @@ }; /** - * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * Decodes a RunPivotReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricValue.decodeDelimited = function decodeDelimited(reader) { + RunPivotReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricValue message. + * Verifies a RunPivotReportResponse message. * @function verify - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricValue.verify = function verify(message) { + RunPivotReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.value != null && message.hasOwnProperty("value")) { - properties.oneValue = 1; - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.pivotHeaders != null && message.hasOwnProperty("pivotHeaders")) { + if (!Array.isArray(message.pivotHeaders)) + return "pivotHeaders: array expected"; + for (var i = 0; i < message.pivotHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.PivotHeader.verify(message.pivotHeaders[i]); + if (error) + return "pivotHeaders." + error; + } + } + if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { + if (!Array.isArray(message.dimensionHeaders)) + return "dimensionHeaders: array expected"; + for (var i = 0; i < message.dimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); + if (error) + return "dimensionHeaders." + error; + } + } + if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { + if (!Array.isArray(message.metricHeaders)) + return "metricHeaders: array expected"; + for (var i = 0; i < message.metricHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); + if (error) + return "metricHeaders." + error; + } + } + if (message.rows != null && message.hasOwnProperty("rows")) { + if (!Array.isArray(message.rows)) + return "rows: array expected"; + for (var i = 0; i < message.rows.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); + if (error) + return "rows." + error; + } + } + if (message.aggregates != null && message.hasOwnProperty("aggregates")) { + if (!Array.isArray(message.aggregates)) + return "aggregates: array expected"; + for (var i = 0; i < message.aggregates.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.aggregates[i]); + if (error) + return "aggregates." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.google.analytics.data.v1beta.ResponseMetaData.verify(message.metadata); + if (error) + return "metadata." + error; + } + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); + if (error) + return "propertyQuota." + error; } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * Creates a RunPivotReportResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + * @returns {google.analytics.data.v1beta.RunPivotReportResponse} RunPivotReportResponse */ - MetricValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.MetricValue) + RunPivotReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunPivotReportResponse) return object; - var message = new $root.google.analytics.data.v1beta.MetricValue(); - if (object.value != null) - message.value = String(object.value); + var message = new $root.google.analytics.data.v1beta.RunPivotReportResponse(); + if (object.pivotHeaders) { + if (!Array.isArray(object.pivotHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.pivotHeaders: array expected"); + message.pivotHeaders = []; + for (var i = 0; i < object.pivotHeaders.length; ++i) { + if (typeof object.pivotHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.pivotHeaders: object expected"); + message.pivotHeaders[i] = $root.google.analytics.data.v1beta.PivotHeader.fromObject(object.pivotHeaders[i]); + } + } + if (object.dimensionHeaders) { + if (!Array.isArray(object.dimensionHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.dimensionHeaders: array expected"); + message.dimensionHeaders = []; + for (var i = 0; i < object.dimensionHeaders.length; ++i) { + if (typeof object.dimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); + } + } + if (object.metricHeaders) { + if (!Array.isArray(object.metricHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metricHeaders: array expected"); + message.metricHeaders = []; + for (var i = 0; i < object.metricHeaders.length; ++i) { + if (typeof object.metricHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); + } + } + if (object.rows) { + if (!Array.isArray(object.rows)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.rows: array expected"); + message.rows = []; + for (var i = 0; i < object.rows.length; ++i) { + if (typeof object.rows[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); + } + } + if (object.aggregates) { + if (!Array.isArray(object.aggregates)) + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.aggregates: array expected"); + message.aggregates = []; + for (var i = 0; i < object.aggregates.length; ++i) { + if (typeof object.aggregates[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.aggregates: object expected"); + message.aggregates[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.aggregates[i]); + } + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.metadata: object expected"); + message.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.fromObject(object.metadata); + } + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1beta.RunPivotReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); + } + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * Creates a plain object from a RunPivotReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.MetricValue + * @memberof google.analytics.data.v1beta.RunPivotReportResponse * @static - * @param {google.analytics.data.v1beta.MetricValue} message MetricValue + * @param {google.analytics.data.v1beta.RunPivotReportResponse} message RunPivotReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricValue.toObject = function toObject(message, options) { + RunPivotReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.value != null && message.hasOwnProperty("value")) { - object.value = message.value; - if (options.oneofs) - object.oneValue = "value"; + if (options.arrays || options.defaults) { + object.pivotHeaders = []; + object.dimensionHeaders = []; + object.metricHeaders = []; + object.rows = []; + object.aggregates = []; } - return object; - }; - - /** - * Converts this MetricValue to JSON. - * @function toJSON - * @memberof google.analytics.data.v1beta.MetricValue - * @instance - * @returns {Object.} JSON object + if (options.defaults) { + object.metadata = null; + object.propertyQuota = null; + object.kind = ""; + } + if (message.pivotHeaders && message.pivotHeaders.length) { + object.pivotHeaders = []; + for (var j = 0; j < message.pivotHeaders.length; ++j) + object.pivotHeaders[j] = $root.google.analytics.data.v1beta.PivotHeader.toObject(message.pivotHeaders[j], options); + } + if (message.dimensionHeaders && message.dimensionHeaders.length) { + object.dimensionHeaders = []; + for (var j = 0; j < message.dimensionHeaders.length; ++j) + object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); + } + if (message.metricHeaders && message.metricHeaders.length) { + object.metricHeaders = []; + for (var j = 0; j < message.metricHeaders.length; ++j) + object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); + } + if (message.rows && message.rows.length) { + object.rows = []; + for (var j = 0; j < message.rows.length; ++j) + object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); + } + if (message.aggregates && message.aggregates.length) { + object.aggregates = []; + for (var j = 0; j < message.aggregates.length; ++j) + object.aggregates[j] = $root.google.analytics.data.v1beta.Row.toObject(message.aggregates[j], options); + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.google.analytics.data.v1beta.ResponseMetaData.toObject(message.metadata, options); + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; + return object; + }; + + /** + * Converts this RunPivotReportResponse to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.RunPivotReportResponse + * @instance + * @returns {Object.} JSON object */ - MetricValue.prototype.toJSON = function toJSON() { + RunPivotReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MetricValue; + return RunPivotReportResponse; })(); - v1beta.NumericValue = (function() { + v1beta.BatchRunReportsRequest = (function() { /** - * Properties of a NumericValue. + * Properties of a BatchRunReportsRequest. * @memberof google.analytics.data.v1beta - * @interface INumericValue - * @property {number|Long|null} [int64Value] NumericValue int64Value - * @property {number|null} [doubleValue] NumericValue doubleValue + * @interface IBatchRunReportsRequest + * @property {string|null} [property] BatchRunReportsRequest property + * @property {Array.|null} [requests] BatchRunReportsRequest requests */ /** - * Constructs a new NumericValue. + * Constructs a new BatchRunReportsRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a NumericValue. - * @implements INumericValue + * @classdesc Represents a BatchRunReportsRequest. + * @implements IBatchRunReportsRequest * @constructor - * @param {google.analytics.data.v1beta.INumericValue=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest=} [properties] Properties to set */ - function NumericValue(properties) { + function BatchRunReportsRequest(properties) { + this.requests = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27913,102 +28077,91 @@ } /** - * NumericValue int64Value. - * @member {number|Long|null|undefined} int64Value - * @memberof google.analytics.data.v1beta.NumericValue - * @instance - */ - NumericValue.prototype.int64Value = null; - - /** - * NumericValue doubleValue. - * @member {number|null|undefined} doubleValue - * @memberof google.analytics.data.v1beta.NumericValue + * BatchRunReportsRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @instance */ - NumericValue.prototype.doubleValue = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + BatchRunReportsRequest.prototype.property = ""; /** - * NumericValue oneValue. - * @member {"int64Value"|"doubleValue"|undefined} oneValue - * @memberof google.analytics.data.v1beta.NumericValue + * BatchRunReportsRequest requests. + * @member {Array.} requests + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @instance */ - Object.defineProperty(NumericValue.prototype, "oneValue", { - get: $util.oneOfGetter($oneOfFields = ["int64Value", "doubleValue"]), - set: $util.oneOfSetter($oneOfFields) - }); + BatchRunReportsRequest.prototype.requests = $util.emptyArray; /** - * Creates a new NumericValue instance using the specified properties. + * Creates a new BatchRunReportsRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static - * @param {google.analytics.data.v1beta.INumericValue=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.NumericValue} NumericValue instance + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest instance */ - NumericValue.create = function create(properties) { - return new NumericValue(properties); + BatchRunReportsRequest.create = function create(properties) { + return new BatchRunReportsRequest(properties); }; /** - * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * Encodes the specified BatchRunReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static - * @param {google.analytics.data.v1beta.INumericValue} message NumericValue message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericValue.encode = function encode(message, writer) { + BatchRunReportsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.int64Value != null && Object.hasOwnProperty.call(message, "int64Value")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.int64Value); - if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) - writer.uint32(/* id 2, wireType 1 =*/17).double(message.doubleValue); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.requests != null && message.requests.length) + for (var i = 0; i < message.requests.length; ++i) + $root.google.analytics.data.v1beta.RunReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * Encodes the specified BatchRunReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static - * @param {google.analytics.data.v1beta.INumericValue} message NumericValue message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunReportsRequest} message BatchRunReportsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - NumericValue.encodeDelimited = function encodeDelimited(message, writer) { + BatchRunReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a NumericValue message from the specified reader or buffer. + * Decodes a BatchRunReportsRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericValue.decode = function decode(reader, length) { + BatchRunReportsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.NumericValue(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunReportsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.int64Value = reader.int64(); + message.property = reader.string(); break; case 2: - message.doubleValue = reader.double(); + if (!(message.requests && message.requests.length)) + message.requests = []; + message.requests.push($root.google.analytics.data.v1beta.RunReportRequest.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -28019,139 +28172,135 @@ }; /** - * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * Decodes a BatchRunReportsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NumericValue.decodeDelimited = function decodeDelimited(reader) { + BatchRunReportsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a NumericValue message. + * Verifies a BatchRunReportsRequest message. * @function verify - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NumericValue.verify = function verify(message) { + BatchRunReportsRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.int64Value != null && message.hasOwnProperty("int64Value")) { - properties.oneValue = 1; - if (!$util.isInteger(message.int64Value) && !(message.int64Value && $util.isInteger(message.int64Value.low) && $util.isInteger(message.int64Value.high))) - return "int64Value: integer|Long expected"; - } - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { - if (properties.oneValue === 1) - return "oneValue: multiple values"; - properties.oneValue = 1; - if (typeof message.doubleValue !== "number") - return "doubleValue: number expected"; + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.requests != null && message.hasOwnProperty("requests")) { + if (!Array.isArray(message.requests)) + return "requests: array expected"; + for (var i = 0; i < message.requests.length; ++i) { + var error = $root.google.analytics.data.v1beta.RunReportRequest.verify(message.requests[i]); + if (error) + return "requests." + error; + } } return null; }; /** - * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunReportsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + * @returns {google.analytics.data.v1beta.BatchRunReportsRequest} BatchRunReportsRequest */ - NumericValue.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.NumericValue) + BatchRunReportsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.BatchRunReportsRequest) return object; - var message = new $root.google.analytics.data.v1beta.NumericValue(); - if (object.int64Value != null) - if ($util.Long) - (message.int64Value = $util.Long.fromValue(object.int64Value)).unsigned = false; - else if (typeof object.int64Value === "string") - message.int64Value = parseInt(object.int64Value, 10); - else if (typeof object.int64Value === "number") - message.int64Value = object.int64Value; - else if (typeof object.int64Value === "object") - message.int64Value = new $util.LongBits(object.int64Value.low >>> 0, object.int64Value.high >>> 0).toNumber(); - if (object.doubleValue != null) - message.doubleValue = Number(object.doubleValue); + var message = new $root.google.analytics.data.v1beta.BatchRunReportsRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.requests) { + if (!Array.isArray(object.requests)) + throw TypeError(".google.analytics.data.v1beta.BatchRunReportsRequest.requests: array expected"); + message.requests = []; + for (var i = 0; i < object.requests.length; ++i) { + if (typeof object.requests[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.BatchRunReportsRequest.requests: object expected"); + message.requests[i] = $root.google.analytics.data.v1beta.RunReportRequest.fromObject(object.requests[i]); + } + } return message; }; /** - * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * Creates a plain object from a BatchRunReportsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @static - * @param {google.analytics.data.v1beta.NumericValue} message NumericValue + * @param {google.analytics.data.v1beta.BatchRunReportsRequest} message BatchRunReportsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - NumericValue.toObject = function toObject(message, options) { + BatchRunReportsRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.int64Value != null && message.hasOwnProperty("int64Value")) { - if (typeof message.int64Value === "number") - object.int64Value = options.longs === String ? String(message.int64Value) : message.int64Value; - else - object.int64Value = options.longs === String ? $util.Long.prototype.toString.call(message.int64Value) : options.longs === Number ? new $util.LongBits(message.int64Value.low >>> 0, message.int64Value.high >>> 0).toNumber() : message.int64Value; - if (options.oneofs) - object.oneValue = "int64Value"; - } - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { - object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; - if (options.oneofs) - object.oneValue = "doubleValue"; + if (options.arrays || options.defaults) + object.requests = []; + if (options.defaults) + object.property = ""; + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.requests && message.requests.length) { + object.requests = []; + for (var j = 0; j < message.requests.length; ++j) + object.requests[j] = $root.google.analytics.data.v1beta.RunReportRequest.toObject(message.requests[j], options); } return object; }; /** - * Converts this NumericValue to JSON. + * Converts this BatchRunReportsRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.NumericValue + * @memberof google.analytics.data.v1beta.BatchRunReportsRequest * @instance * @returns {Object.} JSON object */ - NumericValue.prototype.toJSON = function toJSON() { + BatchRunReportsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return NumericValue; + return BatchRunReportsRequest; })(); - v1beta.PropertyQuota = (function() { + v1beta.BatchRunReportsResponse = (function() { /** - * Properties of a PropertyQuota. + * Properties of a BatchRunReportsResponse. * @memberof google.analytics.data.v1beta - * @interface IPropertyQuota - * @property {google.analytics.data.v1beta.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay - * @property {google.analytics.data.v1beta.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour - * @property {google.analytics.data.v1beta.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests - * @property {google.analytics.data.v1beta.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour - * @property {google.analytics.data.v1beta.IQuotaStatus|null} [potentiallyThresholdedRequestsPerHour] PropertyQuota potentiallyThresholdedRequestsPerHour + * @interface IBatchRunReportsResponse + * @property {Array.|null} [reports] BatchRunReportsResponse reports + * @property {string|null} [kind] BatchRunReportsResponse kind */ /** - * Constructs a new PropertyQuota. + * Constructs a new BatchRunReportsResponse. * @memberof google.analytics.data.v1beta - * @classdesc Represents a PropertyQuota. - * @implements IPropertyQuota + * @classdesc Represents a BatchRunReportsResponse. + * @implements IBatchRunReportsResponse * @constructor - * @param {google.analytics.data.v1beta.IPropertyQuota=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IBatchRunReportsResponse=} [properties] Properties to set */ - function PropertyQuota(properties) { + function BatchRunReportsResponse(properties) { + this.reports = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28159,127 +28308,91 @@ } /** - * PropertyQuota tokensPerDay. - * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} tokensPerDay - * @memberof google.analytics.data.v1beta.PropertyQuota - * @instance - */ - PropertyQuota.prototype.tokensPerDay = null; - - /** - * PropertyQuota tokensPerHour. - * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} tokensPerHour - * @memberof google.analytics.data.v1beta.PropertyQuota - * @instance - */ - PropertyQuota.prototype.tokensPerHour = null; - - /** - * PropertyQuota concurrentRequests. - * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} concurrentRequests - * @memberof google.analytics.data.v1beta.PropertyQuota - * @instance - */ - PropertyQuota.prototype.concurrentRequests = null; - - /** - * PropertyQuota serverErrorsPerProjectPerHour. - * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour - * @memberof google.analytics.data.v1beta.PropertyQuota + * BatchRunReportsResponse reports. + * @member {Array.} reports + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @instance */ - PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; + BatchRunReportsResponse.prototype.reports = $util.emptyArray; /** - * PropertyQuota potentiallyThresholdedRequestsPerHour. - * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} potentiallyThresholdedRequestsPerHour - * @memberof google.analytics.data.v1beta.PropertyQuota + * BatchRunReportsResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @instance */ - PropertyQuota.prototype.potentiallyThresholdedRequestsPerHour = null; + BatchRunReportsResponse.prototype.kind = ""; /** - * Creates a new PropertyQuota instance using the specified properties. + * Creates a new BatchRunReportsResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static - * @param {google.analytics.data.v1beta.IPropertyQuota=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota instance + * @param {google.analytics.data.v1beta.IBatchRunReportsResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse instance */ - PropertyQuota.create = function create(properties) { - return new PropertyQuota(properties); + BatchRunReportsResponse.create = function create(properties) { + return new BatchRunReportsResponse(properties); }; /** - * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * Encodes the specified BatchRunReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static - * @param {google.analytics.data.v1beta.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encode = function encode(message, writer) { + BatchRunReportsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) - $root.google.analytics.data.v1beta.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) - $root.google.analytics.data.v1beta.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) - $root.google.analytics.data.v1beta.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) - $root.google.analytics.data.v1beta.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.potentiallyThresholdedRequestsPerHour != null && Object.hasOwnProperty.call(message, "potentiallyThresholdedRequestsPerHour")) - $root.google.analytics.data.v1beta.QuotaStatus.encode(message.potentiallyThresholdedRequestsPerHour, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.reports != null && message.reports.length) + for (var i = 0; i < message.reports.length; ++i) + $root.google.analytics.data.v1beta.RunReportResponse.encode(message.reports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.kind); return writer; }; /** - * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * Encodes the specified BatchRunReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunReportsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static - * @param {google.analytics.data.v1beta.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunReportsResponse} message BatchRunReportsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { + BatchRunReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a PropertyQuota message from the specified reader or buffer. + * Decodes a BatchRunReportsResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decode = function decode(reader, length) { + BatchRunReportsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PropertyQuota(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunReportsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + if (!(message.reports && message.reports.length)) + message.reports = []; + message.reports.push($root.google.analytics.data.v1beta.RunReportResponse.decode(reader, reader.uint32())); break; case 2: - message.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); - break; - case 3: - message.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); - break; - case 4: - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); - break; - case 5: - message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -28290,166 +28403,135 @@ }; /** - * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * Decodes a BatchRunReportsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PropertyQuota.decodeDelimited = function decodeDelimited(reader) { + BatchRunReportsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a PropertyQuota message. + * Verifies a BatchRunReportsResponse message. * @function verify - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PropertyQuota.verify = function verify(message) { + BatchRunReportsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { - var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.tokensPerDay); - if (error) - return "tokensPerDay." + error; - } - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { - var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.tokensPerHour); - if (error) - return "tokensPerHour." + error; - } - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { - var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.concurrentRequests); - if (error) - return "concurrentRequests." + error; - } - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { - var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); - if (error) - return "serverErrorsPerProjectPerHour." + error; - } - if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) { - var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.potentiallyThresholdedRequestsPerHour); - if (error) - return "potentiallyThresholdedRequestsPerHour." + error; + if (message.reports != null && message.hasOwnProperty("reports")) { + if (!Array.isArray(message.reports)) + return "reports: array expected"; + for (var i = 0; i < message.reports.length; ++i) { + var error = $root.google.analytics.data.v1beta.RunReportResponse.verify(message.reports[i]); + if (error) + return "reports." + error; + } } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunReportsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + * @returns {google.analytics.data.v1beta.BatchRunReportsResponse} BatchRunReportsResponse */ - PropertyQuota.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.PropertyQuota) + BatchRunReportsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.BatchRunReportsResponse) return object; - var message = new $root.google.analytics.data.v1beta.PropertyQuota(); - if (object.tokensPerDay != null) { - if (typeof object.tokensPerDay !== "object") - throw TypeError(".google.analytics.data.v1beta.PropertyQuota.tokensPerDay: object expected"); - message.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.tokensPerDay); - } - if (object.tokensPerHour != null) { - if (typeof object.tokensPerHour !== "object") - throw TypeError(".google.analytics.data.v1beta.PropertyQuota.tokensPerHour: object expected"); - message.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.tokensPerHour); - } - if (object.concurrentRequests != null) { - if (typeof object.concurrentRequests !== "object") - throw TypeError(".google.analytics.data.v1beta.PropertyQuota.concurrentRequests: object expected"); - message.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.concurrentRequests); - } - if (object.serverErrorsPerProjectPerHour != null) { - if (typeof object.serverErrorsPerProjectPerHour !== "object") - throw TypeError(".google.analytics.data.v1beta.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); - message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); - } - if (object.potentiallyThresholdedRequestsPerHour != null) { - if (typeof object.potentiallyThresholdedRequestsPerHour !== "object") - throw TypeError(".google.analytics.data.v1beta.PropertyQuota.potentiallyThresholdedRequestsPerHour: object expected"); - message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.potentiallyThresholdedRequestsPerHour); + var message = new $root.google.analytics.data.v1beta.BatchRunReportsResponse(); + if (object.reports) { + if (!Array.isArray(object.reports)) + throw TypeError(".google.analytics.data.v1beta.BatchRunReportsResponse.reports: array expected"); + message.reports = []; + for (var i = 0; i < object.reports.length; ++i) { + if (typeof object.reports[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.BatchRunReportsResponse.reports: object expected"); + message.reports[i] = $root.google.analytics.data.v1beta.RunReportResponse.fromObject(object.reports[i]); + } } + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * Creates a plain object from a BatchRunReportsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @static - * @param {google.analytics.data.v1beta.PropertyQuota} message PropertyQuota + * @param {google.analytics.data.v1beta.BatchRunReportsResponse} message BatchRunReportsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - PropertyQuota.toObject = function toObject(message, options) { + BatchRunReportsResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.tokensPerDay = null; - object.tokensPerHour = null; - object.concurrentRequests = null; - object.serverErrorsPerProjectPerHour = null; - object.potentiallyThresholdedRequestsPerHour = null; - } - if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) - object.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.tokensPerDay, options); - if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) - object.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.tokensPerHour, options); - if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) - object.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.concurrentRequests, options); - if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) - object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); - if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) - object.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.potentiallyThresholdedRequestsPerHour, options); + if (options.arrays || options.defaults) + object.reports = []; + if (options.defaults) + object.kind = ""; + if (message.reports && message.reports.length) { + object.reports = []; + for (var j = 0; j < message.reports.length; ++j) + object.reports[j] = $root.google.analytics.data.v1beta.RunReportResponse.toObject(message.reports[j], options); + } + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this PropertyQuota to JSON. + * Converts this BatchRunReportsResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.PropertyQuota + * @memberof google.analytics.data.v1beta.BatchRunReportsResponse * @instance * @returns {Object.} JSON object */ - PropertyQuota.prototype.toJSON = function toJSON() { + BatchRunReportsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return PropertyQuota; + return BatchRunReportsResponse; })(); - v1beta.QuotaStatus = (function() { + v1beta.BatchRunPivotReportsRequest = (function() { /** - * Properties of a QuotaStatus. + * Properties of a BatchRunPivotReportsRequest. * @memberof google.analytics.data.v1beta - * @interface IQuotaStatus - * @property {number|null} [consumed] QuotaStatus consumed - * @property {number|null} [remaining] QuotaStatus remaining + * @interface IBatchRunPivotReportsRequest + * @property {string|null} [property] BatchRunPivotReportsRequest property + * @property {Array.|null} [requests] BatchRunPivotReportsRequest requests */ /** - * Constructs a new QuotaStatus. + * Constructs a new BatchRunPivotReportsRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a QuotaStatus. - * @implements IQuotaStatus + * @classdesc Represents a BatchRunPivotReportsRequest. + * @implements IBatchRunPivotReportsRequest * @constructor - * @param {google.analytics.data.v1beta.IQuotaStatus=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest=} [properties] Properties to set */ - function QuotaStatus(properties) { + function BatchRunPivotReportsRequest(properties) { + this.requests = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28457,88 +28539,91 @@ } /** - * QuotaStatus consumed. - * @member {number} consumed - * @memberof google.analytics.data.v1beta.QuotaStatus + * BatchRunPivotReportsRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @instance */ - QuotaStatus.prototype.consumed = 0; + BatchRunPivotReportsRequest.prototype.property = ""; /** - * QuotaStatus remaining. - * @member {number} remaining - * @memberof google.analytics.data.v1beta.QuotaStatus + * BatchRunPivotReportsRequest requests. + * @member {Array.} requests + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @instance */ - QuotaStatus.prototype.remaining = 0; + BatchRunPivotReportsRequest.prototype.requests = $util.emptyArray; /** - * Creates a new QuotaStatus instance using the specified properties. + * Creates a new BatchRunPivotReportsRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static - * @param {google.analytics.data.v1beta.IQuotaStatus=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus instance + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest instance */ - QuotaStatus.create = function create(properties) { - return new QuotaStatus(properties); + BatchRunPivotReportsRequest.create = function create(properties) { + return new BatchRunPivotReportsRequest(properties); }; /** - * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * Encodes the specified BatchRunPivotReportsRequest message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static - * @param {google.analytics.data.v1beta.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encode = function encode(message, writer) { + BatchRunPivotReportsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); - if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.requests != null && message.requests.length) + for (var i = 0; i < message.requests.length; ++i) + $root.google.analytics.data.v1beta.RunPivotReportRequest.encode(message.requests[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * Encodes the specified BatchRunPivotReportsRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static - * @param {google.analytics.data.v1beta.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsRequest} message BatchRunPivotReportsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { + BatchRunPivotReportsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a QuotaStatus message from the specified reader or buffer. + * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decode = function decode(reader, length) { + BatchRunPivotReportsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.QuotaStatus(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.consumed = reader.int32(); + message.property = reader.string(); break; case 2: - message.remaining = reader.int32(); + if (!(message.requests && message.requests.length)) + message.requests = []; + message.requests.push($root.google.analytics.data.v1beta.RunPivotReportRequest.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -28549,122 +28634,135 @@ }; /** - * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * Decodes a BatchRunPivotReportsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - QuotaStatus.decodeDelimited = function decodeDelimited(reader) { + BatchRunPivotReportsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a QuotaStatus message. + * Verifies a BatchRunPivotReportsRequest message. * @function verify - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - QuotaStatus.verify = function verify(message) { + BatchRunPivotReportsRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.consumed != null && message.hasOwnProperty("consumed")) - if (!$util.isInteger(message.consumed)) - return "consumed: integer expected"; - if (message.remaining != null && message.hasOwnProperty("remaining")) - if (!$util.isInteger(message.remaining)) - return "remaining: integer expected"; + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.requests != null && message.hasOwnProperty("requests")) { + if (!Array.isArray(message.requests)) + return "requests: array expected"; + for (var i = 0; i < message.requests.length; ++i) { + var error = $root.google.analytics.data.v1beta.RunPivotReportRequest.verify(message.requests[i]); + if (error) + return "requests." + error; + } + } return null; }; /** - * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunPivotReportsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsRequest} BatchRunPivotReportsRequest */ - QuotaStatus.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.QuotaStatus) + BatchRunPivotReportsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest) return object; - var message = new $root.google.analytics.data.v1beta.QuotaStatus(); - if (object.consumed != null) - message.consumed = object.consumed | 0; - if (object.remaining != null) - message.remaining = object.remaining | 0; + var message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.requests) { + if (!Array.isArray(object.requests)) + throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsRequest.requests: array expected"); + message.requests = []; + for (var i = 0; i < object.requests.length; ++i) { + if (typeof object.requests[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsRequest.requests: object expected"); + message.requests[i] = $root.google.analytics.data.v1beta.RunPivotReportRequest.fromObject(object.requests[i]); + } + } return message; }; /** - * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * Creates a plain object from a BatchRunPivotReportsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @static - * @param {google.analytics.data.v1beta.QuotaStatus} message QuotaStatus + * @param {google.analytics.data.v1beta.BatchRunPivotReportsRequest} message BatchRunPivotReportsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - QuotaStatus.toObject = function toObject(message, options) { + BatchRunPivotReportsRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.consumed = 0; - object.remaining = 0; + if (options.arrays || options.defaults) + object.requests = []; + if (options.defaults) + object.property = ""; + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.requests && message.requests.length) { + object.requests = []; + for (var j = 0; j < message.requests.length; ++j) + object.requests[j] = $root.google.analytics.data.v1beta.RunPivotReportRequest.toObject(message.requests[j], options); } - if (message.consumed != null && message.hasOwnProperty("consumed")) - object.consumed = message.consumed; - if (message.remaining != null && message.hasOwnProperty("remaining")) - object.remaining = message.remaining; return object; }; /** - * Converts this QuotaStatus to JSON. + * Converts this BatchRunPivotReportsRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.QuotaStatus + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsRequest * @instance * @returns {Object.} JSON object */ - QuotaStatus.prototype.toJSON = function toJSON() { + BatchRunPivotReportsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return QuotaStatus; + return BatchRunPivotReportsRequest; })(); - v1beta.DimensionMetadata = (function() { + v1beta.BatchRunPivotReportsResponse = (function() { /** - * Properties of a DimensionMetadata. + * Properties of a BatchRunPivotReportsResponse. * @memberof google.analytics.data.v1beta - * @interface IDimensionMetadata - * @property {string|null} [apiName] DimensionMetadata apiName - * @property {string|null} [uiName] DimensionMetadata uiName - * @property {string|null} [description] DimensionMetadata description - * @property {Array.|null} [deprecatedApiNames] DimensionMetadata deprecatedApiNames - * @property {boolean|null} [customDefinition] DimensionMetadata customDefinition - * @property {string|null} [category] DimensionMetadata category + * @interface IBatchRunPivotReportsResponse + * @property {Array.|null} [pivotReports] BatchRunPivotReportsResponse pivotReports + * @property {string|null} [kind] BatchRunPivotReportsResponse kind */ /** - * Constructs a new DimensionMetadata. + * Constructs a new BatchRunPivotReportsResponse. * @memberof google.analytics.data.v1beta - * @classdesc Represents a DimensionMetadata. - * @implements IDimensionMetadata + * @classdesc Represents a BatchRunPivotReportsResponse. + * @implements IBatchRunPivotReportsResponse * @constructor - * @param {google.analytics.data.v1beta.IDimensionMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse=} [properties] Properties to set */ - function DimensionMetadata(properties) { - this.deprecatedApiNames = []; + function BatchRunPivotReportsResponse(properties) { + this.pivotReports = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28672,143 +28770,91 @@ } /** - * DimensionMetadata apiName. - * @member {string} apiName - * @memberof google.analytics.data.v1beta.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.apiName = ""; - - /** - * DimensionMetadata uiName. - * @member {string} uiName - * @memberof google.analytics.data.v1beta.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.uiName = ""; - - /** - * DimensionMetadata description. - * @member {string} description - * @memberof google.analytics.data.v1beta.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.description = ""; - - /** - * DimensionMetadata deprecatedApiNames. - * @member {Array.} deprecatedApiNames - * @memberof google.analytics.data.v1beta.DimensionMetadata - * @instance - */ - DimensionMetadata.prototype.deprecatedApiNames = $util.emptyArray; - - /** - * DimensionMetadata customDefinition. - * @member {boolean} customDefinition - * @memberof google.analytics.data.v1beta.DimensionMetadata + * BatchRunPivotReportsResponse pivotReports. + * @member {Array.} pivotReports + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @instance */ - DimensionMetadata.prototype.customDefinition = false; + BatchRunPivotReportsResponse.prototype.pivotReports = $util.emptyArray; /** - * DimensionMetadata category. - * @member {string} category - * @memberof google.analytics.data.v1beta.DimensionMetadata + * BatchRunPivotReportsResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @instance */ - DimensionMetadata.prototype.category = ""; + BatchRunPivotReportsResponse.prototype.kind = ""; /** - * Creates a new DimensionMetadata instance using the specified properties. + * Creates a new BatchRunPivotReportsResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static - * @param {google.analytics.data.v1beta.IDimensionMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata instance + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse instance */ - DimensionMetadata.create = function create(properties) { - return new DimensionMetadata(properties); + BatchRunPivotReportsResponse.create = function create(properties) { + return new BatchRunPivotReportsResponse(properties); }; /** - * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * Encodes the specified BatchRunPivotReportsResponse message. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static - * @param {google.analytics.data.v1beta.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionMetadata.encode = function encode(message, writer) { + BatchRunPivotReportsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); - if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); - if (message.description != null && Object.hasOwnProperty.call(message, "description")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); - if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); - if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.customDefinition); - if (message.category != null && Object.hasOwnProperty.call(message, "category")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.category); + if (message.pivotReports != null && message.pivotReports.length) + for (var i = 0; i < message.pivotReports.length; ++i) + $root.google.analytics.data.v1beta.RunPivotReportResponse.encode(message.pivotReports[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.kind); return writer; }; /** - * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * Encodes the specified BatchRunPivotReportsResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.BatchRunPivotReportsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static - * @param {google.analytics.data.v1beta.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {google.analytics.data.v1beta.IBatchRunPivotReportsResponse} message BatchRunPivotReportsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + BatchRunPivotReportsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionMetadata message from the specified reader or buffer. + * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionMetadata.decode = function decode(reader, length) { + BatchRunPivotReportsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.apiName = reader.string(); + if (!(message.pivotReports && message.pivotReports.length)) + message.pivotReports = []; + message.pivotReports.push($root.google.analytics.data.v1beta.RunPivotReportResponse.decode(reader, reader.uint32())); break; case 2: - message.uiName = reader.string(); - break; - case 3: - message.description = reader.string(); - break; - case 4: - if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) - message.deprecatedApiNames = []; - message.deprecatedApiNames.push(reader.string()); - break; - case 5: - message.customDefinition = reader.bool(); - break; - case 7: - message.category = reader.string(); + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -28819,171 +28865,133 @@ }; /** - * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * Decodes a BatchRunPivotReportsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionMetadata.decodeDelimited = function decodeDelimited(reader) { + BatchRunPivotReportsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionMetadata message. + * Verifies a BatchRunPivotReportsResponse message. * @function verify - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionMetadata.verify = function verify(message) { + BatchRunPivotReportsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.apiName != null && message.hasOwnProperty("apiName")) - if (!$util.isString(message.apiName)) - return "apiName: string expected"; - if (message.uiName != null && message.hasOwnProperty("uiName")) - if (!$util.isString(message.uiName)) - return "uiName: string expected"; - if (message.description != null && message.hasOwnProperty("description")) - if (!$util.isString(message.description)) - return "description: string expected"; - if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { - if (!Array.isArray(message.deprecatedApiNames)) - return "deprecatedApiNames: array expected"; - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - if (!$util.isString(message.deprecatedApiNames[i])) - return "deprecatedApiNames: string[] expected"; + if (message.pivotReports != null && message.hasOwnProperty("pivotReports")) { + if (!Array.isArray(message.pivotReports)) + return "pivotReports: array expected"; + for (var i = 0; i < message.pivotReports.length; ++i) { + var error = $root.google.analytics.data.v1beta.RunPivotReportResponse.verify(message.pivotReports[i]); + if (error) + return "pivotReports." + error; + } } - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - if (typeof message.customDefinition !== "boolean") - return "customDefinition: boolean expected"; - if (message.category != null && message.hasOwnProperty("category")) - if (!$util.isString(message.category)) - return "category: string expected"; + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a BatchRunPivotReportsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + * @returns {google.analytics.data.v1beta.BatchRunPivotReportsResponse} BatchRunPivotReportsResponse */ - DimensionMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionMetadata) + BatchRunPivotReportsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse) return object; - var message = new $root.google.analytics.data.v1beta.DimensionMetadata(); - if (object.apiName != null) - message.apiName = String(object.apiName); - if (object.uiName != null) - message.uiName = String(object.uiName); - if (object.description != null) - message.description = String(object.description); - if (object.deprecatedApiNames) { - if (!Array.isArray(object.deprecatedApiNames)) - throw TypeError(".google.analytics.data.v1beta.DimensionMetadata.deprecatedApiNames: array expected"); - message.deprecatedApiNames = []; - for (var i = 0; i < object.deprecatedApiNames.length; ++i) - message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); + var message = new $root.google.analytics.data.v1beta.BatchRunPivotReportsResponse(); + if (object.pivotReports) { + if (!Array.isArray(object.pivotReports)) + throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsResponse.pivotReports: array expected"); + message.pivotReports = []; + for (var i = 0; i < object.pivotReports.length; ++i) { + if (typeof object.pivotReports[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.BatchRunPivotReportsResponse.pivotReports: object expected"); + message.pivotReports[i] = $root.google.analytics.data.v1beta.RunPivotReportResponse.fromObject(object.pivotReports[i]); + } } - if (object.customDefinition != null) - message.customDefinition = Boolean(object.customDefinition); - if (object.category != null) - message.category = String(object.category); + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. + * Creates a plain object from a BatchRunPivotReportsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @static - * @param {google.analytics.data.v1beta.DimensionMetadata} message DimensionMetadata + * @param {google.analytics.data.v1beta.BatchRunPivotReportsResponse} message BatchRunPivotReportsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionMetadata.toObject = function toObject(message, options) { + BatchRunPivotReportsResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.deprecatedApiNames = []; - if (options.defaults) { - object.apiName = ""; - object.uiName = ""; - object.description = ""; - object.customDefinition = false; - object.category = ""; - } - if (message.apiName != null && message.hasOwnProperty("apiName")) - object.apiName = message.apiName; - if (message.uiName != null && message.hasOwnProperty("uiName")) - object.uiName = message.uiName; - if (message.description != null && message.hasOwnProperty("description")) - object.description = message.description; - if (message.deprecatedApiNames && message.deprecatedApiNames.length) { - object.deprecatedApiNames = []; - for (var j = 0; j < message.deprecatedApiNames.length; ++j) - object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + object.pivotReports = []; + if (options.defaults) + object.kind = ""; + if (message.pivotReports && message.pivotReports.length) { + object.pivotReports = []; + for (var j = 0; j < message.pivotReports.length; ++j) + object.pivotReports[j] = $root.google.analytics.data.v1beta.RunPivotReportResponse.toObject(message.pivotReports[j], options); } - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - object.customDefinition = message.customDefinition; - if (message.category != null && message.hasOwnProperty("category")) - object.category = message.category; + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this DimensionMetadata to JSON. + * Converts this BatchRunPivotReportsResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionMetadata + * @memberof google.analytics.data.v1beta.BatchRunPivotReportsResponse * @instance * @returns {Object.} JSON object */ - DimensionMetadata.prototype.toJSON = function toJSON() { + BatchRunPivotReportsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionMetadata; + return BatchRunPivotReportsResponse; })(); - v1beta.MetricMetadata = (function() { + v1beta.GetMetadataRequest = (function() { /** - * Properties of a MetricMetadata. + * Properties of a GetMetadataRequest. * @memberof google.analytics.data.v1beta - * @interface IMetricMetadata - * @property {string|null} [apiName] MetricMetadata apiName - * @property {string|null} [uiName] MetricMetadata uiName - * @property {string|null} [description] MetricMetadata description - * @property {Array.|null} [deprecatedApiNames] MetricMetadata deprecatedApiNames - * @property {google.analytics.data.v1beta.MetricType|null} [type] MetricMetadata type - * @property {string|null} [expression] MetricMetadata expression - * @property {boolean|null} [customDefinition] MetricMetadata customDefinition - * @property {Array.|null} [blockedReasons] MetricMetadata blockedReasons - * @property {string|null} [category] MetricMetadata category + * @interface IGetMetadataRequest + * @property {string|null} [name] GetMetadataRequest name */ /** - * Constructs a new MetricMetadata. + * Constructs a new GetMetadataRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a MetricMetadata. - * @implements IMetricMetadata + * @classdesc Represents a GetMetadataRequest. + * @implements IGetMetadataRequest * @constructor - * @param {google.analytics.data.v1beta.IMetricMetadata=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IGetMetadataRequest=} [properties] Properties to set */ - function MetricMetadata(properties) { - this.deprecatedApiNames = []; - this.blockedReasons = []; + function GetMetadataRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28991,193 +28999,75 @@ } /** - * MetricMetadata apiName. - * @member {string} apiName - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.apiName = ""; - - /** - * MetricMetadata uiName. - * @member {string} uiName - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.uiName = ""; - - /** - * MetricMetadata description. - * @member {string} description - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.description = ""; - - /** - * MetricMetadata deprecatedApiNames. - * @member {Array.} deprecatedApiNames - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.deprecatedApiNames = $util.emptyArray; - - /** - * MetricMetadata type. - * @member {google.analytics.data.v1beta.MetricType} type - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.type = 0; - - /** - * MetricMetadata expression. - * @member {string} expression - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.expression = ""; - - /** - * MetricMetadata customDefinition. - * @member {boolean} customDefinition - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.customDefinition = false; - - /** - * MetricMetadata blockedReasons. - * @member {Array.} blockedReasons - * @memberof google.analytics.data.v1beta.MetricMetadata - * @instance - */ - MetricMetadata.prototype.blockedReasons = $util.emptyArray; - - /** - * MetricMetadata category. - * @member {string} category - * @memberof google.analytics.data.v1beta.MetricMetadata + * GetMetadataRequest name. + * @member {string} name + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @instance */ - MetricMetadata.prototype.category = ""; + GetMetadataRequest.prototype.name = ""; /** - * Creates a new MetricMetadata instance using the specified properties. + * Creates a new GetMetadataRequest instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static - * @param {google.analytics.data.v1beta.IMetricMetadata=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata instance + * @param {google.analytics.data.v1beta.IGetMetadataRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest instance */ - MetricMetadata.create = function create(properties) { - return new MetricMetadata(properties); + GetMetadataRequest.create = function create(properties) { + return new GetMetadataRequest(properties); }; /** - * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * Encodes the specified GetMetadataRequest message. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static - * @param {google.analytics.data.v1beta.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {google.analytics.data.v1beta.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricMetadata.encode = function encode(message, writer) { + GetMetadataRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); - if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); - if (message.description != null && Object.hasOwnProperty.call(message, "description")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); - if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); - if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.expression); - if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) - writer.uint32(/* id 7, wireType 0 =*/56).bool(message.customDefinition); - if (message.blockedReasons != null && message.blockedReasons.length) { - writer.uint32(/* id 8, wireType 2 =*/66).fork(); - for (var i = 0; i < message.blockedReasons.length; ++i) - writer.int32(message.blockedReasons[i]); - writer.ldelim(); - } - if (message.category != null && Object.hasOwnProperty.call(message, "category")) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.category); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); return writer; }; /** - * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * Encodes the specified GetMetadataRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.GetMetadataRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static - * @param {google.analytics.data.v1beta.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {google.analytics.data.v1beta.IGetMetadataRequest} message GetMetadataRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricMetadata.encodeDelimited = function encodeDelimited(message, writer) { + GetMetadataRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricMetadata message from the specified reader or buffer. + * Decodes a GetMetadataRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricMetadata.decode = function decode(reader, length) { + GetMetadataRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.GetMetadataRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.apiName = reader.string(); - break; - case 2: - message.uiName = reader.string(); - break; - case 3: - message.description = reader.string(); - break; - case 4: - if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) - message.deprecatedApiNames = []; - message.deprecatedApiNames.push(reader.string()); - break; - case 5: - message.type = reader.int32(); - break; - case 6: - message.expression = reader.string(); - break; - case 7: - message.customDefinition = reader.bool(); - break; - case 8: - if (!(message.blockedReasons && message.blockedReasons.length)) - message.blockedReasons = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.blockedReasons.push(reader.int32()); - } else - message.blockedReasons.push(reader.int32()); - break; - case 10: - message.category = reader.string(); + message.name = reader.string(); break; default: reader.skipType(tag & 7); @@ -29188,303 +29078,121 @@ }; /** - * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * Decodes a GetMetadataRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricMetadata.decodeDelimited = function decodeDelimited(reader) { + GetMetadataRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricMetadata message. + * Verifies a GetMetadataRequest message. * @function verify - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricMetadata.verify = function verify(message) { + GetMetadataRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.apiName != null && message.hasOwnProperty("apiName")) - if (!$util.isString(message.apiName)) - return "apiName: string expected"; - if (message.uiName != null && message.hasOwnProperty("uiName")) - if (!$util.isString(message.uiName)) - return "uiName: string expected"; - if (message.description != null && message.hasOwnProperty("description")) - if (!$util.isString(message.description)) - return "description: string expected"; - if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { - if (!Array.isArray(message.deprecatedApiNames)) - return "deprecatedApiNames: array expected"; - for (var i = 0; i < message.deprecatedApiNames.length; ++i) - if (!$util.isString(message.deprecatedApiNames[i])) - return "deprecatedApiNames: string[] expected"; - } - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 0: - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; - } - if (message.expression != null && message.hasOwnProperty("expression")) - if (!$util.isString(message.expression)) - return "expression: string expected"; - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - if (typeof message.customDefinition !== "boolean") - return "customDefinition: boolean expected"; - if (message.blockedReasons != null && message.hasOwnProperty("blockedReasons")) { - if (!Array.isArray(message.blockedReasons)) - return "blockedReasons: array expected"; - for (var i = 0; i < message.blockedReasons.length; ++i) - switch (message.blockedReasons[i]) { - default: - return "blockedReasons: enum value[] expected"; - case 0: - case 1: - case 2: - break; - } - } - if (message.category != null && message.hasOwnProperty("category")) - if (!$util.isString(message.category)) - return "category: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; return null; }; /** - * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * Creates a GetMetadataRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + * @returns {google.analytics.data.v1beta.GetMetadataRequest} GetMetadataRequest */ - MetricMetadata.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.MetricMetadata) + GetMetadataRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.GetMetadataRequest) return object; - var message = new $root.google.analytics.data.v1beta.MetricMetadata(); - if (object.apiName != null) - message.apiName = String(object.apiName); - if (object.uiName != null) - message.uiName = String(object.uiName); - if (object.description != null) - message.description = String(object.description); - if (object.deprecatedApiNames) { - if (!Array.isArray(object.deprecatedApiNames)) - throw TypeError(".google.analytics.data.v1beta.MetricMetadata.deprecatedApiNames: array expected"); - message.deprecatedApiNames = []; - for (var i = 0; i < object.deprecatedApiNames.length; ++i) - message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); - } - switch (object.type) { - case "METRIC_TYPE_UNSPECIFIED": - case 0: - message.type = 0; - break; - case "TYPE_INTEGER": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_SECONDS": - case 4: - message.type = 4; - break; - case "TYPE_MILLISECONDS": - case 5: - message.type = 5; - break; - case "TYPE_MINUTES": - case 6: - message.type = 6; - break; - case "TYPE_HOURS": - case 7: - message.type = 7; - break; - case "TYPE_STANDARD": - case 8: - message.type = 8; - break; - case "TYPE_CURRENCY": - case 9: - message.type = 9; - break; - case "TYPE_FEET": - case 10: - message.type = 10; - break; - case "TYPE_MILES": - case 11: - message.type = 11; - break; - case "TYPE_METERS": - case 12: - message.type = 12; - break; - case "TYPE_KILOMETERS": - case 13: - message.type = 13; - break; - } - if (object.expression != null) - message.expression = String(object.expression); - if (object.customDefinition != null) - message.customDefinition = Boolean(object.customDefinition); - if (object.blockedReasons) { - if (!Array.isArray(object.blockedReasons)) - throw TypeError(".google.analytics.data.v1beta.MetricMetadata.blockedReasons: array expected"); - message.blockedReasons = []; - for (var i = 0; i < object.blockedReasons.length; ++i) - switch (object.blockedReasons[i]) { - default: - case "BLOCKED_REASON_UNSPECIFIED": - case 0: - message.blockedReasons[i] = 0; - break; - case "NO_REVENUE_METRICS": - case 1: - message.blockedReasons[i] = 1; - break; - case "NO_COST_METRICS": - case 2: - message.blockedReasons[i] = 2; - break; - } - } - if (object.category != null) - message.category = String(object.category); + var message = new $root.google.analytics.data.v1beta.GetMetadataRequest(); + if (object.name != null) + message.name = String(object.name); return message; }; /** - * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. + * Creates a plain object from a GetMetadataRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @static - * @param {google.analytics.data.v1beta.MetricMetadata} message MetricMetadata + * @param {google.analytics.data.v1beta.GetMetadataRequest} message GetMetadataRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricMetadata.toObject = function toObject(message, options) { + GetMetadataRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.deprecatedApiNames = []; - object.blockedReasons = []; - } - if (options.defaults) { - object.apiName = ""; - object.uiName = ""; - object.description = ""; - object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; - object.expression = ""; - object.customDefinition = false; - object.category = ""; - } - if (message.apiName != null && message.hasOwnProperty("apiName")) - object.apiName = message.apiName; - if (message.uiName != null && message.hasOwnProperty("uiName")) - object.uiName = message.uiName; - if (message.description != null && message.hasOwnProperty("description")) - object.description = message.description; - if (message.deprecatedApiNames && message.deprecatedApiNames.length) { - object.deprecatedApiNames = []; - for (var j = 0; j < message.deprecatedApiNames.length; ++j) - object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; - } - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.analytics.data.v1beta.MetricType[message.type] : message.type; - if (message.expression != null && message.hasOwnProperty("expression")) - object.expression = message.expression; - if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) - object.customDefinition = message.customDefinition; - if (message.blockedReasons && message.blockedReasons.length) { - object.blockedReasons = []; - for (var j = 0; j < message.blockedReasons.length; ++j) - object.blockedReasons[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricMetadata.BlockedReason[message.blockedReasons[j]] : message.blockedReasons[j]; - } - if (message.category != null && message.hasOwnProperty("category")) - object.category = message.category; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; return object; }; /** - * Converts this MetricMetadata to JSON. + * Converts this GetMetadataRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.MetricMetadata + * @memberof google.analytics.data.v1beta.GetMetadataRequest * @instance * @returns {Object.} JSON object */ - MetricMetadata.prototype.toJSON = function toJSON() { + GetMetadataRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * BlockedReason enum. - * @name google.analytics.data.v1beta.MetricMetadata.BlockedReason - * @enum {number} - * @property {number} BLOCKED_REASON_UNSPECIFIED=0 BLOCKED_REASON_UNSPECIFIED value - * @property {number} NO_REVENUE_METRICS=1 NO_REVENUE_METRICS value - * @property {number} NO_COST_METRICS=2 NO_COST_METRICS value - */ - MetricMetadata.BlockedReason = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "BLOCKED_REASON_UNSPECIFIED"] = 0; - values[valuesById[1] = "NO_REVENUE_METRICS"] = 1; - values[valuesById[2] = "NO_COST_METRICS"] = 2; - return values; - })(); - - return MetricMetadata; + return GetMetadataRequest; })(); - v1beta.DimensionCompatibility = (function() { + v1beta.RunRealtimeReportRequest = (function() { /** - * Properties of a DimensionCompatibility. + * Properties of a RunRealtimeReportRequest. * @memberof google.analytics.data.v1beta - * @interface IDimensionCompatibility - * @property {google.analytics.data.v1beta.IDimensionMetadata|null} [dimensionMetadata] DimensionCompatibility dimensionMetadata - * @property {google.analytics.data.v1beta.Compatibility|null} [compatibility] DimensionCompatibility compatibility + * @interface IRunRealtimeReportRequest + * @property {string|null} [property] RunRealtimeReportRequest property + * @property {Array.|null} [dimensions] RunRealtimeReportRequest dimensions + * @property {Array.|null} [metrics] RunRealtimeReportRequest metrics + * @property {google.analytics.data.v1beta.IFilterExpression|null} [dimensionFilter] RunRealtimeReportRequest dimensionFilter + * @property {google.analytics.data.v1beta.IFilterExpression|null} [metricFilter] RunRealtimeReportRequest metricFilter + * @property {number|Long|null} [limit] RunRealtimeReportRequest limit + * @property {Array.|null} [metricAggregations] RunRealtimeReportRequest metricAggregations + * @property {Array.|null} [orderBys] RunRealtimeReportRequest orderBys + * @property {boolean|null} [returnPropertyQuota] RunRealtimeReportRequest returnPropertyQuota + * @property {Array.|null} [minuteRanges] RunRealtimeReportRequest minuteRanges */ /** - * Constructs a new DimensionCompatibility. + * Constructs a new RunRealtimeReportRequest. * @memberof google.analytics.data.v1beta - * @classdesc Represents a DimensionCompatibility. - * @implements IDimensionCompatibility + * @classdesc Represents a RunRealtimeReportRequest. + * @implements IRunRealtimeReportRequest * @constructor - * @param {google.analytics.data.v1beta.IDimensionCompatibility=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest=} [properties] Properties to set */ - function DimensionCompatibility(properties) { + function RunRealtimeReportRequest(properties) { + this.dimensions = []; + this.metrics = []; + this.metricAggregations = []; + this.orderBys = []; + this.minuteRanges = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29492,113 +29200,215 @@ } /** - * DimensionCompatibility dimensionMetadata. - * @member {google.analytics.data.v1beta.IDimensionMetadata|null|undefined} dimensionMetadata - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * RunRealtimeReportRequest property. + * @member {string} property + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @instance */ - DimensionCompatibility.prototype.dimensionMetadata = null; + RunRealtimeReportRequest.prototype.property = ""; /** - * DimensionCompatibility compatibility. - * @member {google.analytics.data.v1beta.Compatibility|null|undefined} compatibility - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * RunRealtimeReportRequest dimensions. + * @member {Array.} dimensions + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @instance */ - DimensionCompatibility.prototype.compatibility = null; + RunRealtimeReportRequest.prototype.dimensions = $util.emptyArray; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * RunRealtimeReportRequest metrics. + * @member {Array.} metrics + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.metrics = $util.emptyArray; /** - * DimensionCompatibility _dimensionMetadata. - * @member {"dimensionMetadata"|undefined} _dimensionMetadata - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * RunRealtimeReportRequest dimensionFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} dimensionFilter + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @instance */ - Object.defineProperty(DimensionCompatibility.prototype, "_dimensionMetadata", { - get: $util.oneOfGetter($oneOfFields = ["dimensionMetadata"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunRealtimeReportRequest.prototype.dimensionFilter = null; /** - * DimensionCompatibility _compatibility. - * @member {"compatibility"|undefined} _compatibility - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * RunRealtimeReportRequest metricFilter. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} metricFilter + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @instance */ - Object.defineProperty(DimensionCompatibility.prototype, "_compatibility", { - get: $util.oneOfGetter($oneOfFields = ["compatibility"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunRealtimeReportRequest.prototype.metricFilter = null; /** - * Creates a new DimensionCompatibility instance using the specified properties. - * @function create - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * RunRealtimeReportRequest limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * RunRealtimeReportRequest metricAggregations. + * @member {Array.} metricAggregations + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.metricAggregations = $util.emptyArray; + + /** + * RunRealtimeReportRequest orderBys. + * @member {Array.} orderBys + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.orderBys = $util.emptyArray; + + /** + * RunRealtimeReportRequest returnPropertyQuota. + * @member {boolean} returnPropertyQuota + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.returnPropertyQuota = false; + + /** + * RunRealtimeReportRequest minuteRanges. + * @member {Array.} minuteRanges + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest + * @instance + */ + RunRealtimeReportRequest.prototype.minuteRanges = $util.emptyArray; + + /** + * Creates a new RunRealtimeReportRequest instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionCompatibility=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility instance + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest instance */ - DimensionCompatibility.create = function create(properties) { - return new DimensionCompatibility(properties); + RunRealtimeReportRequest.create = function create(properties) { + return new RunRealtimeReportRequest(properties); }; /** - * Encodes the specified DimensionCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * Encodes the specified RunRealtimeReportRequest message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionCompatibility} message DimensionCompatibility message or plain object to encode + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionCompatibility.encode = function encode(message, writer) { + RunRealtimeReportRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dimensionMetadata != null && Object.hasOwnProperty.call(message, "dimensionMetadata")) - $root.google.analytics.data.v1beta.DimensionMetadata.encode(message.dimensionMetadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.compatibility != null && Object.hasOwnProperty.call(message, "compatibility")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.compatibility); + if (message.property != null && Object.hasOwnProperty.call(message, "property")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.property); + if (message.dimensions != null && message.dimensions.length) + for (var i = 0; i < message.dimensions.length; ++i) + $root.google.analytics.data.v1beta.Dimension.encode(message.dimensions[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metrics != null && message.metrics.length) + for (var i = 0; i < message.metrics.length; ++i) + $root.google.analytics.data.v1beta.Metric.encode(message.metrics[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.dimensionFilter != null && Object.hasOwnProperty.call(message, "dimensionFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.dimensionFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.metricFilter != null && Object.hasOwnProperty.call(message, "metricFilter")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.metricFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 6, wireType 0 =*/48).int64(message.limit); + if (message.metricAggregations != null && message.metricAggregations.length) { + writer.uint32(/* id 7, wireType 2 =*/58).fork(); + for (var i = 0; i < message.metricAggregations.length; ++i) + writer.int32(message.metricAggregations[i]); + writer.ldelim(); + } + if (message.orderBys != null && message.orderBys.length) + for (var i = 0; i < message.orderBys.length; ++i) + $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.returnPropertyQuota != null && Object.hasOwnProperty.call(message, "returnPropertyQuota")) + writer.uint32(/* id 9, wireType 0 =*/72).bool(message.returnPropertyQuota); + if (message.minuteRanges != null && message.minuteRanges.length) + for (var i = 0; i < message.minuteRanges.length; ++i) + $root.google.analytics.data.v1beta.MinuteRange.encode(message.minuteRanges[i], writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); return writer; }; /** - * Encodes the specified DimensionCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * Encodes the specified RunRealtimeReportRequest message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static - * @param {google.analytics.data.v1beta.IDimensionCompatibility} message DimensionCompatibility message or plain object to encode + * @param {google.analytics.data.v1beta.IRunRealtimeReportRequest} message RunRealtimeReportRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DimensionCompatibility.encodeDelimited = function encodeDelimited(message, writer) { + RunRealtimeReportRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DimensionCompatibility message from the specified reader or buffer. + * Decodes a RunRealtimeReportRequest message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionCompatibility.decode = function decode(reader, length) { + RunRealtimeReportRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionCompatibility(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunRealtimeReportRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.decode(reader, reader.uint32()); + message.property = reader.string(); break; case 2: - message.compatibility = reader.int32(); + if (!(message.dimensions && message.dimensions.length)) + message.dimensions = []; + message.dimensions.push($root.google.analytics.data.v1beta.Dimension.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.metrics && message.metrics.length)) + message.metrics = []; + message.metrics.push($root.google.analytics.data.v1beta.Metric.decode(reader, reader.uint32())); + break; + case 4: + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 5: + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 6: + message.limit = reader.int64(); + break; + case 7: + if (!(message.metricAggregations && message.metricAggregations.length)) + message.metricAggregations = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.metricAggregations.push(reader.int32()); + } else + message.metricAggregations.push(reader.int32()); + break; + case 8: + if (!(message.orderBys && message.orderBys.length)) + message.orderBys = []; + message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); + break; + case 9: + message.returnPropertyQuota = reader.bool(); + break; + case 10: + if (!(message.minuteRanges && message.minuteRanges.length)) + message.minuteRanges = []; + message.minuteRanges.push($root.google.analytics.data.v1beta.MinuteRange.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -29609,148 +29419,330 @@ }; /** - * Decodes a DimensionCompatibility message from the specified reader or buffer, length delimited. + * Decodes a RunRealtimeReportRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DimensionCompatibility.decodeDelimited = function decodeDelimited(reader) { + RunRealtimeReportRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DimensionCompatibility message. + * Verifies a RunRealtimeReportRequest message. * @function verify - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DimensionCompatibility.verify = function verify(message) { + RunRealtimeReportRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.dimensionMetadata != null && message.hasOwnProperty("dimensionMetadata")) { - properties._dimensionMetadata = 1; - { - var error = $root.google.analytics.data.v1beta.DimensionMetadata.verify(message.dimensionMetadata); + if (message.property != null && message.hasOwnProperty("property")) + if (!$util.isString(message.property)) + return "property: string expected"; + if (message.dimensions != null && message.hasOwnProperty("dimensions")) { + if (!Array.isArray(message.dimensions)) + return "dimensions: array expected"; + for (var i = 0; i < message.dimensions.length; ++i) { + var error = $root.google.analytics.data.v1beta.Dimension.verify(message.dimensions[i]); if (error) - return "dimensionMetadata." + error; + return "dimensions." + error; } } - if (message.compatibility != null && message.hasOwnProperty("compatibility")) { - properties._compatibility = 1; - switch (message.compatibility) { - default: - return "compatibility: enum value expected"; - case 0: - case 1: - case 2: - break; + if (message.metrics != null && message.hasOwnProperty("metrics")) { + if (!Array.isArray(message.metrics)) + return "metrics: array expected"; + for (var i = 0; i < message.metrics.length; ++i) { + var error = $root.google.analytics.data.v1beta.Metric.verify(message.metrics[i]); + if (error) + return "metrics." + error; + } + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.dimensionFilter); + if (error) + return "dimensionFilter." + error; + } + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.metricFilter); + if (error) + return "metricFilter." + error; + } + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { + if (!Array.isArray(message.metricAggregations)) + return "metricAggregations: array expected"; + for (var i = 0; i < message.metricAggregations.length; ++i) + switch (message.metricAggregations[i]) { + default: + return "metricAggregations: enum value[] expected"; + case 0: + case 1: + case 5: + case 6: + case 4: + break; + } + } + if (message.orderBys != null && message.hasOwnProperty("orderBys")) { + if (!Array.isArray(message.orderBys)) + return "orderBys: array expected"; + for (var i = 0; i < message.orderBys.length; ++i) { + var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); + if (error) + return "orderBys." + error; + } + } + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + if (typeof message.returnPropertyQuota !== "boolean") + return "returnPropertyQuota: boolean expected"; + if (message.minuteRanges != null && message.hasOwnProperty("minuteRanges")) { + if (!Array.isArray(message.minuteRanges)) + return "minuteRanges: array expected"; + for (var i = 0; i < message.minuteRanges.length; ++i) { + var error = $root.google.analytics.data.v1beta.MinuteRange.verify(message.minuteRanges[i]); + if (error) + return "minuteRanges." + error; } } return null; }; /** - * Creates a DimensionCompatibility message from a plain object. Also converts values to their respective internal types. + * Creates a RunRealtimeReportRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportRequest} RunRealtimeReportRequest */ - DimensionCompatibility.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.DimensionCompatibility) + RunRealtimeReportRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunRealtimeReportRequest) return object; - var message = new $root.google.analytics.data.v1beta.DimensionCompatibility(); - if (object.dimensionMetadata != null) { - if (typeof object.dimensionMetadata !== "object") - throw TypeError(".google.analytics.data.v1beta.DimensionCompatibility.dimensionMetadata: object expected"); - message.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.fromObject(object.dimensionMetadata); + var message = new $root.google.analytics.data.v1beta.RunRealtimeReportRequest(); + if (object.property != null) + message.property = String(object.property); + if (object.dimensions) { + if (!Array.isArray(object.dimensions)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensions: array expected"); + message.dimensions = []; + for (var i = 0; i < object.dimensions.length; ++i) { + if (typeof object.dimensions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensions: object expected"); + message.dimensions[i] = $root.google.analytics.data.v1beta.Dimension.fromObject(object.dimensions[i]); + } } - switch (object.compatibility) { - case "COMPATIBILITY_UNSPECIFIED": - case 0: - message.compatibility = 0; - break; - case "COMPATIBLE": - case 1: - message.compatibility = 1; - break; - case "INCOMPATIBLE": - case 2: - message.compatibility = 2; - break; + if (object.metrics) { + if (!Array.isArray(object.metrics)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metrics: array expected"); + message.metrics = []; + for (var i = 0; i < object.metrics.length; ++i) { + if (typeof object.metrics[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metrics: object expected"); + message.metrics[i] = $root.google.analytics.data.v1beta.Metric.fromObject(object.metrics[i]); + } + } + if (object.dimensionFilter != null) { + if (typeof object.dimensionFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.dimensionFilter: object expected"); + message.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.dimensionFilter); + } + if (object.metricFilter != null) { + if (typeof object.metricFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metricFilter: object expected"); + message.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.metricFilter); + } + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + if (object.metricAggregations) { + if (!Array.isArray(object.metricAggregations)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.metricAggregations: array expected"); + message.metricAggregations = []; + for (var i = 0; i < object.metricAggregations.length; ++i) + switch (object.metricAggregations[i]) { + default: + case "METRIC_AGGREGATION_UNSPECIFIED": + case 0: + message.metricAggregations[i] = 0; + break; + case "TOTAL": + case 1: + message.metricAggregations[i] = 1; + break; + case "MINIMUM": + case 5: + message.metricAggregations[i] = 5; + break; + case "MAXIMUM": + case 6: + message.metricAggregations[i] = 6; + break; + case "COUNT": + case 4: + message.metricAggregations[i] = 4; + break; + } + } + if (object.orderBys) { + if (!Array.isArray(object.orderBys)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.orderBys: array expected"); + message.orderBys = []; + for (var i = 0; i < object.orderBys.length; ++i) { + if (typeof object.orderBys[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.orderBys: object expected"); + message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); + } + } + if (object.returnPropertyQuota != null) + message.returnPropertyQuota = Boolean(object.returnPropertyQuota); + if (object.minuteRanges) { + if (!Array.isArray(object.minuteRanges)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.minuteRanges: array expected"); + message.minuteRanges = []; + for (var i = 0; i < object.minuteRanges.length; ++i) { + if (typeof object.minuteRanges[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportRequest.minuteRanges: object expected"); + message.minuteRanges[i] = $root.google.analytics.data.v1beta.MinuteRange.fromObject(object.minuteRanges[i]); + } } return message; }; /** - * Creates a plain object from a DimensionCompatibility message. Also converts values to other types if specified. + * Creates a plain object from a RunRealtimeReportRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @static - * @param {google.analytics.data.v1beta.DimensionCompatibility} message DimensionCompatibility + * @param {google.analytics.data.v1beta.RunRealtimeReportRequest} message RunRealtimeReportRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DimensionCompatibility.toObject = function toObject(message, options) { + RunRealtimeReportRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.dimensionMetadata != null && message.hasOwnProperty("dimensionMetadata")) { - object.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.toObject(message.dimensionMetadata, options); - if (options.oneofs) - object._dimensionMetadata = "dimensionMetadata"; + if (options.arrays || options.defaults) { + object.dimensions = []; + object.metrics = []; + object.metricAggregations = []; + object.orderBys = []; + object.minuteRanges = []; } - if (message.compatibility != null && message.hasOwnProperty("compatibility")) { - object.compatibility = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibility] : message.compatibility; - if (options.oneofs) - object._compatibility = "compatibility"; + if (options.defaults) { + object.property = ""; + object.dimensionFilter = null; + object.metricFilter = null; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.limit = options.longs === String ? "0" : 0; + object.returnPropertyQuota = false; + } + if (message.property != null && message.hasOwnProperty("property")) + object.property = message.property; + if (message.dimensions && message.dimensions.length) { + object.dimensions = []; + for (var j = 0; j < message.dimensions.length; ++j) + object.dimensions[j] = $root.google.analytics.data.v1beta.Dimension.toObject(message.dimensions[j], options); + } + if (message.metrics && message.metrics.length) { + object.metrics = []; + for (var j = 0; j < message.metrics.length; ++j) + object.metrics[j] = $root.google.analytics.data.v1beta.Metric.toObject(message.metrics[j], options); + } + if (message.dimensionFilter != null && message.hasOwnProperty("dimensionFilter")) + object.dimensionFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.dimensionFilter, options); + if (message.metricFilter != null && message.hasOwnProperty("metricFilter")) + object.metricFilter = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.metricFilter, options); + if (message.limit != null && message.hasOwnProperty("limit")) + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (message.metricAggregations && message.metricAggregations.length) { + object.metricAggregations = []; + for (var j = 0; j < message.metricAggregations.length; ++j) + object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; + } + if (message.orderBys && message.orderBys.length) { + object.orderBys = []; + for (var j = 0; j < message.orderBys.length; ++j) + object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); + } + if (message.returnPropertyQuota != null && message.hasOwnProperty("returnPropertyQuota")) + object.returnPropertyQuota = message.returnPropertyQuota; + if (message.minuteRanges && message.minuteRanges.length) { + object.minuteRanges = []; + for (var j = 0; j < message.minuteRanges.length; ++j) + object.minuteRanges[j] = $root.google.analytics.data.v1beta.MinuteRange.toObject(message.minuteRanges[j], options); } return object; }; /** - * Converts this DimensionCompatibility to JSON. + * Converts this RunRealtimeReportRequest to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportRequest * @instance * @returns {Object.} JSON object */ - DimensionCompatibility.prototype.toJSON = function toJSON() { + RunRealtimeReportRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DimensionCompatibility; + return RunRealtimeReportRequest; })(); - v1beta.MetricCompatibility = (function() { + v1beta.RunRealtimeReportResponse = (function() { /** - * Properties of a MetricCompatibility. + * Properties of a RunRealtimeReportResponse. * @memberof google.analytics.data.v1beta - * @interface IMetricCompatibility - * @property {google.analytics.data.v1beta.IMetricMetadata|null} [metricMetadata] MetricCompatibility metricMetadata - * @property {google.analytics.data.v1beta.Compatibility|null} [compatibility] MetricCompatibility compatibility + * @interface IRunRealtimeReportResponse + * @property {Array.|null} [dimensionHeaders] RunRealtimeReportResponse dimensionHeaders + * @property {Array.|null} [metricHeaders] RunRealtimeReportResponse metricHeaders + * @property {Array.|null} [rows] RunRealtimeReportResponse rows + * @property {Array.|null} [totals] RunRealtimeReportResponse totals + * @property {Array.|null} [maximums] RunRealtimeReportResponse maximums + * @property {Array.|null} [minimums] RunRealtimeReportResponse minimums + * @property {number|null} [rowCount] RunRealtimeReportResponse rowCount + * @property {google.analytics.data.v1beta.IPropertyQuota|null} [propertyQuota] RunRealtimeReportResponse propertyQuota + * @property {string|null} [kind] RunRealtimeReportResponse kind */ /** - * Constructs a new MetricCompatibility. + * Constructs a new RunRealtimeReportResponse. * @memberof google.analytics.data.v1beta - * @classdesc Represents a MetricCompatibility. - * @implements IMetricCompatibility + * @classdesc Represents a RunRealtimeReportResponse. + * @implements IRunRealtimeReportResponse * @constructor - * @param {google.analytics.data.v1beta.IMetricCompatibility=} [properties] Properties to set + * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse=} [properties] Properties to set */ - function MetricCompatibility(properties) { + function RunRealtimeReportResponse(properties) { + this.dimensionHeaders = []; + this.metricHeaders = []; + this.rows = []; + this.totals = []; + this.maximums = []; + this.minimums = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29758,113 +29750,197 @@ } /** - * MetricCompatibility metricMetadata. - * @member {google.analytics.data.v1beta.IMetricMetadata|null|undefined} metricMetadata - * @memberof google.analytics.data.v1beta.MetricCompatibility + * RunRealtimeReportResponse dimensionHeaders. + * @member {Array.} dimensionHeaders + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @instance */ - MetricCompatibility.prototype.metricMetadata = null; + RunRealtimeReportResponse.prototype.dimensionHeaders = $util.emptyArray; /** - * MetricCompatibility compatibility. - * @member {google.analytics.data.v1beta.Compatibility|null|undefined} compatibility - * @memberof google.analytics.data.v1beta.MetricCompatibility + * RunRealtimeReportResponse metricHeaders. + * @member {Array.} metricHeaders + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @instance */ - MetricCompatibility.prototype.compatibility = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + RunRealtimeReportResponse.prototype.metricHeaders = $util.emptyArray; /** - * MetricCompatibility _metricMetadata. - * @member {"metricMetadata"|undefined} _metricMetadata - * @memberof google.analytics.data.v1beta.MetricCompatibility + * RunRealtimeReportResponse rows. + * @member {Array.} rows + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @instance */ - Object.defineProperty(MetricCompatibility.prototype, "_metricMetadata", { - get: $util.oneOfGetter($oneOfFields = ["metricMetadata"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunRealtimeReportResponse.prototype.rows = $util.emptyArray; /** - * MetricCompatibility _compatibility. - * @member {"compatibility"|undefined} _compatibility - * @memberof google.analytics.data.v1beta.MetricCompatibility + * RunRealtimeReportResponse totals. + * @member {Array.} totals + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @instance */ - Object.defineProperty(MetricCompatibility.prototype, "_compatibility", { - get: $util.oneOfGetter($oneOfFields = ["compatibility"]), - set: $util.oneOfSetter($oneOfFields) - }); + RunRealtimeReportResponse.prototype.totals = $util.emptyArray; /** - * Creates a new MetricCompatibility instance using the specified properties. + * RunRealtimeReportResponse maximums. + * @member {Array.} maximums + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @instance + */ + RunRealtimeReportResponse.prototype.maximums = $util.emptyArray; + + /** + * RunRealtimeReportResponse minimums. + * @member {Array.} minimums + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @instance + */ + RunRealtimeReportResponse.prototype.minimums = $util.emptyArray; + + /** + * RunRealtimeReportResponse rowCount. + * @member {number} rowCount + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @instance + */ + RunRealtimeReportResponse.prototype.rowCount = 0; + + /** + * RunRealtimeReportResponse propertyQuota. + * @member {google.analytics.data.v1beta.IPropertyQuota|null|undefined} propertyQuota + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @instance + */ + RunRealtimeReportResponse.prototype.propertyQuota = null; + + /** + * RunRealtimeReportResponse kind. + * @member {string} kind + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse + * @instance + */ + RunRealtimeReportResponse.prototype.kind = ""; + + /** + * Creates a new RunRealtimeReportResponse instance using the specified properties. * @function create - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricCompatibility=} [properties] Properties to set - * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility instance + * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse instance */ - MetricCompatibility.create = function create(properties) { - return new MetricCompatibility(properties); + RunRealtimeReportResponse.create = function create(properties) { + return new RunRealtimeReportResponse(properties); }; /** - * Encodes the specified MetricCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * Encodes the specified RunRealtimeReportResponse message. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. * @function encode - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricCompatibility} message MetricCompatibility message or plain object to encode + * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricCompatibility.encode = function encode(message, writer) { + RunRealtimeReportResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.metricMetadata != null && Object.hasOwnProperty.call(message, "metricMetadata")) - $root.google.analytics.data.v1beta.MetricMetadata.encode(message.metricMetadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.compatibility != null && Object.hasOwnProperty.call(message, "compatibility")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.compatibility); + if (message.dimensionHeaders != null && message.dimensionHeaders.length) + for (var i = 0; i < message.dimensionHeaders.length; ++i) + $root.google.analytics.data.v1beta.DimensionHeader.encode(message.dimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricHeaders != null && message.metricHeaders.length) + for (var i = 0; i < message.metricHeaders.length; ++i) + $root.google.analytics.data.v1beta.MetricHeader.encode(message.metricHeaders[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.rows != null && message.rows.length) + for (var i = 0; i < message.rows.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.rows[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.totals != null && message.totals.length) + for (var i = 0; i < message.totals.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.totals[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.maximums != null && message.maximums.length) + for (var i = 0; i < message.maximums.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.maximums[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.minimums != null && message.minimums.length) + for (var i = 0; i < message.minimums.length; ++i) + $root.google.analytics.data.v1beta.Row.encode(message.minimums[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.rowCount); + if (message.propertyQuota != null && Object.hasOwnProperty.call(message, "propertyQuota")) + $root.google.analytics.data.v1beta.PropertyQuota.encode(message.propertyQuota, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.kind); return writer; }; /** - * Encodes the specified MetricCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * Encodes the specified RunRealtimeReportResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.RunRealtimeReportResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static - * @param {google.analytics.data.v1beta.IMetricCompatibility} message MetricCompatibility message or plain object to encode + * @param {google.analytics.data.v1beta.IRunRealtimeReportResponse} message RunRealtimeReportResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MetricCompatibility.encodeDelimited = function encodeDelimited(message, writer) { + RunRealtimeReportResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MetricCompatibility message from the specified reader or buffer. + * Decodes a RunRealtimeReportResponse message from the specified reader or buffer. * @function decode - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricCompatibility.decode = function decode(reader, length) { + RunRealtimeReportResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricCompatibility(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.RunRealtimeReportResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.decode(reader, reader.uint32()); + if (!(message.dimensionHeaders && message.dimensionHeaders.length)) + message.dimensionHeaders = []; + message.dimensionHeaders.push($root.google.analytics.data.v1beta.DimensionHeader.decode(reader, reader.uint32())); break; case 2: - message.compatibility = reader.int32(); + if (!(message.metricHeaders && message.metricHeaders.length)) + message.metricHeaders = []; + message.metricHeaders.push($root.google.analytics.data.v1beta.MetricHeader.decode(reader, reader.uint32())); + break; + case 3: + if (!(message.rows && message.rows.length)) + message.rows = []; + message.rows.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.totals && message.totals.length)) + message.totals = []; + message.totals.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 5: + if (!(message.maximums && message.maximums.length)) + message.maximums = []; + message.maximums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 6: + if (!(message.minimums && message.minimums.length)) + message.minimums = []; + message.minimums.push($root.google.analytics.data.v1beta.Row.decode(reader, reader.uint32())); + break; + case 7: + message.rowCount = reader.int32(); + break; + case 8: + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.decode(reader, reader.uint32()); + break; + case 9: + message.kind = reader.string(); break; default: reader.skipType(tag & 7); @@ -29875,8263 +29951,10933 @@ }; /** - * Decodes a MetricCompatibility message from the specified reader or buffer, length delimited. + * Decodes a RunRealtimeReportResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MetricCompatibility.decodeDelimited = function decodeDelimited(reader) { + RunRealtimeReportResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MetricCompatibility message. + * Verifies a RunRealtimeReportResponse message. * @function verify - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MetricCompatibility.verify = function verify(message) { + RunRealtimeReportResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.metricMetadata != null && message.hasOwnProperty("metricMetadata")) { - properties._metricMetadata = 1; - { - var error = $root.google.analytics.data.v1beta.MetricMetadata.verify(message.metricMetadata); + if (message.dimensionHeaders != null && message.hasOwnProperty("dimensionHeaders")) { + if (!Array.isArray(message.dimensionHeaders)) + return "dimensionHeaders: array expected"; + for (var i = 0; i < message.dimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionHeader.verify(message.dimensionHeaders[i]); if (error) - return "metricMetadata." + error; + return "dimensionHeaders." + error; } } - if (message.compatibility != null && message.hasOwnProperty("compatibility")) { - properties._compatibility = 1; - switch (message.compatibility) { - default: - return "compatibility: enum value expected"; - case 0: - case 1: - case 2: - break; + if (message.metricHeaders != null && message.hasOwnProperty("metricHeaders")) { + if (!Array.isArray(message.metricHeaders)) + return "metricHeaders: array expected"; + for (var i = 0; i < message.metricHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricHeader.verify(message.metricHeaders[i]); + if (error) + return "metricHeaders." + error; + } + } + if (message.rows != null && message.hasOwnProperty("rows")) { + if (!Array.isArray(message.rows)) + return "rows: array expected"; + for (var i = 0; i < message.rows.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.rows[i]); + if (error) + return "rows." + error; + } + } + if (message.totals != null && message.hasOwnProperty("totals")) { + if (!Array.isArray(message.totals)) + return "totals: array expected"; + for (var i = 0; i < message.totals.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.totals[i]); + if (error) + return "totals." + error; + } + } + if (message.maximums != null && message.hasOwnProperty("maximums")) { + if (!Array.isArray(message.maximums)) + return "maximums: array expected"; + for (var i = 0; i < message.maximums.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.maximums[i]); + if (error) + return "maximums." + error; + } + } + if (message.minimums != null && message.hasOwnProperty("minimums")) { + if (!Array.isArray(message.minimums)) + return "minimums: array expected"; + for (var i = 0; i < message.minimums.length; ++i) { + var error = $root.google.analytics.data.v1beta.Row.verify(message.minimums[i]); + if (error) + return "minimums." + error; } } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + if (!$util.isInteger(message.rowCount)) + return "rowCount: integer expected"; + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) { + var error = $root.google.analytics.data.v1beta.PropertyQuota.verify(message.propertyQuota); + if (error) + return "propertyQuota." + error; + } + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; return null; }; /** - * Creates a MetricCompatibility message from a plain object. Also converts values to their respective internal types. + * Creates a RunRealtimeReportResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static * @param {Object.} object Plain object - * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + * @returns {google.analytics.data.v1beta.RunRealtimeReportResponse} RunRealtimeReportResponse */ - MetricCompatibility.fromObject = function fromObject(object) { - if (object instanceof $root.google.analytics.data.v1beta.MetricCompatibility) + RunRealtimeReportResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.RunRealtimeReportResponse) return object; - var message = new $root.google.analytics.data.v1beta.MetricCompatibility(); - if (object.metricMetadata != null) { - if (typeof object.metricMetadata !== "object") - throw TypeError(".google.analytics.data.v1beta.MetricCompatibility.metricMetadata: object expected"); - message.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.fromObject(object.metricMetadata); + var message = new $root.google.analytics.data.v1beta.RunRealtimeReportResponse(); + if (object.dimensionHeaders) { + if (!Array.isArray(object.dimensionHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.dimensionHeaders: array expected"); + message.dimensionHeaders = []; + for (var i = 0; i < object.dimensionHeaders.length; ++i) { + if (typeof object.dimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.dimensionHeaders: object expected"); + message.dimensionHeaders[i] = $root.google.analytics.data.v1beta.DimensionHeader.fromObject(object.dimensionHeaders[i]); + } } - switch (object.compatibility) { - case "COMPATIBILITY_UNSPECIFIED": - case 0: - message.compatibility = 0; - break; - case "COMPATIBLE": - case 1: - message.compatibility = 1; - break; - case "INCOMPATIBLE": - case 2: - message.compatibility = 2; - break; + if (object.metricHeaders) { + if (!Array.isArray(object.metricHeaders)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.metricHeaders: array expected"); + message.metricHeaders = []; + for (var i = 0; i < object.metricHeaders.length; ++i) { + if (typeof object.metricHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.metricHeaders: object expected"); + message.metricHeaders[i] = $root.google.analytics.data.v1beta.MetricHeader.fromObject(object.metricHeaders[i]); + } + } + if (object.rows) { + if (!Array.isArray(object.rows)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.rows: array expected"); + message.rows = []; + for (var i = 0; i < object.rows.length; ++i) { + if (typeof object.rows[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.rows: object expected"); + message.rows[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.rows[i]); + } + } + if (object.totals) { + if (!Array.isArray(object.totals)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.totals: array expected"); + message.totals = []; + for (var i = 0; i < object.totals.length; ++i) { + if (typeof object.totals[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.totals: object expected"); + message.totals[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.totals[i]); + } + } + if (object.maximums) { + if (!Array.isArray(object.maximums)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.maximums: array expected"); + message.maximums = []; + for (var i = 0; i < object.maximums.length; ++i) { + if (typeof object.maximums[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.maximums: object expected"); + message.maximums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.maximums[i]); + } + } + if (object.minimums) { + if (!Array.isArray(object.minimums)) + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.minimums: array expected"); + message.minimums = []; + for (var i = 0; i < object.minimums.length; ++i) { + if (typeof object.minimums[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.minimums: object expected"); + message.minimums[i] = $root.google.analytics.data.v1beta.Row.fromObject(object.minimums[i]); + } + } + if (object.rowCount != null) + message.rowCount = object.rowCount | 0; + if (object.propertyQuota != null) { + if (typeof object.propertyQuota !== "object") + throw TypeError(".google.analytics.data.v1beta.RunRealtimeReportResponse.propertyQuota: object expected"); + message.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.fromObject(object.propertyQuota); } + if (object.kind != null) + message.kind = String(object.kind); return message; }; /** - * Creates a plain object from a MetricCompatibility message. Also converts values to other types if specified. + * Creates a plain object from a RunRealtimeReportResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @static - * @param {google.analytics.data.v1beta.MetricCompatibility} message MetricCompatibility + * @param {google.analytics.data.v1beta.RunRealtimeReportResponse} message RunRealtimeReportResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MetricCompatibility.toObject = function toObject(message, options) { + RunRealtimeReportResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.metricMetadata != null && message.hasOwnProperty("metricMetadata")) { - object.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.toObject(message.metricMetadata, options); - if (options.oneofs) - object._metricMetadata = "metricMetadata"; + if (options.arrays || options.defaults) { + object.dimensionHeaders = []; + object.metricHeaders = []; + object.rows = []; + object.totals = []; + object.maximums = []; + object.minimums = []; } - if (message.compatibility != null && message.hasOwnProperty("compatibility")) { - object.compatibility = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibility] : message.compatibility; - if (options.oneofs) - object._compatibility = "compatibility"; + if (options.defaults) { + object.rowCount = 0; + object.propertyQuota = null; + object.kind = ""; + } + if (message.dimensionHeaders && message.dimensionHeaders.length) { + object.dimensionHeaders = []; + for (var j = 0; j < message.dimensionHeaders.length; ++j) + object.dimensionHeaders[j] = $root.google.analytics.data.v1beta.DimensionHeader.toObject(message.dimensionHeaders[j], options); + } + if (message.metricHeaders && message.metricHeaders.length) { + object.metricHeaders = []; + for (var j = 0; j < message.metricHeaders.length; ++j) + object.metricHeaders[j] = $root.google.analytics.data.v1beta.MetricHeader.toObject(message.metricHeaders[j], options); + } + if (message.rows && message.rows.length) { + object.rows = []; + for (var j = 0; j < message.rows.length; ++j) + object.rows[j] = $root.google.analytics.data.v1beta.Row.toObject(message.rows[j], options); + } + if (message.totals && message.totals.length) { + object.totals = []; + for (var j = 0; j < message.totals.length; ++j) + object.totals[j] = $root.google.analytics.data.v1beta.Row.toObject(message.totals[j], options); + } + if (message.maximums && message.maximums.length) { + object.maximums = []; + for (var j = 0; j < message.maximums.length; ++j) + object.maximums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.maximums[j], options); + } + if (message.minimums && message.minimums.length) { + object.minimums = []; + for (var j = 0; j < message.minimums.length; ++j) + object.minimums[j] = $root.google.analytics.data.v1beta.Row.toObject(message.minimums[j], options); } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + object.rowCount = message.rowCount; + if (message.propertyQuota != null && message.hasOwnProperty("propertyQuota")) + object.propertyQuota = $root.google.analytics.data.v1beta.PropertyQuota.toObject(message.propertyQuota, options); + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; return object; }; /** - * Converts this MetricCompatibility to JSON. + * Converts this RunRealtimeReportResponse to JSON. * @function toJSON - * @memberof google.analytics.data.v1beta.MetricCompatibility + * @memberof google.analytics.data.v1beta.RunRealtimeReportResponse * @instance * @returns {Object.} JSON object */ - MetricCompatibility.prototype.toJSON = function toJSON() { + RunRealtimeReportResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return MetricCompatibility; - })(); - - /** - * MetricAggregation enum. - * @name google.analytics.data.v1beta.MetricAggregation - * @enum {number} - * @property {number} METRIC_AGGREGATION_UNSPECIFIED=0 METRIC_AGGREGATION_UNSPECIFIED value - * @property {number} TOTAL=1 TOTAL value - * @property {number} MINIMUM=5 MINIMUM value - * @property {number} MAXIMUM=6 MAXIMUM value - * @property {number} COUNT=4 COUNT value - */ - v1beta.MetricAggregation = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_AGGREGATION_UNSPECIFIED"] = 0; - values[valuesById[1] = "TOTAL"] = 1; - values[valuesById[5] = "MINIMUM"] = 5; - values[valuesById[6] = "MAXIMUM"] = 6; - values[valuesById[4] = "COUNT"] = 4; - return values; + return RunRealtimeReportResponse; })(); - /** - * MetricType enum. - * @name google.analytics.data.v1beta.MetricType - * @enum {number} - * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value - * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value - * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value - * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value - * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value - * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value - * @property {number} TYPE_HOURS=7 TYPE_HOURS value - * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value - * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value - * @property {number} TYPE_FEET=10 TYPE_FEET value - * @property {number} TYPE_MILES=11 TYPE_MILES value - * @property {number} TYPE_METERS=12 TYPE_METERS value - * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value - */ - v1beta.MetricType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "TYPE_INTEGER"] = 1; - values[valuesById[2] = "TYPE_FLOAT"] = 2; - values[valuesById[4] = "TYPE_SECONDS"] = 4; - values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; - values[valuesById[6] = "TYPE_MINUTES"] = 6; - values[valuesById[7] = "TYPE_HOURS"] = 7; - values[valuesById[8] = "TYPE_STANDARD"] = 8; - values[valuesById[9] = "TYPE_CURRENCY"] = 9; - values[valuesById[10] = "TYPE_FEET"] = 10; - values[valuesById[11] = "TYPE_MILES"] = 11; - values[valuesById[12] = "TYPE_METERS"] = 12; - values[valuesById[13] = "TYPE_KILOMETERS"] = 13; - return values; - })(); + v1beta.DateRange = (function() { - /** - * RestrictedMetricType enum. - * @name google.analytics.data.v1beta.RestrictedMetricType - * @enum {number} - * @property {number} RESTRICTED_METRIC_TYPE_UNSPECIFIED=0 RESTRICTED_METRIC_TYPE_UNSPECIFIED value - * @property {number} COST_DATA=1 COST_DATA value - * @property {number} REVENUE_DATA=2 REVENUE_DATA value - */ - v1beta.RestrictedMetricType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "RESTRICTED_METRIC_TYPE_UNSPECIFIED"] = 0; - values[valuesById[1] = "COST_DATA"] = 1; - values[valuesById[2] = "REVENUE_DATA"] = 2; - return values; - })(); + /** + * Properties of a DateRange. + * @memberof google.analytics.data.v1beta + * @interface IDateRange + * @property {string|null} [startDate] DateRange startDate + * @property {string|null} [endDate] DateRange endDate + * @property {string|null} [name] DateRange name + */ - /** - * Compatibility enum. - * @name google.analytics.data.v1beta.Compatibility - * @enum {number} - * @property {number} COMPATIBILITY_UNSPECIFIED=0 COMPATIBILITY_UNSPECIFIED value - * @property {number} COMPATIBLE=1 COMPATIBLE value - * @property {number} INCOMPATIBLE=2 INCOMPATIBLE value - */ - v1beta.Compatibility = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "COMPATIBILITY_UNSPECIFIED"] = 0; - values[valuesById[1] = "COMPATIBLE"] = 1; - values[valuesById[2] = "INCOMPATIBLE"] = 2; - return values; - })(); + /** + * Constructs a new DateRange. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DateRange. + * @implements IDateRange + * @constructor + * @param {google.analytics.data.v1beta.IDateRange=} [properties] Properties to set + */ + function DateRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - return v1beta; - })(); + /** + * DateRange startDate. + * @member {string} startDate + * @memberof google.analytics.data.v1beta.DateRange + * @instance + */ + DateRange.prototype.startDate = ""; - return data; - })(); + /** + * DateRange endDate. + * @member {string} endDate + * @memberof google.analytics.data.v1beta.DateRange + * @instance + */ + DateRange.prototype.endDate = ""; - return analytics; - })(); + /** + * DateRange name. + * @member {string} name + * @memberof google.analytics.data.v1beta.DateRange + * @instance + */ + DateRange.prototype.name = ""; - google.api = (function() { + /** + * Creates a new DateRange instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {google.analytics.data.v1beta.IDateRange=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DateRange} DateRange instance + */ + DateRange.create = function create(properties) { + return new DateRange(properties); + }; - /** - * Namespace api. - * @memberof google - * @namespace - */ - var api = {}; + /** + * Encodes the specified DateRange message. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {google.analytics.data.v1beta.IDateRange} message DateRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DateRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startDate != null && Object.hasOwnProperty.call(message, "startDate")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.startDate); + if (message.endDate != null && Object.hasOwnProperty.call(message, "endDate")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.endDate); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + return writer; + }; - api.Http = (function() { + /** + * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DateRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {google.analytics.data.v1beta.IDateRange} message DateRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DateRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of a Http. - * @memberof google.api - * @interface IHttp - * @property {Array.|null} [rules] Http rules - * @property {boolean|null} [fullyDecodeReservedExpansion] Http fullyDecodeReservedExpansion - */ + /** + * Decodes a DateRange message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DateRange} DateRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DateRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DateRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startDate = reader.string(); + break; + case 2: + message.endDate = reader.string(); + break; + case 3: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new Http. - * @memberof google.api - * @classdesc Represents a Http. - * @implements IHttp - * @constructor - * @param {google.api.IHttp=} [properties] Properties to set - */ - function Http(properties) { - this.rules = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes a DateRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DateRange} DateRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DateRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Http rules. - * @member {Array.} rules - * @memberof google.api.Http - * @instance - */ - Http.prototype.rules = $util.emptyArray; + /** + * Verifies a DateRange message. + * @function verify + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DateRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startDate != null && message.hasOwnProperty("startDate")) + if (!$util.isString(message.startDate)) + return "startDate: string expected"; + if (message.endDate != null && message.hasOwnProperty("endDate")) + if (!$util.isString(message.endDate)) + return "endDate: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; - /** - * Http fullyDecodeReservedExpansion. - * @member {boolean} fullyDecodeReservedExpansion - * @memberof google.api.Http - * @instance - */ - Http.prototype.fullyDecodeReservedExpansion = false; + /** + * Creates a DateRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DateRange} DateRange + */ + DateRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DateRange) + return object; + var message = new $root.google.analytics.data.v1beta.DateRange(); + if (object.startDate != null) + message.startDate = String(object.startDate); + if (object.endDate != null) + message.endDate = String(object.endDate); + if (object.name != null) + message.name = String(object.name); + return message; + }; - /** - * Creates a new Http instance using the specified properties. - * @function create - * @memberof google.api.Http - * @static - * @param {google.api.IHttp=} [properties] Properties to set - * @returns {google.api.Http} Http instance - */ - Http.create = function create(properties) { - return new Http(properties); - }; + /** + * Creates a plain object from a DateRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DateRange + * @static + * @param {google.analytics.data.v1beta.DateRange} message DateRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DateRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.startDate = ""; + object.endDate = ""; + object.name = ""; + } + if (message.startDate != null && message.hasOwnProperty("startDate")) + object.startDate = message.startDate; + if (message.endDate != null && message.hasOwnProperty("endDate")) + object.endDate = message.endDate; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; - /** - * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @function encode - * @memberof google.api.Http - * @static - * @param {google.api.IHttp} message Http message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Http.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.rules != null && message.rules.length) - for (var i = 0; i < message.rules.length; ++i) - $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.fullyDecodeReservedExpansion); - return writer; - }; + /** + * Converts this DateRange to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DateRange + * @instance + * @returns {Object.} JSON object + */ + DateRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @function encodeDelimited - * @memberof google.api.Http - * @static - * @param {google.api.IHttp} message Http message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Http.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + return DateRange; + })(); - /** - * Decodes a Http message from the specified reader or buffer. - * @function decode - * @memberof google.api.Http - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.api.Http} Http - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Http.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Http(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.rules && message.rules.length)) - message.rules = []; - message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); - break; - case 2: - message.fullyDecodeReservedExpansion = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + v1beta.MinuteRange = (function() { - /** - * Decodes a Http message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.api.Http - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.api.Http} Http - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Http.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a MinuteRange. + * @memberof google.analytics.data.v1beta + * @interface IMinuteRange + * @property {number|null} [startMinutesAgo] MinuteRange startMinutesAgo + * @property {number|null} [endMinutesAgo] MinuteRange endMinutesAgo + * @property {string|null} [name] MinuteRange name + */ - /** - * Verifies a Http message. - * @function verify - * @memberof google.api.Http - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Http.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.rules != null && message.hasOwnProperty("rules")) { - if (!Array.isArray(message.rules)) - return "rules: array expected"; - for (var i = 0; i < message.rules.length; ++i) { - var error = $root.google.api.HttpRule.verify(message.rules[i]); - if (error) - return "rules." + error; + /** + * Constructs a new MinuteRange. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a MinuteRange. + * @implements IMinuteRange + * @constructor + * @param {google.analytics.data.v1beta.IMinuteRange=} [properties] Properties to set + */ + function MinuteRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) - if (typeof message.fullyDecodeReservedExpansion !== "boolean") - return "fullyDecodeReservedExpansion: boolean expected"; - return null; - }; - /** - * Creates a Http message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.api.Http - * @static - * @param {Object.} object Plain object - * @returns {google.api.Http} Http - */ - Http.fromObject = function fromObject(object) { - if (object instanceof $root.google.api.Http) - return object; - var message = new $root.google.api.Http(); - if (object.rules) { - if (!Array.isArray(object.rules)) - throw TypeError(".google.api.Http.rules: array expected"); - message.rules = []; - for (var i = 0; i < object.rules.length; ++i) { - if (typeof object.rules[i] !== "object") - throw TypeError(".google.api.Http.rules: object expected"); - message.rules[i] = $root.google.api.HttpRule.fromObject(object.rules[i]); - } - } - if (object.fullyDecodeReservedExpansion != null) - message.fullyDecodeReservedExpansion = Boolean(object.fullyDecodeReservedExpansion); - return message; - }; + /** + * MinuteRange startMinutesAgo. + * @member {number|null|undefined} startMinutesAgo + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + */ + MinuteRange.prototype.startMinutesAgo = null; - /** - * Creates a plain object from a Http message. Also converts values to other types if specified. - * @function toObject - * @memberof google.api.Http - * @static - * @param {google.api.Http} message Http - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Http.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.rules = []; - if (options.defaults) - object.fullyDecodeReservedExpansion = false; - if (message.rules && message.rules.length) { - object.rules = []; - for (var j = 0; j < message.rules.length; ++j) - object.rules[j] = $root.google.api.HttpRule.toObject(message.rules[j], options); - } - if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) - object.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion; - return object; - }; + /** + * MinuteRange endMinutesAgo. + * @member {number|null|undefined} endMinutesAgo + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + */ + MinuteRange.prototype.endMinutesAgo = null; - /** - * Converts this Http to JSON. - * @function toJSON - * @memberof google.api.Http - * @instance - * @returns {Object.} JSON object - */ - Http.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * MinuteRange name. + * @member {string} name + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + */ + MinuteRange.prototype.name = ""; - return Http; - })(); + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - api.HttpRule = (function() { + /** + * MinuteRange _startMinutesAgo. + * @member {"startMinutesAgo"|undefined} _startMinutesAgo + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + */ + Object.defineProperty(MinuteRange.prototype, "_startMinutesAgo", { + get: $util.oneOfGetter($oneOfFields = ["startMinutesAgo"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Properties of a HttpRule. - * @memberof google.api - * @interface IHttpRule - * @property {string|null} [selector] HttpRule selector - * @property {string|null} [get] HttpRule get - * @property {string|null} [put] HttpRule put - * @property {string|null} [post] HttpRule post - * @property {string|null} ["delete"] HttpRule delete - * @property {string|null} [patch] HttpRule patch - * @property {google.api.ICustomHttpPattern|null} [custom] HttpRule custom - * @property {string|null} [body] HttpRule body - * @property {string|null} [responseBody] HttpRule responseBody - * @property {Array.|null} [additionalBindings] HttpRule additionalBindings - */ + /** + * MinuteRange _endMinutesAgo. + * @member {"endMinutesAgo"|undefined} _endMinutesAgo + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + */ + Object.defineProperty(MinuteRange.prototype, "_endMinutesAgo", { + get: $util.oneOfGetter($oneOfFields = ["endMinutesAgo"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Constructs a new HttpRule. - * @memberof google.api - * @classdesc Represents a HttpRule. - * @implements IHttpRule - * @constructor - * @param {google.api.IHttpRule=} [properties] Properties to set - */ - function HttpRule(properties) { - this.additionalBindings = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new MinuteRange instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {google.analytics.data.v1beta.IMinuteRange=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange instance + */ + MinuteRange.create = function create(properties) { + return new MinuteRange(properties); + }; - /** - * HttpRule selector. - * @member {string} selector - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.selector = ""; + /** + * Encodes the specified MinuteRange message. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {google.analytics.data.v1beta.IMinuteRange} message MinuteRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MinuteRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startMinutesAgo != null && Object.hasOwnProperty.call(message, "startMinutesAgo")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.startMinutesAgo); + if (message.endMinutesAgo != null && Object.hasOwnProperty.call(message, "endMinutesAgo")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.endMinutesAgo); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + return writer; + }; - /** - * HttpRule get. - * @member {string|null|undefined} get - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.get = null; + /** + * Encodes the specified MinuteRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MinuteRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {google.analytics.data.v1beta.IMinuteRange} message MinuteRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MinuteRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * HttpRule put. - * @member {string|null|undefined} put - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.put = null; + /** + * Decodes a MinuteRange message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MinuteRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MinuteRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startMinutesAgo = reader.int32(); + break; + case 2: + message.endMinutesAgo = reader.int32(); + break; + case 3: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * HttpRule post. - * @member {string|null|undefined} post - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.post = null; + /** + * Decodes a MinuteRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MinuteRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * HttpRule delete. - * @member {string|null|undefined} delete - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype["delete"] = null; + /** + * Verifies a MinuteRange message. + * @function verify + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MinuteRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.startMinutesAgo != null && message.hasOwnProperty("startMinutesAgo")) { + properties._startMinutesAgo = 1; + if (!$util.isInteger(message.startMinutesAgo)) + return "startMinutesAgo: integer expected"; + } + if (message.endMinutesAgo != null && message.hasOwnProperty("endMinutesAgo")) { + properties._endMinutesAgo = 1; + if (!$util.isInteger(message.endMinutesAgo)) + return "endMinutesAgo: integer expected"; + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; - /** - * HttpRule patch. - * @member {string|null|undefined} patch - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.patch = null; + /** + * Creates a MinuteRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.MinuteRange} MinuteRange + */ + MinuteRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.MinuteRange) + return object; + var message = new $root.google.analytics.data.v1beta.MinuteRange(); + if (object.startMinutesAgo != null) + message.startMinutesAgo = object.startMinutesAgo | 0; + if (object.endMinutesAgo != null) + message.endMinutesAgo = object.endMinutesAgo | 0; + if (object.name != null) + message.name = String(object.name); + return message; + }; - /** - * HttpRule custom. - * @member {google.api.ICustomHttpPattern|null|undefined} custom - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.custom = null; + /** + * Creates a plain object from a MinuteRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.MinuteRange + * @static + * @param {google.analytics.data.v1beta.MinuteRange} message MinuteRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MinuteRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.startMinutesAgo != null && message.hasOwnProperty("startMinutesAgo")) { + object.startMinutesAgo = message.startMinutesAgo; + if (options.oneofs) + object._startMinutesAgo = "startMinutesAgo"; + } + if (message.endMinutesAgo != null && message.hasOwnProperty("endMinutesAgo")) { + object.endMinutesAgo = message.endMinutesAgo; + if (options.oneofs) + object._endMinutesAgo = "endMinutesAgo"; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; - /** - * HttpRule body. - * @member {string} body - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.body = ""; + /** + * Converts this MinuteRange to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.MinuteRange + * @instance + * @returns {Object.} JSON object + */ + MinuteRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * HttpRule responseBody. - * @member {string} responseBody - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.responseBody = ""; + return MinuteRange; + })(); - /** - * HttpRule additionalBindings. - * @member {Array.} additionalBindings - * @memberof google.api.HttpRule - * @instance - */ - HttpRule.prototype.additionalBindings = $util.emptyArray; + v1beta.Dimension = (function() { - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Properties of a Dimension. + * @memberof google.analytics.data.v1beta + * @interface IDimension + * @property {string|null} [name] Dimension name + * @property {google.analytics.data.v1beta.IDimensionExpression|null} [dimensionExpression] Dimension dimensionExpression + */ - /** - * HttpRule pattern. - * @member {"get"|"put"|"post"|"delete"|"patch"|"custom"|undefined} pattern - * @memberof google.api.HttpRule - * @instance - */ - Object.defineProperty(HttpRule.prototype, "pattern", { - get: $util.oneOfGetter($oneOfFields = ["get", "put", "post", "delete", "patch", "custom"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Constructs a new Dimension. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Dimension. + * @implements IDimension + * @constructor + * @param {google.analytics.data.v1beta.IDimension=} [properties] Properties to set + */ + function Dimension(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new HttpRule instance using the specified properties. - * @function create - * @memberof google.api.HttpRule - * @static - * @param {google.api.IHttpRule=} [properties] Properties to set - * @returns {google.api.HttpRule} HttpRule instance - */ - HttpRule.create = function create(properties) { - return new HttpRule(properties); - }; + /** + * Dimension name. + * @member {string} name + * @memberof google.analytics.data.v1beta.Dimension + * @instance + */ + Dimension.prototype.name = ""; - /** - * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @function encode - * @memberof google.api.HttpRule - * @static - * @param {google.api.IHttpRule} message HttpRule message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - HttpRule.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); - if (message.get != null && Object.hasOwnProperty.call(message, "get")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.get); - if (message.put != null && Object.hasOwnProperty.call(message, "put")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.put); - if (message.post != null && Object.hasOwnProperty.call(message, "post")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.post); - if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message["delete"]); - if (message.patch != null && Object.hasOwnProperty.call(message, "patch")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.patch); - if (message.body != null && Object.hasOwnProperty.call(message, "body")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.body); - if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) - $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.additionalBindings != null && message.additionalBindings.length) - for (var i = 0; i < message.additionalBindings.length; ++i) - $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); - if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) - writer.uint32(/* id 12, wireType 2 =*/98).string(message.responseBody); - return writer; - }; + /** + * Dimension dimensionExpression. + * @member {google.analytics.data.v1beta.IDimensionExpression|null|undefined} dimensionExpression + * @memberof google.analytics.data.v1beta.Dimension + * @instance + */ + Dimension.prototype.dimensionExpression = null; - /** - * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @function encodeDelimited - * @memberof google.api.HttpRule - * @static - * @param {google.api.IHttpRule} message HttpRule message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - HttpRule.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new Dimension instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {google.analytics.data.v1beta.IDimension=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Dimension} Dimension instance + */ + Dimension.create = function create(properties) { + return new Dimension(properties); + }; - /** - * Decodes a HttpRule message from the specified reader or buffer. - * @function decode - * @memberof google.api.HttpRule - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.api.HttpRule} HttpRule - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - HttpRule.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.HttpRule(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.selector = reader.string(); - break; - case 2: - message.get = reader.string(); - break; - case 3: - message.put = reader.string(); - break; - case 4: - message.post = reader.string(); - break; - case 5: - message["delete"] = reader.string(); - break; - case 6: - message.patch = reader.string(); - break; - case 8: - message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); - break; - case 7: - message.body = reader.string(); - break; - case 12: - message.responseBody = reader.string(); - break; - case 11: - if (!(message.additionalBindings && message.additionalBindings.length)) - message.additionalBindings = []; - message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified Dimension message. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {google.analytics.data.v1beta.IDimension} message Dimension message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Dimension.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimensionExpression != null && Object.hasOwnProperty.call(message, "dimensionExpression")) + $root.google.analytics.data.v1beta.DimensionExpression.encode(message.dimensionExpression, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Decodes a HttpRule message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.api.HttpRule - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.api.HttpRule} HttpRule - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - HttpRule.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified Dimension message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Dimension.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {google.analytics.data.v1beta.IDimension} message Dimension message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Dimension.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies a HttpRule message. - * @function verify - * @memberof google.api.HttpRule - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - HttpRule.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.selector != null && message.hasOwnProperty("selector")) - if (!$util.isString(message.selector)) - return "selector: string expected"; - if (message.get != null && message.hasOwnProperty("get")) { - properties.pattern = 1; - if (!$util.isString(message.get)) - return "get: string expected"; - } - if (message.put != null && message.hasOwnProperty("put")) { - if (properties.pattern === 1) - return "pattern: multiple values"; - properties.pattern = 1; - if (!$util.isString(message.put)) - return "put: string expected"; - } - if (message.post != null && message.hasOwnProperty("post")) { - if (properties.pattern === 1) - return "pattern: multiple values"; - properties.pattern = 1; - if (!$util.isString(message.post)) - return "post: string expected"; - } - if (message["delete"] != null && message.hasOwnProperty("delete")) { - if (properties.pattern === 1) - return "pattern: multiple values"; - properties.pattern = 1; - if (!$util.isString(message["delete"])) - return "delete: string expected"; - } - if (message.patch != null && message.hasOwnProperty("patch")) { - if (properties.pattern === 1) - return "pattern: multiple values"; - properties.pattern = 1; - if (!$util.isString(message.patch)) - return "patch: string expected"; - } - if (message.custom != null && message.hasOwnProperty("custom")) { - if (properties.pattern === 1) - return "pattern: multiple values"; - properties.pattern = 1; - { - var error = $root.google.api.CustomHttpPattern.verify(message.custom); - if (error) - return "custom." + error; - } - } - if (message.body != null && message.hasOwnProperty("body")) - if (!$util.isString(message.body)) - return "body: string expected"; - if (message.responseBody != null && message.hasOwnProperty("responseBody")) - if (!$util.isString(message.responseBody)) - return "responseBody: string expected"; - if (message.additionalBindings != null && message.hasOwnProperty("additionalBindings")) { - if (!Array.isArray(message.additionalBindings)) - return "additionalBindings: array expected"; - for (var i = 0; i < message.additionalBindings.length; ++i) { - var error = $root.google.api.HttpRule.verify(message.additionalBindings[i]); - if (error) - return "additionalBindings." + error; - } - } - return null; - }; - - /** - * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.api.HttpRule - * @static - * @param {Object.} object Plain object - * @returns {google.api.HttpRule} HttpRule - */ - HttpRule.fromObject = function fromObject(object) { - if (object instanceof $root.google.api.HttpRule) - return object; - var message = new $root.google.api.HttpRule(); - if (object.selector != null) - message.selector = String(object.selector); - if (object.get != null) - message.get = String(object.get); - if (object.put != null) - message.put = String(object.put); - if (object.post != null) - message.post = String(object.post); - if (object["delete"] != null) - message["delete"] = String(object["delete"]); - if (object.patch != null) - message.patch = String(object.patch); - if (object.custom != null) { - if (typeof object.custom !== "object") - throw TypeError(".google.api.HttpRule.custom: object expected"); - message.custom = $root.google.api.CustomHttpPattern.fromObject(object.custom); - } - if (object.body != null) - message.body = String(object.body); - if (object.responseBody != null) - message.responseBody = String(object.responseBody); - if (object.additionalBindings) { - if (!Array.isArray(object.additionalBindings)) - throw TypeError(".google.api.HttpRule.additionalBindings: array expected"); - message.additionalBindings = []; - for (var i = 0; i < object.additionalBindings.length; ++i) { - if (typeof object.additionalBindings[i] !== "object") - throw TypeError(".google.api.HttpRule.additionalBindings: object expected"); - message.additionalBindings[i] = $root.google.api.HttpRule.fromObject(object.additionalBindings[i]); - } - } - return message; - }; + /** + * Decodes a Dimension message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Dimension} Dimension + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Dimension.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Dimension(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a plain object from a HttpRule message. Also converts values to other types if specified. - * @function toObject - * @memberof google.api.HttpRule - * @static - * @param {google.api.HttpRule} message HttpRule - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - HttpRule.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.additionalBindings = []; - if (options.defaults) { - object.selector = ""; - object.body = ""; - object.responseBody = ""; - } - if (message.selector != null && message.hasOwnProperty("selector")) - object.selector = message.selector; - if (message.get != null && message.hasOwnProperty("get")) { - object.get = message.get; - if (options.oneofs) - object.pattern = "get"; - } - if (message.put != null && message.hasOwnProperty("put")) { - object.put = message.put; - if (options.oneofs) - object.pattern = "put"; - } - if (message.post != null && message.hasOwnProperty("post")) { - object.post = message.post; - if (options.oneofs) - object.pattern = "post"; - } - if (message["delete"] != null && message.hasOwnProperty("delete")) { - object["delete"] = message["delete"]; - if (options.oneofs) - object.pattern = "delete"; - } - if (message.patch != null && message.hasOwnProperty("patch")) { - object.patch = message.patch; - if (options.oneofs) - object.pattern = "patch"; - } - if (message.body != null && message.hasOwnProperty("body")) - object.body = message.body; - if (message.custom != null && message.hasOwnProperty("custom")) { - object.custom = $root.google.api.CustomHttpPattern.toObject(message.custom, options); - if (options.oneofs) - object.pattern = "custom"; - } - if (message.additionalBindings && message.additionalBindings.length) { - object.additionalBindings = []; - for (var j = 0; j < message.additionalBindings.length; ++j) - object.additionalBindings[j] = $root.google.api.HttpRule.toObject(message.additionalBindings[j], options); - } - if (message.responseBody != null && message.hasOwnProperty("responseBody")) - object.responseBody = message.responseBody; - return object; - }; + /** + * Decodes a Dimension message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Dimension} Dimension + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Dimension.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Converts this HttpRule to JSON. - * @function toJSON - * @memberof google.api.HttpRule - * @instance - * @returns {Object.} JSON object - */ - HttpRule.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Verifies a Dimension message. + * @function verify + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Dimension.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) { + var error = $root.google.analytics.data.v1beta.DimensionExpression.verify(message.dimensionExpression); + if (error) + return "dimensionExpression." + error; + } + return null; + }; - return HttpRule; - })(); + /** + * Creates a Dimension message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Dimension} Dimension + */ + Dimension.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Dimension) + return object; + var message = new $root.google.analytics.data.v1beta.Dimension(); + if (object.name != null) + message.name = String(object.name); + if (object.dimensionExpression != null) { + if (typeof object.dimensionExpression !== "object") + throw TypeError(".google.analytics.data.v1beta.Dimension.dimensionExpression: object expected"); + message.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.fromObject(object.dimensionExpression); + } + return message; + }; - api.CustomHttpPattern = (function() { + /** + * Creates a plain object from a Dimension message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Dimension + * @static + * @param {google.analytics.data.v1beta.Dimension} message Dimension + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Dimension.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.dimensionExpression = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.dimensionExpression != null && message.hasOwnProperty("dimensionExpression")) + object.dimensionExpression = $root.google.analytics.data.v1beta.DimensionExpression.toObject(message.dimensionExpression, options); + return object; + }; - /** - * Properties of a CustomHttpPattern. - * @memberof google.api - * @interface ICustomHttpPattern - * @property {string|null} [kind] CustomHttpPattern kind - * @property {string|null} [path] CustomHttpPattern path - */ + /** + * Converts this Dimension to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Dimension + * @instance + * @returns {Object.} JSON object + */ + Dimension.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Constructs a new CustomHttpPattern. - * @memberof google.api - * @classdesc Represents a CustomHttpPattern. - * @implements ICustomHttpPattern - * @constructor - * @param {google.api.ICustomHttpPattern=} [properties] Properties to set - */ - function CustomHttpPattern(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + return Dimension; + })(); - /** - * CustomHttpPattern kind. - * @member {string} kind - * @memberof google.api.CustomHttpPattern - * @instance - */ - CustomHttpPattern.prototype.kind = ""; + v1beta.DimensionExpression = (function() { - /** - * CustomHttpPattern path. - * @member {string} path - * @memberof google.api.CustomHttpPattern - * @instance - */ - CustomHttpPattern.prototype.path = ""; + /** + * Properties of a DimensionExpression. + * @memberof google.analytics.data.v1beta + * @interface IDimensionExpression + * @property {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null} [lowerCase] DimensionExpression lowerCase + * @property {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null} [upperCase] DimensionExpression upperCase + * @property {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null} [concatenate] DimensionExpression concatenate + */ - /** - * Creates a new CustomHttpPattern instance using the specified properties. - * @function create - * @memberof google.api.CustomHttpPattern - * @static - * @param {google.api.ICustomHttpPattern=} [properties] Properties to set - * @returns {google.api.CustomHttpPattern} CustomHttpPattern instance - */ - CustomHttpPattern.create = function create(properties) { - return new CustomHttpPattern(properties); - }; + /** + * Constructs a new DimensionExpression. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DimensionExpression. + * @implements IDimensionExpression + * @constructor + * @param {google.analytics.data.v1beta.IDimensionExpression=} [properties] Properties to set + */ + function DimensionExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @function encode - * @memberof google.api.CustomHttpPattern - * @static - * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CustomHttpPattern.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); - if (message.path != null && Object.hasOwnProperty.call(message, "path")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.path); - return writer; - }; + /** + * DimensionExpression lowerCase. + * @member {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null|undefined} lowerCase + * @memberof google.analytics.data.v1beta.DimensionExpression + * @instance + */ + DimensionExpression.prototype.lowerCase = null; - /** - * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @function encodeDelimited - * @memberof google.api.CustomHttpPattern - * @static - * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CustomHttpPattern.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * DimensionExpression upperCase. + * @member {google.analytics.data.v1beta.DimensionExpression.ICaseExpression|null|undefined} upperCase + * @memberof google.analytics.data.v1beta.DimensionExpression + * @instance + */ + DimensionExpression.prototype.upperCase = null; - /** - * Decodes a CustomHttpPattern message from the specified reader or buffer. - * @function decode - * @memberof google.api.CustomHttpPattern - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.api.CustomHttpPattern} CustomHttpPattern - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CustomHttpPattern.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CustomHttpPattern(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.kind = reader.string(); - break; - case 2: - message.path = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * DimensionExpression concatenate. + * @member {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression|null|undefined} concatenate + * @memberof google.analytics.data.v1beta.DimensionExpression + * @instance + */ + DimensionExpression.prototype.concatenate = null; - /** - * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.api.CustomHttpPattern - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.api.CustomHttpPattern} CustomHttpPattern - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CustomHttpPattern.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Verifies a CustomHttpPattern message. - * @function verify - * @memberof google.api.CustomHttpPattern - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CustomHttpPattern.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.kind != null && message.hasOwnProperty("kind")) - if (!$util.isString(message.kind)) - return "kind: string expected"; - if (message.path != null && message.hasOwnProperty("path")) - if (!$util.isString(message.path)) - return "path: string expected"; - return null; - }; + /** + * DimensionExpression oneExpression. + * @member {"lowerCase"|"upperCase"|"concatenate"|undefined} oneExpression + * @memberof google.analytics.data.v1beta.DimensionExpression + * @instance + */ + Object.defineProperty(DimensionExpression.prototype, "oneExpression", { + get: $util.oneOfGetter($oneOfFields = ["lowerCase", "upperCase", "concatenate"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.api.CustomHttpPattern - * @static - * @param {Object.} object Plain object - * @returns {google.api.CustomHttpPattern} CustomHttpPattern - */ - CustomHttpPattern.fromObject = function fromObject(object) { - if (object instanceof $root.google.api.CustomHttpPattern) - return object; - var message = new $root.google.api.CustomHttpPattern(); - if (object.kind != null) - message.kind = String(object.kind); - if (object.path != null) - message.path = String(object.path); - return message; - }; + /** + * Creates a new DimensionExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {google.analytics.data.v1beta.IDimensionExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression instance + */ + DimensionExpression.create = function create(properties) { + return new DimensionExpression(properties); + }; - /** - * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. - * @function toObject - * @memberof google.api.CustomHttpPattern - * @static - * @param {google.api.CustomHttpPattern} message CustomHttpPattern - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CustomHttpPattern.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.kind = ""; - object.path = ""; - } - if (message.kind != null && message.hasOwnProperty("kind")) - object.kind = message.kind; - if (message.path != null && message.hasOwnProperty("path")) - object.path = message.path; - return object; - }; + /** + * Encodes the specified DimensionExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {google.analytics.data.v1beta.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.lowerCase != null && Object.hasOwnProperty.call(message, "lowerCase")) + $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.encode(message.lowerCase, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.upperCase != null && Object.hasOwnProperty.call(message, "upperCase")) + $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.encode(message.upperCase, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.concatenate != null && Object.hasOwnProperty.call(message, "concatenate")) + $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.encode(message.concatenate, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + return writer; + }; - /** - * Converts this CustomHttpPattern to JSON. - * @function toJSON - * @memberof google.api.CustomHttpPattern - * @instance - * @returns {Object.} JSON object - */ - CustomHttpPattern.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified DimensionExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {google.analytics.data.v1beta.IDimensionExpression} message DimensionExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - return CustomHttpPattern; - })(); + /** + * Decodes a DimensionExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 4: + message.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + break; + case 5: + message.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.decode(reader, reader.uint32()); + break; + case 6: + message.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * FieldBehavior enum. - * @name google.api.FieldBehavior - * @enum {number} - * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value - * @property {number} OPTIONAL=1 OPTIONAL value - * @property {number} REQUIRED=2 REQUIRED value - * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value - * @property {number} INPUT_ONLY=4 INPUT_ONLY value - * @property {number} IMMUTABLE=5 IMMUTABLE value - * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value - * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value - */ - api.FieldBehavior = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0; - values[valuesById[1] = "OPTIONAL"] = 1; - values[valuesById[2] = "REQUIRED"] = 2; - values[valuesById[3] = "OUTPUT_ONLY"] = 3; - values[valuesById[4] = "INPUT_ONLY"] = 4; - values[valuesById[5] = "IMMUTABLE"] = 5; - values[valuesById[6] = "UNORDERED_LIST"] = 6; - values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7; - return values; - })(); + /** + * Decodes a DimensionExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - api.ResourceDescriptor = (function() { + /** + * Verifies a DimensionExpression message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify(message.lowerCase); + if (error) + return "lowerCase." + error; + } + } + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify(message.upperCase); + if (error) + return "upperCase." + error; + } + } + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + if (properties.oneExpression === 1) + return "oneExpression: multiple values"; + properties.oneExpression = 1; + { + var error = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify(message.concatenate); + if (error) + return "concatenate." + error; + } + } + return null; + }; - /** - * Properties of a ResourceDescriptor. - * @memberof google.api - * @interface IResourceDescriptor - * @property {string|null} [type] ResourceDescriptor type - * @property {Array.|null} [pattern] ResourceDescriptor pattern - * @property {string|null} [nameField] ResourceDescriptor nameField - * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history - * @property {string|null} [plural] ResourceDescriptor plural - * @property {string|null} [singular] ResourceDescriptor singular - * @property {Array.|null} [style] ResourceDescriptor style - */ + /** + * Creates a DimensionExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionExpression} DimensionExpression + */ + DimensionExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionExpression(); + if (object.lowerCase != null) { + if (typeof object.lowerCase !== "object") + throw TypeError(".google.analytics.data.v1beta.DimensionExpression.lowerCase: object expected"); + message.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.fromObject(object.lowerCase); + } + if (object.upperCase != null) { + if (typeof object.upperCase !== "object") + throw TypeError(".google.analytics.data.v1beta.DimensionExpression.upperCase: object expected"); + message.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.fromObject(object.upperCase); + } + if (object.concatenate != null) { + if (typeof object.concatenate !== "object") + throw TypeError(".google.analytics.data.v1beta.DimensionExpression.concatenate: object expected"); + message.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.fromObject(object.concatenate); + } + return message; + }; - /** - * Constructs a new ResourceDescriptor. - * @memberof google.api - * @classdesc Represents a ResourceDescriptor. - * @implements IResourceDescriptor - * @constructor - * @param {google.api.IResourceDescriptor=} [properties] Properties to set - */ - function ResourceDescriptor(properties) { - this.pattern = []; - this.style = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a plain object from a DimensionExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression} message DimensionExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.lowerCase != null && message.hasOwnProperty("lowerCase")) { + object.lowerCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.toObject(message.lowerCase, options); + if (options.oneofs) + object.oneExpression = "lowerCase"; + } + if (message.upperCase != null && message.hasOwnProperty("upperCase")) { + object.upperCase = $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression.toObject(message.upperCase, options); + if (options.oneofs) + object.oneExpression = "upperCase"; + } + if (message.concatenate != null && message.hasOwnProperty("concatenate")) { + object.concatenate = $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.toObject(message.concatenate, options); + if (options.oneofs) + object.oneExpression = "concatenate"; + } + return object; + }; - /** - * ResourceDescriptor type. - * @member {string} type - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.type = ""; + /** + * Converts this DimensionExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionExpression + * @instance + * @returns {Object.} JSON object + */ + DimensionExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * ResourceDescriptor pattern. - * @member {Array.} pattern - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.pattern = $util.emptyArray; + DimensionExpression.CaseExpression = (function() { - /** - * ResourceDescriptor nameField. - * @member {string} nameField - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.nameField = ""; + /** + * Properties of a CaseExpression. + * @memberof google.analytics.data.v1beta.DimensionExpression + * @interface ICaseExpression + * @property {string|null} [dimensionName] CaseExpression dimensionName + */ - /** - * ResourceDescriptor history. - * @member {google.api.ResourceDescriptor.History} history - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.history = 0; + /** + * Constructs a new CaseExpression. + * @memberof google.analytics.data.v1beta.DimensionExpression + * @classdesc Represents a CaseExpression. + * @implements ICaseExpression + * @constructor + * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression=} [properties] Properties to set + */ + function CaseExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * ResourceDescriptor plural. - * @member {string} plural - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.plural = ""; + /** + * CaseExpression dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @instance + */ + CaseExpression.prototype.dimensionName = ""; - /** - * ResourceDescriptor singular. - * @member {string} singular - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.singular = ""; + /** + * Creates a new CaseExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression instance + */ + CaseExpression.create = function create(properties) { + return new CaseExpression(properties); + }; - /** - * ResourceDescriptor style. - * @member {Array.} style - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.style = $util.emptyArray; + /** + * Encodes the specified CaseExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + return writer; + }; - /** - * Creates a new ResourceDescriptor instance using the specified properties. - * @function create - * @memberof google.api.ResourceDescriptor - * @static - * @param {google.api.IResourceDescriptor=} [properties] Properties to set - * @returns {google.api.ResourceDescriptor} ResourceDescriptor instance - */ - ResourceDescriptor.create = function create(properties) { - return new ResourceDescriptor(properties); - }; + /** + * Encodes the specified CaseExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.CaseExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.ICaseExpression} message CaseExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CaseExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @function encode - * @memberof google.api.ResourceDescriptor - * @static - * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ResourceDescriptor.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); - if (message.pattern != null && message.pattern.length) - for (var i = 0; i < message.pattern.length; ++i) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.pattern[i]); - if (message.nameField != null && Object.hasOwnProperty.call(message, "nameField")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.nameField); - if (message.history != null && Object.hasOwnProperty.call(message, "history")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.history); - if (message.plural != null && Object.hasOwnProperty.call(message, "plural")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.plural); - if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.singular); - if (message.style != null && message.style.length) { - writer.uint32(/* id 10, wireType 2 =*/82).fork(); - for (var i = 0; i < message.style.length; ++i) - writer.int32(message.style[i]); - writer.ldelim(); - } - return writer; - }; + /** + * Decodes a CaseExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dimensionName = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @function encodeDelimited - * @memberof google.api.ResourceDescriptor - * @static - * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ResourceDescriptor.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Decodes a CaseExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CaseExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Decodes a ResourceDescriptor message from the specified reader or buffer. - * @function decode - * @memberof google.api.ResourceDescriptor - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.api.ResourceDescriptor} ResourceDescriptor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ResourceDescriptor.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceDescriptor(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - case 2: - if (!(message.pattern && message.pattern.length)) - message.pattern = []; - message.pattern.push(reader.string()); - break; - case 3: - message.nameField = reader.string(); - break; - case 4: - message.history = reader.int32(); - break; - case 5: - message.plural = reader.string(); - break; - case 6: - message.singular = reader.string(); - break; - case 10: - if (!(message.style && message.style.length)) - message.style = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.style.push(reader.int32()); - } else - message.style.push(reader.int32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.api.ResourceDescriptor - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.api.ResourceDescriptor} ResourceDescriptor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ResourceDescriptor.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Verifies a CaseExpression message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CaseExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + return null; + }; - /** - * Verifies a ResourceDescriptor message. - * @function verify - * @memberof google.api.ResourceDescriptor - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ResourceDescriptor.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) - if (!$util.isString(message.type)) - return "type: string expected"; - if (message.pattern != null && message.hasOwnProperty("pattern")) { - if (!Array.isArray(message.pattern)) - return "pattern: array expected"; - for (var i = 0; i < message.pattern.length; ++i) - if (!$util.isString(message.pattern[i])) - return "pattern: string[] expected"; - } - if (message.nameField != null && message.hasOwnProperty("nameField")) - if (!$util.isString(message.nameField)) - return "nameField: string expected"; - if (message.history != null && message.hasOwnProperty("history")) - switch (message.history) { - default: - return "history: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.plural != null && message.hasOwnProperty("plural")) - if (!$util.isString(message.plural)) - return "plural: string expected"; - if (message.singular != null && message.hasOwnProperty("singular")) - if (!$util.isString(message.singular)) - return "singular: string expected"; - if (message.style != null && message.hasOwnProperty("style")) { - if (!Array.isArray(message.style)) - return "style: array expected"; - for (var i = 0; i < message.style.length; ++i) - switch (message.style[i]) { - default: - return "style: enum value[] expected"; - case 0: - case 1: - break; - } - } - return null; - }; + /** + * Creates a CaseExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionExpression.CaseExpression} CaseExpression + */ + CaseExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionExpression.CaseExpression(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + return message; + }; - /** - * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.api.ResourceDescriptor - * @static - * @param {Object.} object Plain object - * @returns {google.api.ResourceDescriptor} ResourceDescriptor - */ - ResourceDescriptor.fromObject = function fromObject(object) { - if (object instanceof $root.google.api.ResourceDescriptor) - return object; - var message = new $root.google.api.ResourceDescriptor(); - if (object.type != null) - message.type = String(object.type); - if (object.pattern) { - if (!Array.isArray(object.pattern)) - throw TypeError(".google.api.ResourceDescriptor.pattern: array expected"); - message.pattern = []; - for (var i = 0; i < object.pattern.length; ++i) - message.pattern[i] = String(object.pattern[i]); - } - if (object.nameField != null) - message.nameField = String(object.nameField); - switch (object.history) { - case "HISTORY_UNSPECIFIED": - case 0: - message.history = 0; - break; - case "ORIGINALLY_SINGLE_PATTERN": - case 1: - message.history = 1; - break; - case "FUTURE_MULTI_PATTERN": - case 2: - message.history = 2; - break; - } - if (object.plural != null) - message.plural = String(object.plural); - if (object.singular != null) - message.singular = String(object.singular); - if (object.style) { - if (!Array.isArray(object.style)) - throw TypeError(".google.api.ResourceDescriptor.style: array expected"); - message.style = []; - for (var i = 0; i < object.style.length; ++i) - switch (object.style[i]) { - default: - case "STYLE_UNSPECIFIED": - case 0: - message.style[i] = 0; - break; - case "DECLARATIVE_FRIENDLY": - case 1: - message.style[i] = 1; - break; - } - } - return message; - }; + /** + * Creates a plain object from a CaseExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.CaseExpression} message CaseExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CaseExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.dimensionName = ""; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; + return object; + }; - /** - * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. - * @function toObject - * @memberof google.api.ResourceDescriptor - * @static - * @param {google.api.ResourceDescriptor} message ResourceDescriptor - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ResourceDescriptor.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.pattern = []; - object.style = []; - } - if (options.defaults) { - object.type = ""; - object.nameField = ""; - object.history = options.enums === String ? "HISTORY_UNSPECIFIED" : 0; - object.plural = ""; - object.singular = ""; - } - if (message.type != null && message.hasOwnProperty("type")) - object.type = message.type; - if (message.pattern && message.pattern.length) { - object.pattern = []; - for (var j = 0; j < message.pattern.length; ++j) - object.pattern[j] = message.pattern[j]; - } - if (message.nameField != null && message.hasOwnProperty("nameField")) - object.nameField = message.nameField; - if (message.history != null && message.hasOwnProperty("history")) - object.history = options.enums === String ? $root.google.api.ResourceDescriptor.History[message.history] : message.history; - if (message.plural != null && message.hasOwnProperty("plural")) - object.plural = message.plural; - if (message.singular != null && message.hasOwnProperty("singular")) - object.singular = message.singular; - if (message.style && message.style.length) { - object.style = []; - for (var j = 0; j < message.style.length; ++j) - object.style[j] = options.enums === String ? $root.google.api.ResourceDescriptor.Style[message.style[j]] : message.style[j]; - } - return object; - }; + /** + * Converts this CaseExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionExpression.CaseExpression + * @instance + * @returns {Object.} JSON object + */ + CaseExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this ResourceDescriptor to JSON. - * @function toJSON - * @memberof google.api.ResourceDescriptor - * @instance - * @returns {Object.} JSON object - */ - ResourceDescriptor.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return CaseExpression; + })(); - /** - * History enum. - * @name google.api.ResourceDescriptor.History - * @enum {number} - * @property {number} HISTORY_UNSPECIFIED=0 HISTORY_UNSPECIFIED value - * @property {number} ORIGINALLY_SINGLE_PATTERN=1 ORIGINALLY_SINGLE_PATTERN value - * @property {number} FUTURE_MULTI_PATTERN=2 FUTURE_MULTI_PATTERN value - */ - ResourceDescriptor.History = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "HISTORY_UNSPECIFIED"] = 0; - values[valuesById[1] = "ORIGINALLY_SINGLE_PATTERN"] = 1; - values[valuesById[2] = "FUTURE_MULTI_PATTERN"] = 2; - return values; - })(); + DimensionExpression.ConcatenateExpression = (function() { - /** - * Style enum. - * @name google.api.ResourceDescriptor.Style - * @enum {number} - * @property {number} STYLE_UNSPECIFIED=0 STYLE_UNSPECIFIED value - * @property {number} DECLARATIVE_FRIENDLY=1 DECLARATIVE_FRIENDLY value - */ - ResourceDescriptor.Style = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "STYLE_UNSPECIFIED"] = 0; - values[valuesById[1] = "DECLARATIVE_FRIENDLY"] = 1; - return values; - })(); + /** + * Properties of a ConcatenateExpression. + * @memberof google.analytics.data.v1beta.DimensionExpression + * @interface IConcatenateExpression + * @property {Array.|null} [dimensionNames] ConcatenateExpression dimensionNames + * @property {string|null} [delimiter] ConcatenateExpression delimiter + */ - return ResourceDescriptor; - })(); + /** + * Constructs a new ConcatenateExpression. + * @memberof google.analytics.data.v1beta.DimensionExpression + * @classdesc Represents a ConcatenateExpression. + * @implements IConcatenateExpression + * @constructor + * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + */ + function ConcatenateExpression(properties) { + this.dimensionNames = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - api.ResourceReference = (function() { + /** + * ConcatenateExpression dimensionNames. + * @member {Array.} dimensionNames + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.dimensionNames = $util.emptyArray; - /** - * Properties of a ResourceReference. - * @memberof google.api - * @interface IResourceReference - * @property {string|null} [type] ResourceReference type - * @property {string|null} [childType] ResourceReference childType - */ + /** + * ConcatenateExpression delimiter. + * @member {string} delimiter + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @instance + */ + ConcatenateExpression.prototype.delimiter = ""; - /** - * Constructs a new ResourceReference. - * @memberof google.api - * @classdesc Represents a ResourceReference. - * @implements IResourceReference - * @constructor - * @param {google.api.IResourceReference=} [properties] Properties to set - */ - function ResourceReference(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new ConcatenateExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression instance + */ + ConcatenateExpression.create = function create(properties) { + return new ConcatenateExpression(properties); + }; - /** - * ResourceReference type. - * @member {string} type - * @memberof google.api.ResourceReference - * @instance - */ - ResourceReference.prototype.type = ""; + /** + * Encodes the specified ConcatenateExpression message. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionNames != null && message.dimensionNames.length) + for (var i = 0; i < message.dimensionNames.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionNames[i]); + if (message.delimiter != null && Object.hasOwnProperty.call(message, "delimiter")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.delimiter); + return writer; + }; - /** - * ResourceReference childType. - * @member {string} childType - * @memberof google.api.ResourceReference - * @instance - */ - ResourceReference.prototype.childType = ""; + /** + * Encodes the specified ConcatenateExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.IConcatenateExpression} message ConcatenateExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConcatenateExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a new ResourceReference instance using the specified properties. - * @function create - * @memberof google.api.ResourceReference - * @static - * @param {google.api.IResourceReference=} [properties] Properties to set - * @returns {google.api.ResourceReference} ResourceReference instance - */ - ResourceReference.create = function create(properties) { - return new ResourceReference(properties); - }; + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dimensionNames && message.dimensionNames.length)) + message.dimensionNames = []; + message.dimensionNames.push(reader.string()); + break; + case 2: + message.delimiter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @function encode - * @memberof google.api.ResourceReference - * @static - * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ResourceReference.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); - if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.childType); - return writer; - }; + /** + * Decodes a ConcatenateExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConcatenateExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @function encodeDelimited - * @memberof google.api.ResourceReference - * @static - * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ResourceReference.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a ResourceReference message from the specified reader or buffer. - * @function decode - * @memberof google.api.ResourceReference - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.api.ResourceReference} ResourceReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ResourceReference.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceReference(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.type = reader.string(); - break; - case 2: - message.childType = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Verifies a ConcatenateExpression message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConcatenateExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionNames != null && message.hasOwnProperty("dimensionNames")) { + if (!Array.isArray(message.dimensionNames)) + return "dimensionNames: array expected"; + for (var i = 0; i < message.dimensionNames.length; ++i) + if (!$util.isString(message.dimensionNames[i])) + return "dimensionNames: string[] expected"; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + if (!$util.isString(message.delimiter)) + return "delimiter: string expected"; + return null; + }; - /** - * Decodes a ResourceReference message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.api.ResourceReference - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.api.ResourceReference} ResourceReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ResourceReference.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a ConcatenateExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} ConcatenateExpression + */ + ConcatenateExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression(); + if (object.dimensionNames) { + if (!Array.isArray(object.dimensionNames)) + throw TypeError(".google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression.dimensionNames: array expected"); + message.dimensionNames = []; + for (var i = 0; i < object.dimensionNames.length; ++i) + message.dimensionNames[i] = String(object.dimensionNames[i]); + } + if (object.delimiter != null) + message.delimiter = String(object.delimiter); + return message; + }; - /** - * Verifies a ResourceReference message. - * @function verify - * @memberof google.api.ResourceReference - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ResourceReference.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.type != null && message.hasOwnProperty("type")) - if (!$util.isString(message.type)) - return "type: string expected"; - if (message.childType != null && message.hasOwnProperty("childType")) - if (!$util.isString(message.childType)) - return "childType: string expected"; - return null; - }; + /** + * Creates a plain object from a ConcatenateExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @static + * @param {google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression} message ConcatenateExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConcatenateExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dimensionNames = []; + if (options.defaults) + object.delimiter = ""; + if (message.dimensionNames && message.dimensionNames.length) { + object.dimensionNames = []; + for (var j = 0; j < message.dimensionNames.length; ++j) + object.dimensionNames[j] = message.dimensionNames[j]; + } + if (message.delimiter != null && message.hasOwnProperty("delimiter")) + object.delimiter = message.delimiter; + return object; + }; - /** - * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.api.ResourceReference - * @static - * @param {Object.} object Plain object - * @returns {google.api.ResourceReference} ResourceReference - */ - ResourceReference.fromObject = function fromObject(object) { - if (object instanceof $root.google.api.ResourceReference) - return object; - var message = new $root.google.api.ResourceReference(); - if (object.type != null) - message.type = String(object.type); - if (object.childType != null) - message.childType = String(object.childType); - return message; - }; + /** + * Converts this ConcatenateExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionExpression.ConcatenateExpression + * @instance + * @returns {Object.} JSON object + */ + ConcatenateExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. - * @function toObject - * @memberof google.api.ResourceReference - * @static - * @param {google.api.ResourceReference} message ResourceReference - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ResourceReference.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.type = ""; - object.childType = ""; - } - if (message.type != null && message.hasOwnProperty("type")) - object.type = message.type; - if (message.childType != null && message.hasOwnProperty("childType")) - object.childType = message.childType; - return object; - }; + return ConcatenateExpression; + })(); - /** - * Converts this ResourceReference to JSON. - * @function toJSON - * @memberof google.api.ResourceReference - * @instance - * @returns {Object.} JSON object - */ - ResourceReference.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return DimensionExpression; + })(); - return ResourceReference; - })(); + v1beta.Metric = (function() { - return api; - })(); + /** + * Properties of a Metric. + * @memberof google.analytics.data.v1beta + * @interface IMetric + * @property {string|null} [name] Metric name + * @property {string|null} [expression] Metric expression + * @property {boolean|null} [invisible] Metric invisible + */ - google.protobuf = (function() { + /** + * Constructs a new Metric. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Metric. + * @implements IMetric + * @constructor + * @param {google.analytics.data.v1beta.IMetric=} [properties] Properties to set + */ + function Metric(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Namespace protobuf. - * @memberof google - * @namespace - */ - var protobuf = {}; + /** + * Metric name. + * @member {string} name + * @memberof google.analytics.data.v1beta.Metric + * @instance + */ + Metric.prototype.name = ""; - protobuf.FileDescriptorSet = (function() { + /** + * Metric expression. + * @member {string} expression + * @memberof google.analytics.data.v1beta.Metric + * @instance + */ + Metric.prototype.expression = ""; - /** - * Properties of a FileDescriptorSet. - * @memberof google.protobuf - * @interface IFileDescriptorSet - * @property {Array.|null} [file] FileDescriptorSet file - */ + /** + * Metric invisible. + * @member {boolean} invisible + * @memberof google.analytics.data.v1beta.Metric + * @instance + */ + Metric.prototype.invisible = false; - /** - * Constructs a new FileDescriptorSet. - * @memberof google.protobuf - * @classdesc Represents a FileDescriptorSet. - * @implements IFileDescriptorSet - * @constructor - * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set - */ - function FileDescriptorSet(properties) { - this.file = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new Metric instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {google.analytics.data.v1beta.IMetric=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Metric} Metric instance + */ + Metric.create = function create(properties) { + return new Metric(properties); + }; - /** - * FileDescriptorSet file. - * @member {Array.} file - * @memberof google.protobuf.FileDescriptorSet - * @instance - */ - FileDescriptorSet.prototype.file = $util.emptyArray; + /** + * Encodes the specified Metric message. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {google.analytics.data.v1beta.IMetric} message Metric message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Metric.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.expression); + if (message.invisible != null && Object.hasOwnProperty.call(message, "invisible")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.invisible); + return writer; + }; - /** - * Creates a new FileDescriptorSet instance using the specified properties. - * @function create - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {google.protobuf.IFileDescriptorSet=} [properties] Properties to set - * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet instance - */ - FileDescriptorSet.create = function create(properties) { - return new FileDescriptorSet(properties); - }; + /** + * Encodes the specified Metric message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Metric.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {google.analytics.data.v1beta.IMetric} message Metric message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Metric.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. - * @function encode - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileDescriptorSet.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.file != null && message.file.length) - for (var i = 0; i < message.file.length; ++i) - $root.google.protobuf.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Decodes a Metric message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Metric} Metric + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Metric.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Metric(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.expression = reader.string(); + break; + case 3: + message.invisible = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {google.protobuf.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Decodes a Metric message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Metric} Metric + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Metric.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Decodes a FileDescriptorSet message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileDescriptorSet.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorSet(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.file && message.file.length)) - message.file = []; - message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Verifies a Metric message. + * @function verify + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Metric.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.expression != null && message.hasOwnProperty("expression")) + if (!$util.isString(message.expression)) + return "expression: string expected"; + if (message.invisible != null && message.hasOwnProperty("invisible")) + if (typeof message.invisible !== "boolean") + return "invisible: boolean expected"; + return null; + }; - /** - * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileDescriptorSet.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a Metric message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Metric} Metric + */ + Metric.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Metric) + return object; + var message = new $root.google.analytics.data.v1beta.Metric(); + if (object.name != null) + message.name = String(object.name); + if (object.expression != null) + message.expression = String(object.expression); + if (object.invisible != null) + message.invisible = Boolean(object.invisible); + return message; + }; - /** - * Verifies a FileDescriptorSet message. - * @function verify - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FileDescriptorSet.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.file != null && message.hasOwnProperty("file")) { - if (!Array.isArray(message.file)) - return "file: array expected"; - for (var i = 0; i < message.file.length; ++i) { - var error = $root.google.protobuf.FileDescriptorProto.verify(message.file[i]); - if (error) - return "file." + error; - } - } - return null; - }; - - /** - * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.FileDescriptorSet} FileDescriptorSet - */ - FileDescriptorSet.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.FileDescriptorSet) - return object; - var message = new $root.google.protobuf.FileDescriptorSet(); - if (object.file) { - if (!Array.isArray(object.file)) - throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected"); - message.file = []; - for (var i = 0; i < object.file.length; ++i) { - if (typeof object.file[i] !== "object") - throw TypeError(".google.protobuf.FileDescriptorSet.file: object expected"); - message.file[i] = $root.google.protobuf.FileDescriptorProto.fromObject(object.file[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.FileDescriptorSet - * @static - * @param {google.protobuf.FileDescriptorSet} message FileDescriptorSet - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FileDescriptorSet.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.file = []; - if (message.file && message.file.length) { - object.file = []; - for (var j = 0; j < message.file.length; ++j) - object.file[j] = $root.google.protobuf.FileDescriptorProto.toObject(message.file[j], options); - } - return object; - }; + /** + * Creates a plain object from a Metric message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Metric + * @static + * @param {google.analytics.data.v1beta.Metric} message Metric + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Metric.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.expression = ""; + object.invisible = false; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.expression != null && message.hasOwnProperty("expression")) + object.expression = message.expression; + if (message.invisible != null && message.hasOwnProperty("invisible")) + object.invisible = message.invisible; + return object; + }; - /** - * Converts this FileDescriptorSet to JSON. - * @function toJSON - * @memberof google.protobuf.FileDescriptorSet - * @instance - * @returns {Object.} JSON object - */ - FileDescriptorSet.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this Metric to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Metric + * @instance + * @returns {Object.} JSON object + */ + Metric.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return FileDescriptorSet; - })(); + return Metric; + })(); - protobuf.FileDescriptorProto = (function() { + v1beta.FilterExpression = (function() { - /** - * Properties of a FileDescriptorProto. - * @memberof google.protobuf - * @interface IFileDescriptorProto - * @property {string|null} [name] FileDescriptorProto name - * @property {string|null} ["package"] FileDescriptorProto package - * @property {Array.|null} [dependency] FileDescriptorProto dependency - * @property {Array.|null} [publicDependency] FileDescriptorProto publicDependency - * @property {Array.|null} [weakDependency] FileDescriptorProto weakDependency - * @property {Array.|null} [messageType] FileDescriptorProto messageType - * @property {Array.|null} [enumType] FileDescriptorProto enumType - * @property {Array.|null} [service] FileDescriptorProto service - * @property {Array.|null} [extension] FileDescriptorProto extension - * @property {google.protobuf.IFileOptions|null} [options] FileDescriptorProto options - * @property {google.protobuf.ISourceCodeInfo|null} [sourceCodeInfo] FileDescriptorProto sourceCodeInfo - * @property {string|null} [syntax] FileDescriptorProto syntax - */ + /** + * Properties of a FilterExpression. + * @memberof google.analytics.data.v1beta + * @interface IFilterExpression + * @property {google.analytics.data.v1beta.IFilterExpressionList|null} [andGroup] FilterExpression andGroup + * @property {google.analytics.data.v1beta.IFilterExpressionList|null} [orGroup] FilterExpression orGroup + * @property {google.analytics.data.v1beta.IFilterExpression|null} [notExpression] FilterExpression notExpression + * @property {google.analytics.data.v1beta.IFilter|null} [filter] FilterExpression filter + */ - /** - * Constructs a new FileDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents a FileDescriptorProto. - * @implements IFileDescriptorProto - * @constructor - * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set - */ - function FileDescriptorProto(properties) { - this.dependency = []; - this.publicDependency = []; - this.weakDependency = []; - this.messageType = []; - this.enumType = []; - this.service = []; - this.extension = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new FilterExpression. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a FilterExpression. + * @implements IFilterExpression + * @constructor + * @param {google.analytics.data.v1beta.IFilterExpression=} [properties] Properties to set + */ + function FilterExpression(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * FileDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.name = ""; + /** + * FilterExpression andGroup. + * @member {google.analytics.data.v1beta.IFilterExpressionList|null|undefined} andGroup + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + */ + FilterExpression.prototype.andGroup = null; - /** - * FileDescriptorProto package. - * @member {string} package - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype["package"] = ""; + /** + * FilterExpression orGroup. + * @member {google.analytics.data.v1beta.IFilterExpressionList|null|undefined} orGroup + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + */ + FilterExpression.prototype.orGroup = null; - /** - * FileDescriptorProto dependency. - * @member {Array.} dependency - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.dependency = $util.emptyArray; + /** + * FilterExpression notExpression. + * @member {google.analytics.data.v1beta.IFilterExpression|null|undefined} notExpression + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + */ + FilterExpression.prototype.notExpression = null; - /** - * FileDescriptorProto publicDependency. - * @member {Array.} publicDependency - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.publicDependency = $util.emptyArray; + /** + * FilterExpression filter. + * @member {google.analytics.data.v1beta.IFilter|null|undefined} filter + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + */ + FilterExpression.prototype.filter = null; - /** - * FileDescriptorProto weakDependency. - * @member {Array.} weakDependency - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.weakDependency = $util.emptyArray; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * FileDescriptorProto messageType. - * @member {Array.} messageType - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.messageType = $util.emptyArray; + /** + * FilterExpression expr. + * @member {"andGroup"|"orGroup"|"notExpression"|"filter"|undefined} expr + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + */ + Object.defineProperty(FilterExpression.prototype, "expr", { + get: $util.oneOfGetter($oneOfFields = ["andGroup", "orGroup", "notExpression", "filter"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * FileDescriptorProto enumType. - * @member {Array.} enumType - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.enumType = $util.emptyArray; + /** + * Creates a new FilterExpression instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {google.analytics.data.v1beta.IFilterExpression=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression instance + */ + FilterExpression.create = function create(properties) { + return new FilterExpression(properties); + }; - /** - * FileDescriptorProto service. - * @member {Array.} service - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.service = $util.emptyArray; + /** + * Encodes the specified FilterExpression message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {google.analytics.data.v1beta.IFilterExpression} message FilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpression.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.andGroup != null && Object.hasOwnProperty.call(message, "andGroup")) + $root.google.analytics.data.v1beta.FilterExpressionList.encode(message.andGroup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.orGroup != null && Object.hasOwnProperty.call(message, "orGroup")) + $root.google.analytics.data.v1beta.FilterExpressionList.encode(message.orGroup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.notExpression != null && Object.hasOwnProperty.call(message, "notExpression")) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.notExpression, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.google.analytics.data.v1beta.Filter.encode(message.filter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; - /** - * FileDescriptorProto extension. - * @member {Array.} extension - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.extension = $util.emptyArray; + /** + * Encodes the specified FilterExpression message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpression.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {google.analytics.data.v1beta.IFilterExpression} message FilterExpression message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpression.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * FileDescriptorProto options. - * @member {google.protobuf.IFileOptions|null|undefined} options - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.options = null; + /** + * Decodes a FilterExpression message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpression.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.FilterExpression(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.decode(reader, reader.uint32()); + break; + case 2: + message.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.decode(reader, reader.uint32()); + break; + case 3: + message.notExpression = $root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32()); + break; + case 4: + message.filter = $root.google.analytics.data.v1beta.Filter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * FileDescriptorProto sourceCodeInfo. - * @member {google.protobuf.ISourceCodeInfo|null|undefined} sourceCodeInfo - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.sourceCodeInfo = null; + /** + * Decodes a FilterExpression message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpression.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * FileDescriptorProto syntax. - * @member {string} syntax - * @memberof google.protobuf.FileDescriptorProto - * @instance - */ - FileDescriptorProto.prototype.syntax = ""; + /** + * Verifies a FilterExpression message. + * @function verify + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FilterExpression.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + properties.expr = 1; + { + var error = $root.google.analytics.data.v1beta.FilterExpressionList.verify(message.andGroup); + if (error) + return "andGroup." + error; + } + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1beta.FilterExpressionList.verify(message.orGroup); + if (error) + return "orGroup." + error; + } + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.notExpression); + if (error) + return "notExpression." + error; + } + } + if (message.filter != null && message.hasOwnProperty("filter")) { + if (properties.expr === 1) + return "expr: multiple values"; + properties.expr = 1; + { + var error = $root.google.analytics.data.v1beta.Filter.verify(message.filter); + if (error) + return "filter." + error; + } + } + return null; + }; - /** - * Creates a new FileDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {google.protobuf.IFileDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto instance - */ - FileDescriptorProto.create = function create(properties) { - return new FileDescriptorProto(properties); - }; + /** + * Creates a FilterExpression message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.FilterExpression} FilterExpression + */ + FilterExpression.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.FilterExpression) + return object; + var message = new $root.google.analytics.data.v1beta.FilterExpression(); + if (object.andGroup != null) { + if (typeof object.andGroup !== "object") + throw TypeError(".google.analytics.data.v1beta.FilterExpression.andGroup: object expected"); + message.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.fromObject(object.andGroup); + } + if (object.orGroup != null) { + if (typeof object.orGroup !== "object") + throw TypeError(".google.analytics.data.v1beta.FilterExpression.orGroup: object expected"); + message.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.fromObject(object.orGroup); + } + if (object.notExpression != null) { + if (typeof object.notExpression !== "object") + throw TypeError(".google.analytics.data.v1beta.FilterExpression.notExpression: object expected"); + message.notExpression = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.notExpression); + } + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".google.analytics.data.v1beta.FilterExpression.filter: object expected"); + message.filter = $root.google.analytics.data.v1beta.Filter.fromObject(object.filter); + } + return message; + }; - /** - * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message["package"] != null && Object.hasOwnProperty.call(message, "package")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message["package"]); - if (message.dependency != null && message.dependency.length) - for (var i = 0; i < message.dependency.length; ++i) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]); - if (message.messageType != null && message.messageType.length) - for (var i = 0; i < message.messageType.length; ++i) - $root.google.protobuf.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.enumType != null && message.enumType.length) - for (var i = 0; i < message.enumType.length; ++i) - $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.service != null && message.service.length) - for (var i = 0; i < message.service.length; ++i) - $root.google.protobuf.ServiceDescriptorProto.encode(message.service[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.extension != null && message.extension.length) - for (var i = 0; i < message.extension.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.FileOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.sourceCodeInfo != null && Object.hasOwnProperty.call(message, "sourceCodeInfo")) - $root.google.protobuf.SourceCodeInfo.encode(message.sourceCodeInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.publicDependency != null && message.publicDependency.length) - for (var i = 0; i < message.publicDependency.length; ++i) - writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]); - if (message.weakDependency != null && message.weakDependency.length) - for (var i = 0; i < message.weakDependency.length; ++i) - writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]); - if (message.syntax != null && Object.hasOwnProperty.call(message, "syntax")) - writer.uint32(/* id 12, wireType 2 =*/98).string(message.syntax); - return writer; - }; + /** + * Creates a plain object from a FilterExpression message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.FilterExpression + * @static + * @param {google.analytics.data.v1beta.FilterExpression} message FilterExpression + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FilterExpression.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.andGroup != null && message.hasOwnProperty("andGroup")) { + object.andGroup = $root.google.analytics.data.v1beta.FilterExpressionList.toObject(message.andGroup, options); + if (options.oneofs) + object.expr = "andGroup"; + } + if (message.orGroup != null && message.hasOwnProperty("orGroup")) { + object.orGroup = $root.google.analytics.data.v1beta.FilterExpressionList.toObject(message.orGroup, options); + if (options.oneofs) + object.expr = "orGroup"; + } + if (message.notExpression != null && message.hasOwnProperty("notExpression")) { + object.notExpression = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.notExpression, options); + if (options.oneofs) + object.expr = "notExpression"; + } + if (message.filter != null && message.hasOwnProperty("filter")) { + object.filter = $root.google.analytics.data.v1beta.Filter.toObject(message.filter, options); + if (options.oneofs) + object.expr = "filter"; + } + return object; + }; - /** - * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {google.protobuf.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Converts this FilterExpression to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.FilterExpression + * @instance + * @returns {Object.} JSON object + */ + FilterExpression.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a FileDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message["package"] = reader.string(); - break; - case 3: - if (!(message.dependency && message.dependency.length)) - message.dependency = []; - message.dependency.push(reader.string()); - break; - case 10: - if (!(message.publicDependency && message.publicDependency.length)) - message.publicDependency = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.publicDependency.push(reader.int32()); - } else - message.publicDependency.push(reader.int32()); - break; - case 11: - if (!(message.weakDependency && message.weakDependency.length)) - message.weakDependency = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.weakDependency.push(reader.int32()); - } else - message.weakDependency.push(reader.int32()); - break; - case 4: - if (!(message.messageType && message.messageType.length)) - message.messageType = []; - message.messageType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.enumType && message.enumType.length)) - message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.service && message.service.length)) - message.service = []; - message.service.push($root.google.protobuf.ServiceDescriptorProto.decode(reader, reader.uint32())); - break; - case 7: - if (!(message.extension && message.extension.length)) - message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 8: - message.options = $root.google.protobuf.FileOptions.decode(reader, reader.uint32()); - break; - case 9: - message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.decode(reader, reader.uint32()); - break; - case 12: - message.syntax = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return FilterExpression; + })(); - /** - * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + v1beta.FilterExpressionList = (function() { - /** - * Verifies a FileDescriptorProto message. - * @function verify - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FileDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message["package"] != null && message.hasOwnProperty("package")) - if (!$util.isString(message["package"])) - return "package: string expected"; - if (message.dependency != null && message.hasOwnProperty("dependency")) { - if (!Array.isArray(message.dependency)) - return "dependency: array expected"; - for (var i = 0; i < message.dependency.length; ++i) - if (!$util.isString(message.dependency[i])) - return "dependency: string[] expected"; - } - if (message.publicDependency != null && message.hasOwnProperty("publicDependency")) { - if (!Array.isArray(message.publicDependency)) - return "publicDependency: array expected"; - for (var i = 0; i < message.publicDependency.length; ++i) - if (!$util.isInteger(message.publicDependency[i])) - return "publicDependency: integer[] expected"; - } - if (message.weakDependency != null && message.hasOwnProperty("weakDependency")) { - if (!Array.isArray(message.weakDependency)) - return "weakDependency: array expected"; - for (var i = 0; i < message.weakDependency.length; ++i) - if (!$util.isInteger(message.weakDependency[i])) - return "weakDependency: integer[] expected"; - } - if (message.messageType != null && message.hasOwnProperty("messageType")) { - if (!Array.isArray(message.messageType)) - return "messageType: array expected"; - for (var i = 0; i < message.messageType.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.verify(message.messageType[i]); - if (error) - return "messageType." + error; - } - } - if (message.enumType != null && message.hasOwnProperty("enumType")) { - if (!Array.isArray(message.enumType)) - return "enumType: array expected"; - for (var i = 0; i < message.enumType.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); - if (error) - return "enumType." + error; - } - } - if (message.service != null && message.hasOwnProperty("service")) { - if (!Array.isArray(message.service)) - return "service: array expected"; - for (var i = 0; i < message.service.length; ++i) { - var error = $root.google.protobuf.ServiceDescriptorProto.verify(message.service[i]); - if (error) - return "service." + error; - } - } - if (message.extension != null && message.hasOwnProperty("extension")) { - if (!Array.isArray(message.extension)) - return "extension: array expected"; - for (var i = 0; i < message.extension.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); - if (error) - return "extension." + error; - } - } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.FileOptions.verify(message.options); - if (error) - return "options." + error; - } - if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) { - var error = $root.google.protobuf.SourceCodeInfo.verify(message.sourceCodeInfo); - if (error) - return "sourceCodeInfo." + error; - } - if (message.syntax != null && message.hasOwnProperty("syntax")) - if (!$util.isString(message.syntax)) - return "syntax: string expected"; - return null; - }; + /** + * Properties of a FilterExpressionList. + * @memberof google.analytics.data.v1beta + * @interface IFilterExpressionList + * @property {Array.|null} [expressions] FilterExpressionList expressions + */ - /** - * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.FileDescriptorProto} FileDescriptorProto - */ - FileDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.FileDescriptorProto) - return object; - var message = new $root.google.protobuf.FileDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object["package"] != null) - message["package"] = String(object["package"]); - if (object.dependency) { - if (!Array.isArray(object.dependency)) - throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected"); - message.dependency = []; - for (var i = 0; i < object.dependency.length; ++i) - message.dependency[i] = String(object.dependency[i]); - } - if (object.publicDependency) { - if (!Array.isArray(object.publicDependency)) - throw TypeError(".google.protobuf.FileDescriptorProto.publicDependency: array expected"); - message.publicDependency = []; - for (var i = 0; i < object.publicDependency.length; ++i) - message.publicDependency[i] = object.publicDependency[i] | 0; - } - if (object.weakDependency) { - if (!Array.isArray(object.weakDependency)) - throw TypeError(".google.protobuf.FileDescriptorProto.weakDependency: array expected"); - message.weakDependency = []; - for (var i = 0; i < object.weakDependency.length; ++i) - message.weakDependency[i] = object.weakDependency[i] | 0; - } - if (object.messageType) { - if (!Array.isArray(object.messageType)) - throw TypeError(".google.protobuf.FileDescriptorProto.messageType: array expected"); - message.messageType = []; - for (var i = 0; i < object.messageType.length; ++i) { - if (typeof object.messageType[i] !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.messageType: object expected"); - message.messageType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.messageType[i]); - } - } - if (object.enumType) { - if (!Array.isArray(object.enumType)) - throw TypeError(".google.protobuf.FileDescriptorProto.enumType: array expected"); - message.enumType = []; - for (var i = 0; i < object.enumType.length; ++i) { - if (typeof object.enumType[i] !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.enumType: object expected"); - message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); - } - } - if (object.service) { - if (!Array.isArray(object.service)) - throw TypeError(".google.protobuf.FileDescriptorProto.service: array expected"); - message.service = []; - for (var i = 0; i < object.service.length; ++i) { - if (typeof object.service[i] !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.service: object expected"); - message.service[i] = $root.google.protobuf.ServiceDescriptorProto.fromObject(object.service[i]); - } - } - if (object.extension) { - if (!Array.isArray(object.extension)) - throw TypeError(".google.protobuf.FileDescriptorProto.extension: array expected"); - message.extension = []; - for (var i = 0; i < object.extension.length; ++i) { - if (typeof object.extension[i] !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.extension: object expected"); - message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); + /** + * Constructs a new FilterExpressionList. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a FilterExpressionList. + * @implements IFilterExpressionList + * @constructor + * @param {google.analytics.data.v1beta.IFilterExpressionList=} [properties] Properties to set + */ + function FilterExpressionList(properties) { + this.expressions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.FileOptions.fromObject(object.options); - } - if (object.sourceCodeInfo != null) { - if (typeof object.sourceCodeInfo !== "object") - throw TypeError(".google.protobuf.FileDescriptorProto.sourceCodeInfo: object expected"); - message.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.fromObject(object.sourceCodeInfo); - } - if (object.syntax != null) - message.syntax = String(object.syntax); - return message; - }; - - /** - * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.FileDescriptorProto - * @static - * @param {google.protobuf.FileDescriptorProto} message FileDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FileDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.dependency = []; - object.messageType = []; - object.enumType = []; - object.service = []; - object.extension = []; - object.publicDependency = []; - object.weakDependency = []; - } - if (options.defaults) { - object.name = ""; - object["package"] = ""; - object.options = null; - object.sourceCodeInfo = null; - object.syntax = ""; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message["package"] != null && message.hasOwnProperty("package")) - object["package"] = message["package"]; - if (message.dependency && message.dependency.length) { - object.dependency = []; - for (var j = 0; j < message.dependency.length; ++j) - object.dependency[j] = message.dependency[j]; - } - if (message.messageType && message.messageType.length) { - object.messageType = []; - for (var j = 0; j < message.messageType.length; ++j) - object.messageType[j] = $root.google.protobuf.DescriptorProto.toObject(message.messageType[j], options); - } - if (message.enumType && message.enumType.length) { - object.enumType = []; - for (var j = 0; j < message.enumType.length; ++j) - object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); - } - if (message.service && message.service.length) { - object.service = []; - for (var j = 0; j < message.service.length; ++j) - object.service[j] = $root.google.protobuf.ServiceDescriptorProto.toObject(message.service[j], options); - } - if (message.extension && message.extension.length) { - object.extension = []; - for (var j = 0; j < message.extension.length; ++j) - object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); - } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.FileOptions.toObject(message.options, options); - if (message.sourceCodeInfo != null && message.hasOwnProperty("sourceCodeInfo")) - object.sourceCodeInfo = $root.google.protobuf.SourceCodeInfo.toObject(message.sourceCodeInfo, options); - if (message.publicDependency && message.publicDependency.length) { - object.publicDependency = []; - for (var j = 0; j < message.publicDependency.length; ++j) - object.publicDependency[j] = message.publicDependency[j]; - } - if (message.weakDependency && message.weakDependency.length) { - object.weakDependency = []; - for (var j = 0; j < message.weakDependency.length; ++j) - object.weakDependency[j] = message.weakDependency[j]; - } - if (message.syntax != null && message.hasOwnProperty("syntax")) - object.syntax = message.syntax; - return object; - }; - - /** - * Converts this FileDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.FileDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - FileDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - return FileDescriptorProto; - })(); + /** + * FilterExpressionList expressions. + * @member {Array.} expressions + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @instance + */ + FilterExpressionList.prototype.expressions = $util.emptyArray; - protobuf.DescriptorProto = (function() { + /** + * Creates a new FilterExpressionList instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {google.analytics.data.v1beta.IFilterExpressionList=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList instance + */ + FilterExpressionList.create = function create(properties) { + return new FilterExpressionList(properties); + }; - /** - * Properties of a DescriptorProto. - * @memberof google.protobuf - * @interface IDescriptorProto - * @property {string|null} [name] DescriptorProto name - * @property {Array.|null} [field] DescriptorProto field - * @property {Array.|null} [extension] DescriptorProto extension - * @property {Array.|null} [nestedType] DescriptorProto nestedType - * @property {Array.|null} [enumType] DescriptorProto enumType - * @property {Array.|null} [extensionRange] DescriptorProto extensionRange - * @property {Array.|null} [oneofDecl] DescriptorProto oneofDecl - * @property {google.protobuf.IMessageOptions|null} [options] DescriptorProto options - * @property {Array.|null} [reservedRange] DescriptorProto reservedRange - * @property {Array.|null} [reservedName] DescriptorProto reservedName - */ + /** + * Encodes the specified FilterExpressionList message. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {google.analytics.data.v1beta.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpressionList.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.expressions != null && message.expressions.length) + for (var i = 0; i < message.expressions.length; ++i) + $root.google.analytics.data.v1beta.FilterExpression.encode(message.expressions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Constructs a new DescriptorProto. - * @memberof google.protobuf - * @classdesc Represents a DescriptorProto. - * @implements IDescriptorProto - * @constructor - * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set - */ - function DescriptorProto(properties) { - this.field = []; - this.extension = []; - this.nestedType = []; - this.enumType = []; - this.extensionRange = []; - this.oneofDecl = []; - this.reservedRange = []; - this.reservedName = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Encodes the specified FilterExpressionList message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.FilterExpressionList.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {google.analytics.data.v1beta.IFilterExpressionList} message FilterExpressionList message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FilterExpressionList.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * DescriptorProto name. - * @member {string} name - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.name = ""; + /** + * Decodes a FilterExpressionList message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpressionList.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.FilterExpressionList(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.expressions && message.expressions.length)) + message.expressions = []; + message.expressions.push($root.google.analytics.data.v1beta.FilterExpression.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * DescriptorProto field. - * @member {Array.} field - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.field = $util.emptyArray; + /** + * Decodes a FilterExpressionList message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FilterExpressionList.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * DescriptorProto extension. - * @member {Array.} extension - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.extension = $util.emptyArray; + /** + * Verifies a FilterExpressionList message. + * @function verify + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FilterExpressionList.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.expressions != null && message.hasOwnProperty("expressions")) { + if (!Array.isArray(message.expressions)) + return "expressions: array expected"; + for (var i = 0; i < message.expressions.length; ++i) { + var error = $root.google.analytics.data.v1beta.FilterExpression.verify(message.expressions[i]); + if (error) + return "expressions." + error; + } + } + return null; + }; - /** - * DescriptorProto nestedType. - * @member {Array.} nestedType - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.nestedType = $util.emptyArray; + /** + * Creates a FilterExpressionList message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.FilterExpressionList} FilterExpressionList + */ + FilterExpressionList.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.FilterExpressionList) + return object; + var message = new $root.google.analytics.data.v1beta.FilterExpressionList(); + if (object.expressions) { + if (!Array.isArray(object.expressions)) + throw TypeError(".google.analytics.data.v1beta.FilterExpressionList.expressions: array expected"); + message.expressions = []; + for (var i = 0; i < object.expressions.length; ++i) { + if (typeof object.expressions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.FilterExpressionList.expressions: object expected"); + message.expressions[i] = $root.google.analytics.data.v1beta.FilterExpression.fromObject(object.expressions[i]); + } + } + return message; + }; - /** - * DescriptorProto enumType. - * @member {Array.} enumType - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.enumType = $util.emptyArray; + /** + * Creates a plain object from a FilterExpressionList message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @static + * @param {google.analytics.data.v1beta.FilterExpressionList} message FilterExpressionList + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FilterExpressionList.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.expressions = []; + if (message.expressions && message.expressions.length) { + object.expressions = []; + for (var j = 0; j < message.expressions.length; ++j) + object.expressions[j] = $root.google.analytics.data.v1beta.FilterExpression.toObject(message.expressions[j], options); + } + return object; + }; - /** - * DescriptorProto extensionRange. - * @member {Array.} extensionRange - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.extensionRange = $util.emptyArray; + /** + * Converts this FilterExpressionList to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.FilterExpressionList + * @instance + * @returns {Object.} JSON object + */ + FilterExpressionList.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * DescriptorProto oneofDecl. - * @member {Array.} oneofDecl - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.oneofDecl = $util.emptyArray; + return FilterExpressionList; + })(); - /** - * DescriptorProto options. - * @member {google.protobuf.IMessageOptions|null|undefined} options - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.options = null; + v1beta.Filter = (function() { - /** - * DescriptorProto reservedRange. - * @member {Array.} reservedRange - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.reservedRange = $util.emptyArray; + /** + * Properties of a Filter. + * @memberof google.analytics.data.v1beta + * @interface IFilter + * @property {string|null} [fieldName] Filter fieldName + * @property {google.analytics.data.v1beta.Filter.IStringFilter|null} [stringFilter] Filter stringFilter + * @property {google.analytics.data.v1beta.Filter.IInListFilter|null} [inListFilter] Filter inListFilter + * @property {google.analytics.data.v1beta.Filter.INumericFilter|null} [numericFilter] Filter numericFilter + * @property {google.analytics.data.v1beta.Filter.IBetweenFilter|null} [betweenFilter] Filter betweenFilter + */ - /** - * DescriptorProto reservedName. - * @member {Array.} reservedName - * @memberof google.protobuf.DescriptorProto - * @instance - */ - DescriptorProto.prototype.reservedName = $util.emptyArray; + /** + * Constructs a new Filter. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Filter. + * @implements IFilter + * @constructor + * @param {google.analytics.data.v1beta.IFilter=} [properties] Properties to set + */ + function Filter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new DescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.DescriptorProto - * @static - * @param {google.protobuf.IDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.DescriptorProto} DescriptorProto instance - */ - DescriptorProto.create = function create(properties) { - return new DescriptorProto(properties); - }; + /** + * Filter fieldName. + * @member {string} fieldName + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Filter.prototype.fieldName = ""; - /** - * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.DescriptorProto - * @static - * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.field != null && message.field.length) - for (var i = 0; i < message.field.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.nestedType != null && message.nestedType.length) - for (var i = 0; i < message.nestedType.length; ++i) - $root.google.protobuf.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.enumType != null && message.enumType.length) - for (var i = 0; i < message.enumType.length; ++i) - $root.google.protobuf.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.extensionRange != null && message.extensionRange.length) - for (var i = 0; i < message.extensionRange.length; ++i) - $root.google.protobuf.DescriptorProto.ExtensionRange.encode(message.extensionRange[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.extension != null && message.extension.length) - for (var i = 0; i < message.extension.length; ++i) - $root.google.protobuf.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.MessageOptions.encode(message.options, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.oneofDecl != null && message.oneofDecl.length) - for (var i = 0; i < message.oneofDecl.length; ++i) - $root.google.protobuf.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.reservedRange != null && message.reservedRange.length) - for (var i = 0; i < message.reservedRange.length; ++i) - $root.google.protobuf.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.reservedName != null && message.reservedName.length) - for (var i = 0; i < message.reservedName.length; ++i) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]); - return writer; - }; + /** + * Filter stringFilter. + * @member {google.analytics.data.v1beta.Filter.IStringFilter|null|undefined} stringFilter + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Filter.prototype.stringFilter = null; - /** - * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.DescriptorProto - * @static - * @param {google.protobuf.IDescriptorProto} message DescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Filter inListFilter. + * @member {google.analytics.data.v1beta.Filter.IInListFilter|null|undefined} inListFilter + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Filter.prototype.inListFilter = null; - /** - * Decodes a DescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.DescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.DescriptorProto} DescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.field && message.field.length)) - message.field = []; - message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 6: - if (!(message.extension && message.extension.length)) - message.extension = []; - message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - if (!(message.nestedType && message.nestedType.length)) - message.nestedType = []; - message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.enumType && message.enumType.length)) - message.enumType = []; - message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.extensionRange && message.extensionRange.length)) - message.extensionRange = []; - message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader, reader.uint32())); - break; - case 8: - if (!(message.oneofDecl && message.oneofDecl.length)) - message.oneofDecl = []; - message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader, reader.uint32())); - break; - case 7: - message.options = $root.google.protobuf.MessageOptions.decode(reader, reader.uint32()); - break; - case 9: - if (!(message.reservedRange && message.reservedRange.length)) - message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader, reader.uint32())); - break; - case 10: - if (!(message.reservedName && message.reservedName.length)) - message.reservedName = []; - message.reservedName.push(reader.string()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Filter numericFilter. + * @member {google.analytics.data.v1beta.Filter.INumericFilter|null|undefined} numericFilter + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Filter.prototype.numericFilter = null; - /** - * Decodes a DescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.DescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.DescriptorProto} DescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Filter betweenFilter. + * @member {google.analytics.data.v1beta.Filter.IBetweenFilter|null|undefined} betweenFilter + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Filter.prototype.betweenFilter = null; - /** - * Verifies a DescriptorProto message. - * @function verify - * @memberof google.protobuf.DescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.field != null && message.hasOwnProperty("field")) { - if (!Array.isArray(message.field)) - return "field: array expected"; - for (var i = 0; i < message.field.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.field[i]); - if (error) - return "field." + error; - } - } - if (message.extension != null && message.hasOwnProperty("extension")) { - if (!Array.isArray(message.extension)) - return "extension: array expected"; - for (var i = 0; i < message.extension.length; ++i) { - var error = $root.google.protobuf.FieldDescriptorProto.verify(message.extension[i]); - if (error) - return "extension." + error; - } - } - if (message.nestedType != null && message.hasOwnProperty("nestedType")) { - if (!Array.isArray(message.nestedType)) - return "nestedType: array expected"; - for (var i = 0; i < message.nestedType.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.verify(message.nestedType[i]); - if (error) - return "nestedType." + error; - } - } - if (message.enumType != null && message.hasOwnProperty("enumType")) { - if (!Array.isArray(message.enumType)) - return "enumType: array expected"; - for (var i = 0; i < message.enumType.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.verify(message.enumType[i]); - if (error) - return "enumType." + error; - } - } - if (message.extensionRange != null && message.hasOwnProperty("extensionRange")) { - if (!Array.isArray(message.extensionRange)) - return "extensionRange: array expected"; - for (var i = 0; i < message.extensionRange.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.ExtensionRange.verify(message.extensionRange[i]); - if (error) - return "extensionRange." + error; - } - } - if (message.oneofDecl != null && message.hasOwnProperty("oneofDecl")) { - if (!Array.isArray(message.oneofDecl)) - return "oneofDecl: array expected"; - for (var i = 0; i < message.oneofDecl.length; ++i) { - var error = $root.google.protobuf.OneofDescriptorProto.verify(message.oneofDecl[i]); - if (error) - return "oneofDecl." + error; - } - } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.MessageOptions.verify(message.options); - if (error) - return "options." + error; - } - if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { - if (!Array.isArray(message.reservedRange)) - return "reservedRange: array expected"; - for (var i = 0; i < message.reservedRange.length; ++i) { - var error = $root.google.protobuf.DescriptorProto.ReservedRange.verify(message.reservedRange[i]); - if (error) - return "reservedRange." + error; - } - } - if (message.reservedName != null && message.hasOwnProperty("reservedName")) { - if (!Array.isArray(message.reservedName)) - return "reservedName: array expected"; - for (var i = 0; i < message.reservedName.length; ++i) - if (!$util.isString(message.reservedName[i])) - return "reservedName: string[] expected"; - } - return null; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.DescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.DescriptorProto} DescriptorProto - */ - DescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.DescriptorProto) - return object; - var message = new $root.google.protobuf.DescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.field) { - if (!Array.isArray(object.field)) - throw TypeError(".google.protobuf.DescriptorProto.field: array expected"); - message.field = []; - for (var i = 0; i < object.field.length; ++i) { - if (typeof object.field[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.field: object expected"); - message.field[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.field[i]); - } - } - if (object.extension) { - if (!Array.isArray(object.extension)) - throw TypeError(".google.protobuf.DescriptorProto.extension: array expected"); - message.extension = []; - for (var i = 0; i < object.extension.length; ++i) { - if (typeof object.extension[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.extension: object expected"); - message.extension[i] = $root.google.protobuf.FieldDescriptorProto.fromObject(object.extension[i]); - } - } - if (object.nestedType) { - if (!Array.isArray(object.nestedType)) - throw TypeError(".google.protobuf.DescriptorProto.nestedType: array expected"); - message.nestedType = []; - for (var i = 0; i < object.nestedType.length; ++i) { - if (typeof object.nestedType[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.nestedType: object expected"); - message.nestedType[i] = $root.google.protobuf.DescriptorProto.fromObject(object.nestedType[i]); - } - } - if (object.enumType) { - if (!Array.isArray(object.enumType)) - throw TypeError(".google.protobuf.DescriptorProto.enumType: array expected"); - message.enumType = []; - for (var i = 0; i < object.enumType.length; ++i) { - if (typeof object.enumType[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.enumType: object expected"); - message.enumType[i] = $root.google.protobuf.EnumDescriptorProto.fromObject(object.enumType[i]); - } - } - if (object.extensionRange) { - if (!Array.isArray(object.extensionRange)) - throw TypeError(".google.protobuf.DescriptorProto.extensionRange: array expected"); - message.extensionRange = []; - for (var i = 0; i < object.extensionRange.length; ++i) { - if (typeof object.extensionRange[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.extensionRange: object expected"); - message.extensionRange[i] = $root.google.protobuf.DescriptorProto.ExtensionRange.fromObject(object.extensionRange[i]); - } - } - if (object.oneofDecl) { - if (!Array.isArray(object.oneofDecl)) - throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: array expected"); - message.oneofDecl = []; - for (var i = 0; i < object.oneofDecl.length; ++i) { - if (typeof object.oneofDecl[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.oneofDecl: object expected"); - message.oneofDecl[i] = $root.google.protobuf.OneofDescriptorProto.fromObject(object.oneofDecl[i]); - } - } - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.DescriptorProto.options: object expected"); - message.options = $root.google.protobuf.MessageOptions.fromObject(object.options); - } - if (object.reservedRange) { - if (!Array.isArray(object.reservedRange)) - throw TypeError(".google.protobuf.DescriptorProto.reservedRange: array expected"); - message.reservedRange = []; - for (var i = 0; i < object.reservedRange.length; ++i) { - if (typeof object.reservedRange[i] !== "object") - throw TypeError(".google.protobuf.DescriptorProto.reservedRange: object expected"); - message.reservedRange[i] = $root.google.protobuf.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]); - } - } - if (object.reservedName) { - if (!Array.isArray(object.reservedName)) - throw TypeError(".google.protobuf.DescriptorProto.reservedName: array expected"); - message.reservedName = []; - for (var i = 0; i < object.reservedName.length; ++i) - message.reservedName[i] = String(object.reservedName[i]); - } - return message; - }; + /** + * Filter oneFilter. + * @member {"stringFilter"|"inListFilter"|"numericFilter"|"betweenFilter"|undefined} oneFilter + * @memberof google.analytics.data.v1beta.Filter + * @instance + */ + Object.defineProperty(Filter.prototype, "oneFilter", { + get: $util.oneOfGetter($oneOfFields = ["stringFilter", "inListFilter", "numericFilter", "betweenFilter"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.DescriptorProto - * @static - * @param {google.protobuf.DescriptorProto} message DescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.field = []; - object.nestedType = []; - object.enumType = []; - object.extensionRange = []; - object.extension = []; - object.oneofDecl = []; - object.reservedRange = []; - object.reservedName = []; - } - if (options.defaults) { - object.name = ""; - object.options = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.field && message.field.length) { - object.field = []; - for (var j = 0; j < message.field.length; ++j) - object.field[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.field[j], options); - } - if (message.nestedType && message.nestedType.length) { - object.nestedType = []; - for (var j = 0; j < message.nestedType.length; ++j) - object.nestedType[j] = $root.google.protobuf.DescriptorProto.toObject(message.nestedType[j], options); - } - if (message.enumType && message.enumType.length) { - object.enumType = []; - for (var j = 0; j < message.enumType.length; ++j) - object.enumType[j] = $root.google.protobuf.EnumDescriptorProto.toObject(message.enumType[j], options); - } - if (message.extensionRange && message.extensionRange.length) { - object.extensionRange = []; - for (var j = 0; j < message.extensionRange.length; ++j) - object.extensionRange[j] = $root.google.protobuf.DescriptorProto.ExtensionRange.toObject(message.extensionRange[j], options); - } - if (message.extension && message.extension.length) { - object.extension = []; - for (var j = 0; j < message.extension.length; ++j) - object.extension[j] = $root.google.protobuf.FieldDescriptorProto.toObject(message.extension[j], options); - } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.MessageOptions.toObject(message.options, options); - if (message.oneofDecl && message.oneofDecl.length) { - object.oneofDecl = []; - for (var j = 0; j < message.oneofDecl.length; ++j) - object.oneofDecl[j] = $root.google.protobuf.OneofDescriptorProto.toObject(message.oneofDecl[j], options); - } - if (message.reservedRange && message.reservedRange.length) { - object.reservedRange = []; - for (var j = 0; j < message.reservedRange.length; ++j) - object.reservedRange[j] = $root.google.protobuf.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options); - } - if (message.reservedName && message.reservedName.length) { - object.reservedName = []; - for (var j = 0; j < message.reservedName.length; ++j) - object.reservedName[j] = message.reservedName[j]; - } - return object; - }; + /** + * Creates a new Filter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {google.analytics.data.v1beta.IFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Filter} Filter instance + */ + Filter.create = function create(properties) { + return new Filter(properties); + }; - /** - * Converts this DescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.DescriptorProto - * @instance - * @returns {Object.} JSON object - */ - DescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified Filter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {google.analytics.data.v1beta.IFilter} message Filter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Filter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fieldName != null && Object.hasOwnProperty.call(message, "fieldName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName); + if (message.stringFilter != null && Object.hasOwnProperty.call(message, "stringFilter")) + $root.google.analytics.data.v1beta.Filter.StringFilter.encode(message.stringFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.inListFilter != null && Object.hasOwnProperty.call(message, "inListFilter")) + $root.google.analytics.data.v1beta.Filter.InListFilter.encode(message.inListFilter, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.numericFilter != null && Object.hasOwnProperty.call(message, "numericFilter")) + $root.google.analytics.data.v1beta.Filter.NumericFilter.encode(message.numericFilter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.betweenFilter != null && Object.hasOwnProperty.call(message, "betweenFilter")) + $root.google.analytics.data.v1beta.Filter.BetweenFilter.encode(message.betweenFilter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + return writer; + }; - DescriptorProto.ExtensionRange = (function() { + /** + * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {google.analytics.data.v1beta.IFilter} message Filter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Filter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of an ExtensionRange. - * @memberof google.protobuf.DescriptorProto - * @interface IExtensionRange - * @property {number|null} [start] ExtensionRange start - * @property {number|null} [end] ExtensionRange end - * @property {google.protobuf.IExtensionRangeOptions|null} [options] ExtensionRange options - */ + /** + * Decodes a Filter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Filter} Filter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Filter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fieldName = reader.string(); + break; + case 3: + message.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.decode(reader, reader.uint32()); + break; + case 4: + message.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.decode(reader, reader.uint32()); + break; + case 5: + message.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.decode(reader, reader.uint32()); + break; + case 6: + message.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new ExtensionRange. - * @memberof google.protobuf.DescriptorProto - * @classdesc Represents an ExtensionRange. - * @implements IExtensionRange - * @constructor - * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set - */ - function ExtensionRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes a Filter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Filter} Filter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Filter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * ExtensionRange start. - * @member {number} start - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @instance - */ - ExtensionRange.prototype.start = 0; + /** + * Verifies a Filter message. + * @function verify + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Filter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + if (!$util.isString(message.fieldName)) + return "fieldName: string expected"; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1beta.Filter.StringFilter.verify(message.stringFilter); + if (error) + return "stringFilter." + error; + } + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1beta.Filter.InListFilter.verify(message.inListFilter); + if (error) + return "inListFilter." + error; + } + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1beta.Filter.NumericFilter.verify(message.numericFilter); + if (error) + return "numericFilter." + error; + } + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + if (properties.oneFilter === 1) + return "oneFilter: multiple values"; + properties.oneFilter = 1; + { + var error = $root.google.analytics.data.v1beta.Filter.BetweenFilter.verify(message.betweenFilter); + if (error) + return "betweenFilter." + error; + } + } + return null; + }; - /** - * ExtensionRange end. - * @member {number} end - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @instance - */ - ExtensionRange.prototype.end = 0; + /** + * Creates a Filter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Filter} Filter + */ + Filter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Filter) + return object; + var message = new $root.google.analytics.data.v1beta.Filter(); + if (object.fieldName != null) + message.fieldName = String(object.fieldName); + if (object.stringFilter != null) { + if (typeof object.stringFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.stringFilter: object expected"); + message.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.fromObject(object.stringFilter); + } + if (object.inListFilter != null) { + if (typeof object.inListFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.inListFilter: object expected"); + message.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.fromObject(object.inListFilter); + } + if (object.numericFilter != null) { + if (typeof object.numericFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.numericFilter: object expected"); + message.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.fromObject(object.numericFilter); + } + if (object.betweenFilter != null) { + if (typeof object.betweenFilter !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.betweenFilter: object expected"); + message.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.fromObject(object.betweenFilter); + } + return message; + }; - /** - * ExtensionRange options. - * @member {google.protobuf.IExtensionRangeOptions|null|undefined} options - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @instance - */ - ExtensionRange.prototype.options = null; + /** + * Creates a plain object from a Filter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Filter + * @static + * @param {google.analytics.data.v1beta.Filter} message Filter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Filter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.fieldName = ""; + if (message.fieldName != null && message.hasOwnProperty("fieldName")) + object.fieldName = message.fieldName; + if (message.stringFilter != null && message.hasOwnProperty("stringFilter")) { + object.stringFilter = $root.google.analytics.data.v1beta.Filter.StringFilter.toObject(message.stringFilter, options); + if (options.oneofs) + object.oneFilter = "stringFilter"; + } + if (message.inListFilter != null && message.hasOwnProperty("inListFilter")) { + object.inListFilter = $root.google.analytics.data.v1beta.Filter.InListFilter.toObject(message.inListFilter, options); + if (options.oneofs) + object.oneFilter = "inListFilter"; + } + if (message.numericFilter != null && message.hasOwnProperty("numericFilter")) { + object.numericFilter = $root.google.analytics.data.v1beta.Filter.NumericFilter.toObject(message.numericFilter, options); + if (options.oneofs) + object.oneFilter = "numericFilter"; + } + if (message.betweenFilter != null && message.hasOwnProperty("betweenFilter")) { + object.betweenFilter = $root.google.analytics.data.v1beta.Filter.BetweenFilter.toObject(message.betweenFilter, options); + if (options.oneofs) + object.oneFilter = "betweenFilter"; + } + return object; + }; - /** - * Creates a new ExtensionRange instance using the specified properties. - * @function create - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {google.protobuf.DescriptorProto.IExtensionRange=} [properties] Properties to set - * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange instance - */ - ExtensionRange.create = function create(properties) { - return new ExtensionRange(properties); - }; + /** + * Converts this Filter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Filter + * @instance + * @returns {Object.} JSON object + */ + Filter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. - * @function encode - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ExtensionRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.start != null && Object.hasOwnProperty.call(message, "start")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && Object.hasOwnProperty.call(message, "end")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.ExtensionRangeOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - return writer; - }; + Filter.StringFilter = (function() { - /** - * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {google.protobuf.DescriptorProto.IExtensionRange} message ExtensionRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ExtensionRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Properties of a StringFilter. + * @memberof google.analytics.data.v1beta.Filter + * @interface IStringFilter + * @property {google.analytics.data.v1beta.Filter.StringFilter.MatchType|null} [matchType] StringFilter matchType + * @property {string|null} [value] StringFilter value + * @property {boolean|null} [caseSensitive] StringFilter caseSensitive + */ - /** - * Decodes an ExtensionRange message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ExtensionRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; - case 3: - message.options = $root.google.protobuf.ExtensionRangeOptions.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Constructs a new StringFilter. + * @memberof google.analytics.data.v1beta.Filter + * @classdesc Represents a StringFilter. + * @implements IStringFilter + * @constructor + * @param {google.analytics.data.v1beta.Filter.IStringFilter=} [properties] Properties to set + */ + function StringFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return message; - }; - - /** - * Decodes an ExtensionRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ExtensionRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - /** - * Verifies an ExtensionRange message. - * @function verify - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ExtensionRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) - if (!$util.isInteger(message.start)) - return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) - if (!$util.isInteger(message.end)) - return "end: integer expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.ExtensionRangeOptions.verify(message.options); - if (error) - return "options." + error; - } - return null; - }; + /** + * StringFilter matchType. + * @member {google.analytics.data.v1beta.Filter.StringFilter.MatchType} matchType + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @instance + */ + StringFilter.prototype.matchType = 0; - /** - * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.DescriptorProto.ExtensionRange} ExtensionRange - */ - ExtensionRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange) - return object; - var message = new $root.google.protobuf.DescriptorProto.ExtensionRange(); - if (object.start != null) - message.start = object.start | 0; - if (object.end != null) - message.end = object.end | 0; - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected"); - message.options = $root.google.protobuf.ExtensionRangeOptions.fromObject(object.options); - } - return message; - }; + /** + * StringFilter value. + * @member {string} value + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @instance + */ + StringFilter.prototype.value = ""; - /** - * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @static - * @param {google.protobuf.DescriptorProto.ExtensionRange} message ExtensionRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ExtensionRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.start = 0; - object.end = 0; - object.options = null; - } - if (message.start != null && message.hasOwnProperty("start")) - object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) - object.end = message.end; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.ExtensionRangeOptions.toObject(message.options, options); - return object; - }; + /** + * StringFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @instance + */ + StringFilter.prototype.caseSensitive = false; - /** - * Converts this ExtensionRange to JSON. - * @function toJSON - * @memberof google.protobuf.DescriptorProto.ExtensionRange - * @instance - * @returns {Object.} JSON object - */ - ExtensionRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a new StringFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IStringFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter instance + */ + StringFilter.create = function create(properties) { + return new StringFilter(properties); + }; - return ExtensionRange; - })(); + /** + * Encodes the specified StringFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IStringFilter} message StringFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StringFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.matchType != null && Object.hasOwnProperty.call(message, "matchType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.matchType); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.value); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.caseSensitive); + return writer; + }; - DescriptorProto.ReservedRange = (function() { + /** + * Encodes the specified StringFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.StringFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IStringFilter} message StringFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StringFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of a ReservedRange. - * @memberof google.protobuf.DescriptorProto - * @interface IReservedRange - * @property {number|null} [start] ReservedRange start - * @property {number|null} [end] ReservedRange end - */ + /** + * Decodes a StringFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StringFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.StringFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.matchType = reader.int32(); + break; + case 2: + message.value = reader.string(); + break; + case 3: + message.caseSensitive = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new ReservedRange. - * @memberof google.protobuf.DescriptorProto - * @classdesc Represents a ReservedRange. - * @implements IReservedRange - * @constructor - * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set - */ - function ReservedRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes a StringFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StringFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * ReservedRange start. - * @member {number} start - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @instance - */ - ReservedRange.prototype.start = 0; + /** + * Verifies a StringFilter message. + * @function verify + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StringFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.matchType != null && message.hasOwnProperty("matchType")) + switch (message.matchType) { + default: + return "matchType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; + } + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isString(message.value)) + return "value: string expected"; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; + return null; + }; - /** - * ReservedRange end. - * @member {number} end - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @instance - */ - ReservedRange.prototype.end = 0; + /** + * Creates a StringFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Filter.StringFilter} StringFilter + */ + StringFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Filter.StringFilter) + return object; + var message = new $root.google.analytics.data.v1beta.Filter.StringFilter(); + switch (object.matchType) { + case "MATCH_TYPE_UNSPECIFIED": + case 0: + message.matchType = 0; + break; + case "EXACT": + case 1: + message.matchType = 1; + break; + case "BEGINS_WITH": + case 2: + message.matchType = 2; + break; + case "ENDS_WITH": + case 3: + message.matchType = 3; + break; + case "CONTAINS": + case 4: + message.matchType = 4; + break; + case "FULL_REGEXP": + case 5: + message.matchType = 5; + break; + case "PARTIAL_REGEXP": + case 6: + message.matchType = 6; + break; + } + if (object.value != null) + message.value = String(object.value); + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); + return message; + }; - /** - * Creates a new ReservedRange instance using the specified properties. - * @function create - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {google.protobuf.DescriptorProto.IReservedRange=} [properties] Properties to set - * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange instance - */ - ReservedRange.create = function create(properties) { - return new ReservedRange(properties); - }; + /** + * Creates a plain object from a StringFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @static + * @param {google.analytics.data.v1beta.Filter.StringFilter} message StringFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StringFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.matchType = options.enums === String ? "MATCH_TYPE_UNSPECIFIED" : 0; + object.value = ""; + object.caseSensitive = false; + } + if (message.matchType != null && message.hasOwnProperty("matchType")) + object.matchType = options.enums === String ? $root.google.analytics.data.v1beta.Filter.StringFilter.MatchType[message.matchType] : message.matchType; + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; + return object; + }; - /** - * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. - * @function encode - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ReservedRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.start != null && Object.hasOwnProperty.call(message, "start")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && Object.hasOwnProperty.call(message, "end")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); - return writer; - }; + /** + * Converts this StringFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Filter.StringFilter + * @instance + * @returns {Object.} JSON object + */ + StringFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {google.protobuf.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ReservedRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * MatchType enum. + * @name google.analytics.data.v1beta.Filter.StringFilter.MatchType + * @enum {number} + * @property {number} MATCH_TYPE_UNSPECIFIED=0 MATCH_TYPE_UNSPECIFIED value + * @property {number} EXACT=1 EXACT value + * @property {number} BEGINS_WITH=2 BEGINS_WITH value + * @property {number} ENDS_WITH=3 ENDS_WITH value + * @property {number} CONTAINS=4 CONTAINS value + * @property {number} FULL_REGEXP=5 FULL_REGEXP value + * @property {number} PARTIAL_REGEXP=6 PARTIAL_REGEXP value + */ + StringFilter.MatchType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MATCH_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "EXACT"] = 1; + values[valuesById[2] = "BEGINS_WITH"] = 2; + values[valuesById[3] = "ENDS_WITH"] = 3; + values[valuesById[4] = "CONTAINS"] = 4; + values[valuesById[5] = "FULL_REGEXP"] = 5; + values[valuesById[6] = "PARTIAL_REGEXP"] = 6; + return values; + })(); - /** - * Decodes a ReservedRange message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ReservedRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.DescriptorProto.ReservedRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return StringFilter; + })(); - /** - * Decodes a ReservedRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ReservedRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + Filter.InListFilter = (function() { - /** - * Verifies a ReservedRange message. - * @function verify - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ReservedRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) - if (!$util.isInteger(message.start)) - return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) - if (!$util.isInteger(message.end)) - return "end: integer expected"; - return null; - }; + /** + * Properties of an InListFilter. + * @memberof google.analytics.data.v1beta.Filter + * @interface IInListFilter + * @property {Array.|null} [values] InListFilter values + * @property {boolean|null} [caseSensitive] InListFilter caseSensitive + */ - /** - * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.DescriptorProto.ReservedRange} ReservedRange - */ - ReservedRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.DescriptorProto.ReservedRange) - return object; - var message = new $root.google.protobuf.DescriptorProto.ReservedRange(); - if (object.start != null) - message.start = object.start | 0; - if (object.end != null) - message.end = object.end | 0; - return message; - }; + /** + * Constructs a new InListFilter. + * @memberof google.analytics.data.v1beta.Filter + * @classdesc Represents an InListFilter. + * @implements IInListFilter + * @constructor + * @param {google.analytics.data.v1beta.Filter.IInListFilter=} [properties] Properties to set + */ + function InListFilter(properties) { + this.values = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a plain object from a ReservedRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @static - * @param {google.protobuf.DescriptorProto.ReservedRange} message ReservedRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ReservedRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.start = 0; - object.end = 0; - } - if (message.start != null && message.hasOwnProperty("start")) - object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) - object.end = message.end; - return object; - }; + /** + * InListFilter values. + * @member {Array.} values + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @instance + */ + InListFilter.prototype.values = $util.emptyArray; - /** - * Converts this ReservedRange to JSON. - * @function toJSON - * @memberof google.protobuf.DescriptorProto.ReservedRange - * @instance - * @returns {Object.} JSON object - */ - ReservedRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * InListFilter caseSensitive. + * @member {boolean} caseSensitive + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @instance + */ + InListFilter.prototype.caseSensitive = false; - return ReservedRange; - })(); + /** + * Creates a new InListFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IInListFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter instance + */ + InListFilter.create = function create(properties) { + return new InListFilter(properties); + }; - return DescriptorProto; - })(); + /** + * Encodes the specified InListFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IInListFilter} message InListFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InListFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.values != null && message.values.length) + for (var i = 0; i < message.values.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.values[i]); + if (message.caseSensitive != null && Object.hasOwnProperty.call(message, "caseSensitive")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.caseSensitive); + return writer; + }; - protobuf.ExtensionRangeOptions = (function() { + /** + * Encodes the specified InListFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.InListFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IInListFilter} message InListFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InListFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of an ExtensionRangeOptions. - * @memberof google.protobuf - * @interface IExtensionRangeOptions - * @property {Array.|null} [uninterpretedOption] ExtensionRangeOptions uninterpretedOption - */ + /** + * Decodes an InListFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InListFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.InListFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.values && message.values.length)) + message.values = []; + message.values.push(reader.string()); + break; + case 2: + message.caseSensitive = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new ExtensionRangeOptions. - * @memberof google.protobuf - * @classdesc Represents an ExtensionRangeOptions. - * @implements IExtensionRangeOptions - * @constructor - * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set - */ - function ExtensionRangeOptions(properties) { - this.uninterpretedOption = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes an InListFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InListFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * ExtensionRangeOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.ExtensionRangeOptions - * @instance - */ - ExtensionRangeOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * Verifies an InListFilter message. + * @function verify + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InListFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.values != null && message.hasOwnProperty("values")) { + if (!Array.isArray(message.values)) + return "values: array expected"; + for (var i = 0; i < message.values.length; ++i) + if (!$util.isString(message.values[i])) + return "values: string[] expected"; + } + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + if (typeof message.caseSensitive !== "boolean") + return "caseSensitive: boolean expected"; + return null; + }; - /** - * Creates a new ExtensionRangeOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {google.protobuf.IExtensionRangeOptions=} [properties] Properties to set - * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions instance - */ - ExtensionRangeOptions.create = function create(properties) { - return new ExtensionRangeOptions(properties); - }; + /** + * Creates an InListFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Filter.InListFilter} InListFilter + */ + InListFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Filter.InListFilter) + return object; + var message = new $root.google.analytics.data.v1beta.Filter.InListFilter(); + if (object.values) { + if (!Array.isArray(object.values)) + throw TypeError(".google.analytics.data.v1beta.Filter.InListFilter.values: array expected"); + message.values = []; + for (var i = 0; i < object.values.length; ++i) + message.values[i] = String(object.values[i]); + } + if (object.caseSensitive != null) + message.caseSensitive = Boolean(object.caseSensitive); + return message; + }; - /** - * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ExtensionRangeOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - return writer; - }; + /** + * Creates a plain object from an InListFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @static + * @param {google.analytics.data.v1beta.Filter.InListFilter} message InListFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InListFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.values = []; + if (options.defaults) + object.caseSensitive = false; + if (message.values && message.values.length) { + object.values = []; + for (var j = 0; j < message.values.length; ++j) + object.values[j] = message.values[j]; + } + if (message.caseSensitive != null && message.hasOwnProperty("caseSensitive")) + object.caseSensitive = message.caseSensitive; + return object; + }; - /** - * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {google.protobuf.IExtensionRangeOptions} message ExtensionRangeOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ExtensionRangeOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Converts this InListFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Filter.InListFilter + * @instance + * @returns {Object.} JSON object + */ + InListFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes an ExtensionRangeOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ExtensionRangeOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ExtensionRangeOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return InListFilter; + })(); - /** - * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ExtensionRangeOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + Filter.NumericFilter = (function() { - /** - * Verifies an ExtensionRangeOptions message. - * @function verify - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ExtensionRangeOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - return null; - }; + /** + * Properties of a NumericFilter. + * @memberof google.analytics.data.v1beta.Filter + * @interface INumericFilter + * @property {google.analytics.data.v1beta.Filter.NumericFilter.Operation|null} [operation] NumericFilter operation + * @property {google.analytics.data.v1beta.INumericValue|null} [value] NumericFilter value + */ - /** - * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.ExtensionRangeOptions} ExtensionRangeOptions - */ - ExtensionRangeOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.ExtensionRangeOptions) - return object; - var message = new $root.google.protobuf.ExtensionRangeOptions(); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - return message; - }; - - /** - * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.ExtensionRangeOptions - * @static - * @param {google.protobuf.ExtensionRangeOptions} message ExtensionRangeOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ExtensionRangeOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - return object; - }; + /** + * Constructs a new NumericFilter. + * @memberof google.analytics.data.v1beta.Filter + * @classdesc Represents a NumericFilter. + * @implements INumericFilter + * @constructor + * @param {google.analytics.data.v1beta.Filter.INumericFilter=} [properties] Properties to set + */ + function NumericFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Converts this ExtensionRangeOptions to JSON. - * @function toJSON - * @memberof google.protobuf.ExtensionRangeOptions - * @instance - * @returns {Object.} JSON object - */ - ExtensionRangeOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * NumericFilter operation. + * @member {google.analytics.data.v1beta.Filter.NumericFilter.Operation} operation + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @instance + */ + NumericFilter.prototype.operation = 0; - return ExtensionRangeOptions; - })(); + /** + * NumericFilter value. + * @member {google.analytics.data.v1beta.INumericValue|null|undefined} value + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @instance + */ + NumericFilter.prototype.value = null; - protobuf.FieldDescriptorProto = (function() { + /** + * Creates a new NumericFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {google.analytics.data.v1beta.Filter.INumericFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter instance + */ + NumericFilter.create = function create(properties) { + return new NumericFilter(properties); + }; - /** - * Properties of a FieldDescriptorProto. - * @memberof google.protobuf - * @interface IFieldDescriptorProto - * @property {string|null} [name] FieldDescriptorProto name - * @property {number|null} [number] FieldDescriptorProto number - * @property {google.protobuf.FieldDescriptorProto.Label|null} [label] FieldDescriptorProto label - * @property {google.protobuf.FieldDescriptorProto.Type|null} [type] FieldDescriptorProto type - * @property {string|null} [typeName] FieldDescriptorProto typeName - * @property {string|null} [extendee] FieldDescriptorProto extendee - * @property {string|null} [defaultValue] FieldDescriptorProto defaultValue - * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex - * @property {string|null} [jsonName] FieldDescriptorProto jsonName - * @property {google.protobuf.IFieldOptions|null} [options] FieldDescriptorProto options - * @property {boolean|null} [proto3Optional] FieldDescriptorProto proto3Optional - */ + /** + * Encodes the specified NumericFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {google.analytics.data.v1beta.Filter.INumericFilter} message NumericFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.operation != null && Object.hasOwnProperty.call(message, "operation")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.operation); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + $root.google.analytics.data.v1beta.NumericValue.encode(message.value, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Constructs a new FieldDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents a FieldDescriptorProto. - * @implements IFieldDescriptorProto - * @constructor - * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set - */ - function FieldDescriptorProto(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Encodes the specified NumericFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.NumericFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {google.analytics.data.v1beta.Filter.INumericFilter} message NumericFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * FieldDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.name = ""; + /** + * Decodes a NumericFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.NumericFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.operation = reader.int32(); + break; + case 2: + message.value = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * FieldDescriptorProto number. - * @member {number} number - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.number = 0; + /** + * Decodes a NumericFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * FieldDescriptorProto label. - * @member {google.protobuf.FieldDescriptorProto.Label} label - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.label = 1; + /** + * Verifies a NumericFilter message. + * @function verify + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NumericFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.operation != null && message.hasOwnProperty("operation")) + switch (message.operation) { + default: + return "operation: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + break; + } + if (message.value != null && message.hasOwnProperty("value")) { + var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.value); + if (error) + return "value." + error; + } + return null; + }; - /** - * FieldDescriptorProto type. - * @member {google.protobuf.FieldDescriptorProto.Type} type - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.type = 1; + /** + * Creates a NumericFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Filter.NumericFilter} NumericFilter + */ + NumericFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Filter.NumericFilter) + return object; + var message = new $root.google.analytics.data.v1beta.Filter.NumericFilter(); + switch (object.operation) { + case "OPERATION_UNSPECIFIED": + case 0: + message.operation = 0; + break; + case "EQUAL": + case 1: + message.operation = 1; + break; + case "LESS_THAN": + case 2: + message.operation = 2; + break; + case "LESS_THAN_OR_EQUAL": + case 3: + message.operation = 3; + break; + case "GREATER_THAN": + case 4: + message.operation = 4; + break; + case "GREATER_THAN_OR_EQUAL": + case 5: + message.operation = 5; + break; + } + if (object.value != null) { + if (typeof object.value !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.NumericFilter.value: object expected"); + message.value = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.value); + } + return message; + }; - /** - * FieldDescriptorProto typeName. - * @member {string} typeName - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.typeName = ""; + /** + * Creates a plain object from a NumericFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @static + * @param {google.analytics.data.v1beta.Filter.NumericFilter} message NumericFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NumericFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.operation = options.enums === String ? "OPERATION_UNSPECIFIED" : 0; + object.value = null; + } + if (message.operation != null && message.hasOwnProperty("operation")) + object.operation = options.enums === String ? $root.google.analytics.data.v1beta.Filter.NumericFilter.Operation[message.operation] : message.operation; + if (message.value != null && message.hasOwnProperty("value")) + object.value = $root.google.analytics.data.v1beta.NumericValue.toObject(message.value, options); + return object; + }; - /** - * FieldDescriptorProto extendee. - * @member {string} extendee - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.extendee = ""; + /** + * Converts this NumericFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Filter.NumericFilter + * @instance + * @returns {Object.} JSON object + */ + NumericFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * FieldDescriptorProto defaultValue. - * @member {string} defaultValue - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.defaultValue = ""; + /** + * Operation enum. + * @name google.analytics.data.v1beta.Filter.NumericFilter.Operation + * @enum {number} + * @property {number} OPERATION_UNSPECIFIED=0 OPERATION_UNSPECIFIED value + * @property {number} EQUAL=1 EQUAL value + * @property {number} LESS_THAN=2 LESS_THAN value + * @property {number} LESS_THAN_OR_EQUAL=3 LESS_THAN_OR_EQUAL value + * @property {number} GREATER_THAN=4 GREATER_THAN value + * @property {number} GREATER_THAN_OR_EQUAL=5 GREATER_THAN_OR_EQUAL value + */ + NumericFilter.Operation = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "OPERATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "EQUAL"] = 1; + values[valuesById[2] = "LESS_THAN"] = 2; + values[valuesById[3] = "LESS_THAN_OR_EQUAL"] = 3; + values[valuesById[4] = "GREATER_THAN"] = 4; + values[valuesById[5] = "GREATER_THAN_OR_EQUAL"] = 5; + return values; + })(); - /** - * FieldDescriptorProto oneofIndex. - * @member {number} oneofIndex - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.oneofIndex = 0; + return NumericFilter; + })(); - /** - * FieldDescriptorProto jsonName. - * @member {string} jsonName - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.jsonName = ""; + Filter.BetweenFilter = (function() { - /** - * FieldDescriptorProto options. - * @member {google.protobuf.IFieldOptions|null|undefined} options - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.options = null; + /** + * Properties of a BetweenFilter. + * @memberof google.analytics.data.v1beta.Filter + * @interface IBetweenFilter + * @property {google.analytics.data.v1beta.INumericValue|null} [fromValue] BetweenFilter fromValue + * @property {google.analytics.data.v1beta.INumericValue|null} [toValue] BetweenFilter toValue + */ - /** - * FieldDescriptorProto proto3Optional. - * @member {boolean} proto3Optional - * @memberof google.protobuf.FieldDescriptorProto - * @instance - */ - FieldDescriptorProto.prototype.proto3Optional = false; + /** + * Constructs a new BetweenFilter. + * @memberof google.analytics.data.v1beta.Filter + * @classdesc Represents a BetweenFilter. + * @implements IBetweenFilter + * @constructor + * @param {google.analytics.data.v1beta.Filter.IBetweenFilter=} [properties] Properties to set + */ + function BetweenFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new FieldDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {google.protobuf.IFieldDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto instance - */ - FieldDescriptorProto.create = function create(properties) { - return new FieldDescriptorProto(properties); - }; + /** + * BetweenFilter fromValue. + * @member {google.analytics.data.v1beta.INumericValue|null|undefined} fromValue + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @instance + */ + BetweenFilter.prototype.fromValue = null; - /** - * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FieldDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.extendee != null && Object.hasOwnProperty.call(message, "extendee")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee); - if (message.number != null && Object.hasOwnProperty.call(message, "number")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number); - if (message.label != null && Object.hasOwnProperty.call(message, "label")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label); - if (message.type != null && Object.hasOwnProperty.call(message, "type")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); - if (message.typeName != null && Object.hasOwnProperty.call(message, "typeName")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName); - if (message.defaultValue != null && Object.hasOwnProperty.call(message, "defaultValue")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.FieldOptions.encode(message.options, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.oneofIndex != null && Object.hasOwnProperty.call(message, "oneofIndex")) - writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex); - if (message.jsonName != null && Object.hasOwnProperty.call(message, "jsonName")) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.jsonName); - if (message.proto3Optional != null && Object.hasOwnProperty.call(message, "proto3Optional")) - writer.uint32(/* id 17, wireType 0 =*/136).bool(message.proto3Optional); - return writer; - }; + /** + * BetweenFilter toValue. + * @member {google.analytics.data.v1beta.INumericValue|null|undefined} toValue + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @instance + */ + BetweenFilter.prototype.toValue = null; - /** - * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {google.protobuf.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new BetweenFilter instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IBetweenFilter=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter instance + */ + BetweenFilter.create = function create(properties) { + return new BetweenFilter(properties); + }; - /** - * Decodes a FieldDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FieldDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 3: - message.number = reader.int32(); - break; - case 4: - message.label = reader.int32(); - break; - case 5: - message.type = reader.int32(); - break; - case 6: - message.typeName = reader.string(); - break; - case 2: - message.extendee = reader.string(); - break; - case 7: - message.defaultValue = reader.string(); - break; - case 9: - message.oneofIndex = reader.int32(); - break; - case 10: - message.jsonName = reader.string(); - break; - case 8: - message.options = $root.google.protobuf.FieldOptions.decode(reader, reader.uint32()); - break; - case 17: - message.proto3Optional = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FieldDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a FieldDescriptorProto message. - * @function verify - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FieldDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.number != null && message.hasOwnProperty("number")) - if (!$util.isInteger(message.number)) - return "number: integer expected"; - if (message.label != null && message.hasOwnProperty("label")) - switch (message.label) { - default: - return "label: enum value expected"; - case 1: - case 2: - case 3: - break; - } - if (message.type != null && message.hasOwnProperty("type")) - switch (message.type) { - default: - return "type: enum value expected"; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - break; - } - if (message.typeName != null && message.hasOwnProperty("typeName")) - if (!$util.isString(message.typeName)) - return "typeName: string expected"; - if (message.extendee != null && message.hasOwnProperty("extendee")) - if (!$util.isString(message.extendee)) - return "extendee: string expected"; - if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) - if (!$util.isString(message.defaultValue)) - return "defaultValue: string expected"; - if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) - if (!$util.isInteger(message.oneofIndex)) - return "oneofIndex: integer expected"; - if (message.jsonName != null && message.hasOwnProperty("jsonName")) - if (!$util.isString(message.jsonName)) - return "jsonName: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.FieldOptions.verify(message.options); - if (error) - return "options." + error; - } - if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) - if (typeof message.proto3Optional !== "boolean") - return "proto3Optional: boolean expected"; - return null; - }; + /** + * Encodes the specified BetweenFilter message. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BetweenFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fromValue != null && Object.hasOwnProperty.call(message, "fromValue")) + $root.google.analytics.data.v1beta.NumericValue.encode(message.fromValue, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.toValue != null && Object.hasOwnProperty.call(message, "toValue")) + $root.google.analytics.data.v1beta.NumericValue.encode(message.toValue, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.FieldDescriptorProto} FieldDescriptorProto - */ - FieldDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.FieldDescriptorProto) - return object; - var message = new $root.google.protobuf.FieldDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.number != null) - message.number = object.number | 0; - switch (object.label) { - case "LABEL_OPTIONAL": - case 1: - message.label = 1; - break; - case "LABEL_REQUIRED": - case 2: - message.label = 2; - break; - case "LABEL_REPEATED": - case 3: - message.label = 3; - break; - } - switch (object.type) { - case "TYPE_DOUBLE": - case 1: - message.type = 1; - break; - case "TYPE_FLOAT": - case 2: - message.type = 2; - break; - case "TYPE_INT64": - case 3: - message.type = 3; - break; - case "TYPE_UINT64": - case 4: - message.type = 4; - break; - case "TYPE_INT32": - case 5: - message.type = 5; - break; - case "TYPE_FIXED64": - case 6: - message.type = 6; - break; - case "TYPE_FIXED32": - case 7: - message.type = 7; - break; - case "TYPE_BOOL": - case 8: - message.type = 8; - break; - case "TYPE_STRING": - case 9: - message.type = 9; - break; - case "TYPE_GROUP": - case 10: - message.type = 10; - break; - case "TYPE_MESSAGE": - case 11: - message.type = 11; - break; - case "TYPE_BYTES": - case 12: - message.type = 12; - break; - case "TYPE_UINT32": - case 13: - message.type = 13; - break; - case "TYPE_ENUM": - case 14: - message.type = 14; - break; - case "TYPE_SFIXED32": - case 15: - message.type = 15; - break; - case "TYPE_SFIXED64": - case 16: - message.type = 16; - break; - case "TYPE_SINT32": - case 17: - message.type = 17; - break; - case "TYPE_SINT64": - case 18: - message.type = 18; - break; - } - if (object.typeName != null) - message.typeName = String(object.typeName); - if (object.extendee != null) - message.extendee = String(object.extendee); - if (object.defaultValue != null) - message.defaultValue = String(object.defaultValue); - if (object.oneofIndex != null) - message.oneofIndex = object.oneofIndex | 0; - if (object.jsonName != null) - message.jsonName = String(object.jsonName); - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.FieldOptions.fromObject(object.options); - } - if (object.proto3Optional != null) - message.proto3Optional = Boolean(object.proto3Optional); - return message; - }; + /** + * Encodes the specified BetweenFilter message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Filter.BetweenFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {google.analytics.data.v1beta.Filter.IBetweenFilter} message BetweenFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BetweenFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.FieldDescriptorProto - * @static - * @param {google.protobuf.FieldDescriptorProto} message FieldDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FieldDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.extendee = ""; - object.number = 0; - object.label = options.enums === String ? "LABEL_OPTIONAL" : 1; - object.type = options.enums === String ? "TYPE_DOUBLE" : 1; - object.typeName = ""; - object.defaultValue = ""; - object.options = null; - object.oneofIndex = 0; - object.jsonName = ""; - object.proto3Optional = false; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.extendee != null && message.hasOwnProperty("extendee")) - object.extendee = message.extendee; - if (message.number != null && message.hasOwnProperty("number")) - object.number = message.number; - if (message.label != null && message.hasOwnProperty("label")) - object.label = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Label[message.label] : message.label; - if (message.type != null && message.hasOwnProperty("type")) - object.type = options.enums === String ? $root.google.protobuf.FieldDescriptorProto.Type[message.type] : message.type; - if (message.typeName != null && message.hasOwnProperty("typeName")) - object.typeName = message.typeName; - if (message.defaultValue != null && message.hasOwnProperty("defaultValue")) - object.defaultValue = message.defaultValue; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.FieldOptions.toObject(message.options, options); - if (message.oneofIndex != null && message.hasOwnProperty("oneofIndex")) - object.oneofIndex = message.oneofIndex; - if (message.jsonName != null && message.hasOwnProperty("jsonName")) - object.jsonName = message.jsonName; - if (message.proto3Optional != null && message.hasOwnProperty("proto3Optional")) - object.proto3Optional = message.proto3Optional; - return object; - }; + /** + * Decodes a BetweenFilter message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BetweenFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Filter.BetweenFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fromValue = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); + break; + case 2: + message.toValue = $root.google.analytics.data.v1beta.NumericValue.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Converts this FieldDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.FieldDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - FieldDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a BetweenFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BetweenFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Type enum. - * @name google.protobuf.FieldDescriptorProto.Type - * @enum {number} - * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value - * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value - * @property {number} TYPE_INT64=3 TYPE_INT64 value - * @property {number} TYPE_UINT64=4 TYPE_UINT64 value - * @property {number} TYPE_INT32=5 TYPE_INT32 value - * @property {number} TYPE_FIXED64=6 TYPE_FIXED64 value - * @property {number} TYPE_FIXED32=7 TYPE_FIXED32 value - * @property {number} TYPE_BOOL=8 TYPE_BOOL value - * @property {number} TYPE_STRING=9 TYPE_STRING value - * @property {number} TYPE_GROUP=10 TYPE_GROUP value - * @property {number} TYPE_MESSAGE=11 TYPE_MESSAGE value - * @property {number} TYPE_BYTES=12 TYPE_BYTES value - * @property {number} TYPE_UINT32=13 TYPE_UINT32 value - * @property {number} TYPE_ENUM=14 TYPE_ENUM value - * @property {number} TYPE_SFIXED32=15 TYPE_SFIXED32 value - * @property {number} TYPE_SFIXED64=16 TYPE_SFIXED64 value - * @property {number} TYPE_SINT32=17 TYPE_SINT32 value - * @property {number} TYPE_SINT64=18 TYPE_SINT64 value - */ - FieldDescriptorProto.Type = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[1] = "TYPE_DOUBLE"] = 1; - values[valuesById[2] = "TYPE_FLOAT"] = 2; - values[valuesById[3] = "TYPE_INT64"] = 3; - values[valuesById[4] = "TYPE_UINT64"] = 4; - values[valuesById[5] = "TYPE_INT32"] = 5; - values[valuesById[6] = "TYPE_FIXED64"] = 6; - values[valuesById[7] = "TYPE_FIXED32"] = 7; - values[valuesById[8] = "TYPE_BOOL"] = 8; - values[valuesById[9] = "TYPE_STRING"] = 9; - values[valuesById[10] = "TYPE_GROUP"] = 10; - values[valuesById[11] = "TYPE_MESSAGE"] = 11; - values[valuesById[12] = "TYPE_BYTES"] = 12; - values[valuesById[13] = "TYPE_UINT32"] = 13; - values[valuesById[14] = "TYPE_ENUM"] = 14; - values[valuesById[15] = "TYPE_SFIXED32"] = 15; - values[valuesById[16] = "TYPE_SFIXED64"] = 16; - values[valuesById[17] = "TYPE_SINT32"] = 17; - values[valuesById[18] = "TYPE_SINT64"] = 18; - return values; - })(); + /** + * Verifies a BetweenFilter message. + * @function verify + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BetweenFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.fromValue != null && message.hasOwnProperty("fromValue")) { + var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.fromValue); + if (error) + return "fromValue." + error; + } + if (message.toValue != null && message.hasOwnProperty("toValue")) { + var error = $root.google.analytics.data.v1beta.NumericValue.verify(message.toValue); + if (error) + return "toValue." + error; + } + return null; + }; - /** - * Label enum. - * @name google.protobuf.FieldDescriptorProto.Label - * @enum {number} - * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value - * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value - * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value - */ - FieldDescriptorProto.Label = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[1] = "LABEL_OPTIONAL"] = 1; - values[valuesById[2] = "LABEL_REQUIRED"] = 2; - values[valuesById[3] = "LABEL_REPEATED"] = 3; - return values; - })(); + /** + * Creates a BetweenFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Filter.BetweenFilter} BetweenFilter + */ + BetweenFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Filter.BetweenFilter) + return object; + var message = new $root.google.analytics.data.v1beta.Filter.BetweenFilter(); + if (object.fromValue != null) { + if (typeof object.fromValue !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.BetweenFilter.fromValue: object expected"); + message.fromValue = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.fromValue); + } + if (object.toValue != null) { + if (typeof object.toValue !== "object") + throw TypeError(".google.analytics.data.v1beta.Filter.BetweenFilter.toValue: object expected"); + message.toValue = $root.google.analytics.data.v1beta.NumericValue.fromObject(object.toValue); + } + return message; + }; - return FieldDescriptorProto; - })(); - - protobuf.OneofDescriptorProto = (function() { - - /** - * Properties of an OneofDescriptorProto. - * @memberof google.protobuf - * @interface IOneofDescriptorProto - * @property {string|null} [name] OneofDescriptorProto name - * @property {google.protobuf.IOneofOptions|null} [options] OneofDescriptorProto options - */ - - /** - * Constructs a new OneofDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents an OneofDescriptorProto. - * @implements IOneofDescriptorProto - * @constructor - * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set - */ - function OneofDescriptorProto(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a plain object from a BetweenFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @static + * @param {google.analytics.data.v1beta.Filter.BetweenFilter} message BetweenFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BetweenFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.fromValue = null; + object.toValue = null; + } + if (message.fromValue != null && message.hasOwnProperty("fromValue")) + object.fromValue = $root.google.analytics.data.v1beta.NumericValue.toObject(message.fromValue, options); + if (message.toValue != null && message.hasOwnProperty("toValue")) + object.toValue = $root.google.analytics.data.v1beta.NumericValue.toObject(message.toValue, options); + return object; + }; - /** - * OneofDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.OneofDescriptorProto - * @instance - */ - OneofDescriptorProto.prototype.name = ""; + /** + * Converts this BetweenFilter to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Filter.BetweenFilter + * @instance + * @returns {Object.} JSON object + */ + BetweenFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * OneofDescriptorProto options. - * @member {google.protobuf.IOneofOptions|null|undefined} options - * @memberof google.protobuf.OneofDescriptorProto - * @instance - */ - OneofDescriptorProto.prototype.options = null; + return BetweenFilter; + })(); - /** - * Creates a new OneofDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {google.protobuf.IOneofDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto instance - */ - OneofDescriptorProto.create = function create(properties) { - return new OneofDescriptorProto(properties); - }; + return Filter; + })(); - /** - * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OneofDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + v1beta.OrderBy = (function() { - /** - * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {google.protobuf.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Properties of an OrderBy. + * @memberof google.analytics.data.v1beta + * @interface IOrderBy + * @property {google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null} [metric] OrderBy metric + * @property {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null} [dimension] OrderBy dimension + * @property {google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null} [pivot] OrderBy pivot + * @property {boolean|null} [desc] OrderBy desc + */ - /** - * Decodes an OneofDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OneofDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.options = $root.google.protobuf.OneofOptions.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Constructs a new OrderBy. + * @memberof google.analytics.data.v1beta + * @classdesc Represents an OrderBy. + * @implements IOrderBy + * @constructor + * @param {google.analytics.data.v1beta.IOrderBy=} [properties] Properties to set + */ + function OrderBy(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return message; - }; - - /** - * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OneofDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an OneofDescriptorProto message. - * @function verify - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - OneofDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.OneofOptions.verify(message.options); - if (error) - return "options." + error; - } - return null; - }; - /** - * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.OneofDescriptorProto} OneofDescriptorProto - */ - OneofDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.OneofDescriptorProto) - return object; - var message = new $root.google.protobuf.OneofDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.OneofOptions.fromObject(object.options); - } - return message; - }; + /** + * OrderBy metric. + * @member {google.analytics.data.v1beta.OrderBy.IMetricOrderBy|null|undefined} metric + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + */ + OrderBy.prototype.metric = null; - /** - * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.OneofDescriptorProto - * @static - * @param {google.protobuf.OneofDescriptorProto} message OneofDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - OneofDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.options = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.OneofOptions.toObject(message.options, options); - return object; - }; + /** + * OrderBy dimension. + * @member {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy|null|undefined} dimension + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + */ + OrderBy.prototype.dimension = null; - /** - * Converts this OneofDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.OneofDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - OneofDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * OrderBy pivot. + * @member {google.analytics.data.v1beta.OrderBy.IPivotOrderBy|null|undefined} pivot + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + */ + OrderBy.prototype.pivot = null; - return OneofDescriptorProto; - })(); + /** + * OrderBy desc. + * @member {boolean} desc + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + */ + OrderBy.prototype.desc = false; - protobuf.EnumDescriptorProto = (function() { + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Properties of an EnumDescriptorProto. - * @memberof google.protobuf - * @interface IEnumDescriptorProto - * @property {string|null} [name] EnumDescriptorProto name - * @property {Array.|null} [value] EnumDescriptorProto value - * @property {google.protobuf.IEnumOptions|null} [options] EnumDescriptorProto options - * @property {Array.|null} [reservedRange] EnumDescriptorProto reservedRange - * @property {Array.|null} [reservedName] EnumDescriptorProto reservedName - */ + /** + * OrderBy oneOrderBy. + * @member {"metric"|"dimension"|"pivot"|undefined} oneOrderBy + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + */ + Object.defineProperty(OrderBy.prototype, "oneOrderBy", { + get: $util.oneOfGetter($oneOfFields = ["metric", "dimension", "pivot"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Constructs a new EnumDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents an EnumDescriptorProto. - * @implements IEnumDescriptorProto - * @constructor - * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set - */ - function EnumDescriptorProto(properties) { - this.value = []; - this.reservedRange = []; - this.reservedName = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a new OrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {google.analytics.data.v1beta.IOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.OrderBy} OrderBy instance + */ + OrderBy.create = function create(properties) { + return new OrderBy(properties); + }; - /** - * EnumDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.EnumDescriptorProto - * @instance - */ - EnumDescriptorProto.prototype.name = ""; + /** + * Encodes the specified OrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {google.analytics.data.v1beta.IOrderBy} message OrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metric != null && Object.hasOwnProperty.call(message, "metric")) + $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.encode(message.metric, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) + $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.encode(message.dimension, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.pivot != null && Object.hasOwnProperty.call(message, "pivot")) + $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.encode(message.pivot, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.desc); + return writer; + }; - /** - * EnumDescriptorProto value. - * @member {Array.} value - * @memberof google.protobuf.EnumDescriptorProto - * @instance - */ - EnumDescriptorProto.prototype.value = $util.emptyArray; + /** + * Encodes the specified OrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {google.analytics.data.v1beta.IOrderBy} message OrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + OrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * EnumDescriptorProto options. - * @member {google.protobuf.IEnumOptions|null|undefined} options - * @memberof google.protobuf.EnumDescriptorProto - * @instance - */ - EnumDescriptorProto.prototype.options = null; + /** + * Decodes an OrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OrderBy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.decode(reader, reader.uint32()); + break; + case 2: + message.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.decode(reader, reader.uint32()); + break; + case 3: + message.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.decode(reader, reader.uint32()); + break; + case 4: + message.desc = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * EnumDescriptorProto reservedRange. - * @member {Array.} reservedRange - * @memberof google.protobuf.EnumDescriptorProto - * @instance - */ - EnumDescriptorProto.prototype.reservedRange = $util.emptyArray; + /** + * Decodes an OrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + OrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * EnumDescriptorProto reservedName. - * @member {Array.} reservedName - * @memberof google.protobuf.EnumDescriptorProto - * @instance - */ - EnumDescriptorProto.prototype.reservedName = $util.emptyArray; + /** + * Verifies an OrderBy message. + * @function verify + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + OrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.metric != null && message.hasOwnProperty("metric")) { + properties.oneOrderBy = 1; + { + var error = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify(message.metric); + if (error) + return "metric." + error; + } + } + if (message.dimension != null && message.hasOwnProperty("dimension")) { + if (properties.oneOrderBy === 1) + return "oneOrderBy: multiple values"; + properties.oneOrderBy = 1; + { + var error = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify(message.dimension); + if (error) + return "dimension." + error; + } + } + if (message.pivot != null && message.hasOwnProperty("pivot")) { + if (properties.oneOrderBy === 1) + return "oneOrderBy: multiple values"; + properties.oneOrderBy = 1; + { + var error = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify(message.pivot); + if (error) + return "pivot." + error; + } + } + if (message.desc != null && message.hasOwnProperty("desc")) + if (typeof message.desc !== "boolean") + return "desc: boolean expected"; + return null; + }; - /** - * Creates a new EnumDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {google.protobuf.IEnumDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto instance - */ - EnumDescriptorProto.create = function create(properties) { - return new EnumDescriptorProto(properties); - }; + /** + * Creates an OrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.OrderBy} OrderBy + */ + OrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.OrderBy) + return object; + var message = new $root.google.analytics.data.v1beta.OrderBy(); + if (object.metric != null) { + if (typeof object.metric !== "object") + throw TypeError(".google.analytics.data.v1beta.OrderBy.metric: object expected"); + message.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.fromObject(object.metric); + } + if (object.dimension != null) { + if (typeof object.dimension !== "object") + throw TypeError(".google.analytics.data.v1beta.OrderBy.dimension: object expected"); + message.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.fromObject(object.dimension); + } + if (object.pivot != null) { + if (typeof object.pivot !== "object") + throw TypeError(".google.analytics.data.v1beta.OrderBy.pivot: object expected"); + message.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.fromObject(object.pivot); + } + if (object.desc != null) + message.desc = Boolean(object.desc); + return message; + }; - /** - * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.value != null && message.value.length) - for (var i = 0; i < message.value.length; ++i) - $root.google.protobuf.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.EnumOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.reservedRange != null && message.reservedRange.length) - for (var i = 0; i < message.reservedRange.length; ++i) - $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.reservedName != null && message.reservedName.length) - for (var i = 0; i < message.reservedName.length; ++i) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.reservedName[i]); - return writer; - }; + /** + * Creates a plain object from an OrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.OrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy} message OrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + OrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.desc = false; + if (message.metric != null && message.hasOwnProperty("metric")) { + object.metric = $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy.toObject(message.metric, options); + if (options.oneofs) + object.oneOrderBy = "metric"; + } + if (message.dimension != null && message.hasOwnProperty("dimension")) { + object.dimension = $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.toObject(message.dimension, options); + if (options.oneofs) + object.oneOrderBy = "dimension"; + } + if (message.pivot != null && message.hasOwnProperty("pivot")) { + object.pivot = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.toObject(message.pivot, options); + if (options.oneofs) + object.oneOrderBy = "pivot"; + } + if (message.desc != null && message.hasOwnProperty("desc")) + object.desc = message.desc; + return object; + }; - /** - * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {google.protobuf.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Converts this OrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.OrderBy + * @instance + * @returns {Object.} JSON object + */ + OrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes an EnumDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.value && message.value.length)) - message.value = []; - message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - message.options = $root.google.protobuf.EnumOptions.decode(reader, reader.uint32()); - break; - case 4: - if (!(message.reservedRange && message.reservedRange.length)) - message.reservedRange = []; - message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader, reader.uint32())); - break; - case 5: - if (!(message.reservedName && message.reservedName.length)) - message.reservedName = []; - message.reservedName.push(reader.string()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + OrderBy.MetricOrderBy = (function() { - /** - * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a MetricOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @interface IMetricOrderBy + * @property {string|null} [metricName] MetricOrderBy metricName + */ - /** - * Verifies an EnumDescriptorProto message. - * @function verify - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - EnumDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.value != null && message.hasOwnProperty("value")) { - if (!Array.isArray(message.value)) - return "value: array expected"; - for (var i = 0; i < message.value.length; ++i) { - var error = $root.google.protobuf.EnumValueDescriptorProto.verify(message.value[i]); - if (error) - return "value." + error; - } - } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.EnumOptions.verify(message.options); - if (error) - return "options." + error; - } - if (message.reservedRange != null && message.hasOwnProperty("reservedRange")) { - if (!Array.isArray(message.reservedRange)) - return "reservedRange: array expected"; - for (var i = 0; i < message.reservedRange.length; ++i) { - var error = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.verify(message.reservedRange[i]); - if (error) - return "reservedRange." + error; - } - } - if (message.reservedName != null && message.hasOwnProperty("reservedName")) { - if (!Array.isArray(message.reservedName)) - return "reservedName: array expected"; - for (var i = 0; i < message.reservedName.length; ++i) - if (!$util.isString(message.reservedName[i])) - return "reservedName: string[] expected"; - } - return null; - }; + /** + * Constructs a new MetricOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @classdesc Represents a MetricOrderBy. + * @implements IMetricOrderBy + * @constructor + * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy=} [properties] Properties to set + */ + function MetricOrderBy(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.EnumDescriptorProto} EnumDescriptorProto - */ - EnumDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.EnumDescriptorProto) - return object; - var message = new $root.google.protobuf.EnumDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.value) { - if (!Array.isArray(object.value)) - throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected"); - message.value = []; - for (var i = 0; i < object.value.length; ++i) { - if (typeof object.value[i] !== "object") - throw TypeError(".google.protobuf.EnumDescriptorProto.value: object expected"); - message.value[i] = $root.google.protobuf.EnumValueDescriptorProto.fromObject(object.value[i]); - } - } - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.EnumDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.EnumOptions.fromObject(object.options); - } - if (object.reservedRange) { - if (!Array.isArray(object.reservedRange)) - throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: array expected"); - message.reservedRange = []; - for (var i = 0; i < object.reservedRange.length; ++i) { - if (typeof object.reservedRange[i] !== "object") - throw TypeError(".google.protobuf.EnumDescriptorProto.reservedRange: object expected"); - message.reservedRange[i] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.fromObject(object.reservedRange[i]); - } - } - if (object.reservedName) { - if (!Array.isArray(object.reservedName)) - throw TypeError(".google.protobuf.EnumDescriptorProto.reservedName: array expected"); - message.reservedName = []; - for (var i = 0; i < object.reservedName.length; ++i) - message.reservedName[i] = String(object.reservedName[i]); - } - return message; - }; + /** + * MetricOrderBy metricName. + * @member {string} metricName + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @instance + */ + MetricOrderBy.prototype.metricName = ""; - /** - * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.EnumDescriptorProto - * @static - * @param {google.protobuf.EnumDescriptorProto} message EnumDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - EnumDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.value = []; - object.reservedRange = []; - object.reservedName = []; - } - if (options.defaults) { - object.name = ""; - object.options = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.value && message.value.length) { - object.value = []; - for (var j = 0; j < message.value.length; ++j) - object.value[j] = $root.google.protobuf.EnumValueDescriptorProto.toObject(message.value[j], options); - } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.EnumOptions.toObject(message.options, options); - if (message.reservedRange && message.reservedRange.length) { - object.reservedRange = []; - for (var j = 0; j < message.reservedRange.length; ++j) - object.reservedRange[j] = $root.google.protobuf.EnumDescriptorProto.EnumReservedRange.toObject(message.reservedRange[j], options); - } - if (message.reservedName && message.reservedName.length) { - object.reservedName = []; - for (var j = 0; j < message.reservedName.length; ++j) - object.reservedName[j] = message.reservedName[j]; - } - return object; - }; + /** + * Creates a new MetricOrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy instance + */ + MetricOrderBy.create = function create(properties) { + return new MetricOrderBy(properties); + }; - /** - * Converts this EnumDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.EnumDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - EnumDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified MetricOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricOrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); + return writer; + }; - EnumDescriptorProto.EnumReservedRange = (function() { + /** + * Encodes the specified MetricOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.MetricOrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IMetricOrderBy} message MetricOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricOrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Properties of an EnumReservedRange. - * @memberof google.protobuf.EnumDescriptorProto - * @interface IEnumReservedRange - * @property {number|null} [start] EnumReservedRange start - * @property {number|null} [end] EnumReservedRange end - */ + /** + * Decodes a MetricOrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricOrderBy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metricName = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Constructs a new EnumReservedRange. - * @memberof google.protobuf.EnumDescriptorProto - * @classdesc Represents an EnumReservedRange. - * @implements IEnumReservedRange - * @constructor - * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set - */ - function EnumReservedRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes a MetricOrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricOrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * EnumReservedRange start. - * @member {number} start - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @instance - */ - EnumReservedRange.prototype.start = 0; + /** + * Verifies a MetricOrderBy message. + * @function verify + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricOrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.metricName != null && message.hasOwnProperty("metricName")) + if (!$util.isString(message.metricName)) + return "metricName: string expected"; + return null; + }; - /** - * EnumReservedRange end. - * @member {number} end - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @instance - */ - EnumReservedRange.prototype.end = 0; + /** + * Creates a MetricOrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.OrderBy.MetricOrderBy} MetricOrderBy + */ + MetricOrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy) + return object; + var message = new $root.google.analytics.data.v1beta.OrderBy.MetricOrderBy(); + if (object.metricName != null) + message.metricName = String(object.metricName); + return message; + }; - /** - * Creates a new EnumReservedRange instance using the specified properties. - * @function create - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange=} [properties] Properties to set - * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange instance - */ - EnumReservedRange.create = function create(properties) { - return new EnumReservedRange(properties); - }; + /** + * Creates a plain object from a MetricOrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.MetricOrderBy} message MetricOrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricOrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metricName = ""; + if (message.metricName != null && message.hasOwnProperty("metricName")) + object.metricName = message.metricName; + return object; + }; - /** - * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. - * @function encode - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumReservedRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.start != null && Object.hasOwnProperty.call(message, "start")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start); - if (message.end != null && Object.hasOwnProperty.call(message, "end")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end); - return writer; - }; + /** + * Converts this MetricOrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.OrderBy.MetricOrderBy + * @instance + * @returns {Object.} JSON object + */ + MetricOrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {google.protobuf.EnumDescriptorProto.IEnumReservedRange} message EnumReservedRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumReservedRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + return MetricOrderBy; + })(); - /** - * Decodes an EnumReservedRange message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumReservedRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.start = reader.int32(); - break; - case 2: - message.end = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + OrderBy.DimensionOrderBy = (function() { - /** - * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumReservedRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a DimensionOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @interface IDimensionOrderBy + * @property {string|null} [dimensionName] DimensionOrderBy dimensionName + * @property {google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType|null} [orderType] DimensionOrderBy orderType + */ - /** - * Verifies an EnumReservedRange message. - * @function verify - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - EnumReservedRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.start != null && message.hasOwnProperty("start")) - if (!$util.isInteger(message.start)) - return "start: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) - if (!$util.isInteger(message.end)) - return "end: integer expected"; - return null; - }; + /** + * Constructs a new DimensionOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @classdesc Represents a DimensionOrderBy. + * @implements IDimensionOrderBy + * @constructor + * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy=} [properties] Properties to set + */ + function DimensionOrderBy(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.EnumDescriptorProto.EnumReservedRange} EnumReservedRange - */ - EnumReservedRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange) - return object; - var message = new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange(); - if (object.start != null) - message.start = object.start | 0; - if (object.end != null) - message.end = object.end | 0; - return message; - }; + /** + * DimensionOrderBy dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @instance + */ + DimensionOrderBy.prototype.dimensionName = ""; - /** - * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @static - * @param {google.protobuf.EnumDescriptorProto.EnumReservedRange} message EnumReservedRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - EnumReservedRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.start = 0; - object.end = 0; - } - if (message.start != null && message.hasOwnProperty("start")) - object.start = message.start; - if (message.end != null && message.hasOwnProperty("end")) - object.end = message.end; - return object; - }; + /** + * DimensionOrderBy orderType. + * @member {google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType} orderType + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @instance + */ + DimensionOrderBy.prototype.orderType = 0; - /** - * Converts this EnumReservedRange to JSON. - * @function toJSON - * @memberof google.protobuf.EnumDescriptorProto.EnumReservedRange - * @instance - * @returns {Object.} JSON object - */ - EnumReservedRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a new DimensionOrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy instance + */ + DimensionOrderBy.create = function create(properties) { + return new DimensionOrderBy(properties); + }; - return EnumReservedRange; - })(); + /** + * Encodes the specified DimensionOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionOrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + if (message.orderType != null && Object.hasOwnProperty.call(message, "orderType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.orderType); + return writer; + }; - return EnumDescriptorProto; - })(); + /** + * Encodes the specified DimensionOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.DimensionOrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IDimensionOrderBy} message DimensionOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionOrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - protobuf.EnumValueDescriptorProto = (function() { + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionOrderBy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dimensionName = reader.string(); + break; + case 2: + message.orderType = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Properties of an EnumValueDescriptorProto. - * @memberof google.protobuf - * @interface IEnumValueDescriptorProto - * @property {string|null} [name] EnumValueDescriptorProto name - * @property {number|null} [number] EnumValueDescriptorProto number - * @property {google.protobuf.IEnumValueOptions|null} [options] EnumValueDescriptorProto options - */ + /** + * Decodes a DimensionOrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionOrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new EnumValueDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents an EnumValueDescriptorProto. - * @implements IEnumValueDescriptorProto - * @constructor - * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set - */ - function EnumValueDescriptorProto(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Verifies a DimensionOrderBy message. + * @function verify + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionOrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + if (message.orderType != null && message.hasOwnProperty("orderType")) + switch (message.orderType) { + default: + return "orderType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; - /** - * EnumValueDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.EnumValueDescriptorProto - * @instance - */ - EnumValueDescriptorProto.prototype.name = ""; + /** + * Creates a DimensionOrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} DimensionOrderBy + */ + DimensionOrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy) + return object; + var message = new $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + switch (object.orderType) { + case "ORDER_TYPE_UNSPECIFIED": + case 0: + message.orderType = 0; + break; + case "ALPHANUMERIC": + case 1: + message.orderType = 1; + break; + case "CASE_INSENSITIVE_ALPHANUMERIC": + case 2: + message.orderType = 2; + break; + case "NUMERIC": + case 3: + message.orderType = 3; + break; + } + return message; + }; - /** - * EnumValueDescriptorProto number. - * @member {number} number - * @memberof google.protobuf.EnumValueDescriptorProto - * @instance - */ - EnumValueDescriptorProto.prototype.number = 0; + /** + * Creates a plain object from a DimensionOrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.DimensionOrderBy} message DimensionOrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionOrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.dimensionName = ""; + object.orderType = options.enums === String ? "ORDER_TYPE_UNSPECIFIED" : 0; + } + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; + if (message.orderType != null && message.hasOwnProperty("orderType")) + object.orderType = options.enums === String ? $root.google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType[message.orderType] : message.orderType; + return object; + }; - /** - * EnumValueDescriptorProto options. - * @member {google.protobuf.IEnumValueOptions|null|undefined} options - * @memberof google.protobuf.EnumValueDescriptorProto - * @instance - */ - EnumValueDescriptorProto.prototype.options = null; + /** + * Converts this DimensionOrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.OrderBy.DimensionOrderBy + * @instance + * @returns {Object.} JSON object + */ + DimensionOrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a new EnumValueDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {google.protobuf.IEnumValueDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto instance - */ - EnumValueDescriptorProto.create = function create(properties) { - return new EnumValueDescriptorProto(properties); - }; + /** + * OrderType enum. + * @name google.analytics.data.v1beta.OrderBy.DimensionOrderBy.OrderType + * @enum {number} + * @property {number} ORDER_TYPE_UNSPECIFIED=0 ORDER_TYPE_UNSPECIFIED value + * @property {number} ALPHANUMERIC=1 ALPHANUMERIC value + * @property {number} CASE_INSENSITIVE_ALPHANUMERIC=2 CASE_INSENSITIVE_ALPHANUMERIC value + * @property {number} NUMERIC=3 NUMERIC value + */ + DimensionOrderBy.OrderType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ORDER_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "ALPHANUMERIC"] = 1; + values[valuesById[2] = "CASE_INSENSITIVE_ALPHANUMERIC"] = 2; + values[valuesById[3] = "NUMERIC"] = 3; + return values; + })(); - /** - * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumValueDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.number != null && Object.hasOwnProperty.call(message, "number")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.EnumValueOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - return writer; - }; + return DimensionOrderBy; + })(); - /** - * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {google.protobuf.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + OrderBy.PivotOrderBy = (function() { - /** - * Decodes an EnumValueDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumValueDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.number = reader.int32(); - break; - case 3: - message.options = $root.google.protobuf.EnumValueOptions.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Properties of a PivotOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @interface IPivotOrderBy + * @property {string|null} [metricName] PivotOrderBy metricName + * @property {Array.|null} [pivotSelections] PivotOrderBy pivotSelections + */ - /** - * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumValueDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Constructs a new PivotOrderBy. + * @memberof google.analytics.data.v1beta.OrderBy + * @classdesc Represents a PivotOrderBy. + * @implements IPivotOrderBy + * @constructor + * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy=} [properties] Properties to set + */ + function PivotOrderBy(properties) { + this.pivotSelections = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Verifies an EnumValueDescriptorProto message. - * @function verify - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - EnumValueDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.number != null && message.hasOwnProperty("number")) - if (!$util.isInteger(message.number)) - return "number: integer expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.EnumValueOptions.verify(message.options); - if (error) - return "options." + error; - } - return null; - }; + /** + * PivotOrderBy metricName. + * @member {string} metricName + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @instance + */ + PivotOrderBy.prototype.metricName = ""; - /** - * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.EnumValueDescriptorProto} EnumValueDescriptorProto - */ - EnumValueDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.EnumValueDescriptorProto) - return object; - var message = new $root.google.protobuf.EnumValueDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.number != null) - message.number = object.number | 0; - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.EnumValueOptions.fromObject(object.options); - } - return message; - }; + /** + * PivotOrderBy pivotSelections. + * @member {Array.} pivotSelections + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @instance + */ + PivotOrderBy.prototype.pivotSelections = $util.emptyArray; - /** - * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.EnumValueDescriptorProto - * @static - * @param {google.protobuf.EnumValueDescriptorProto} message EnumValueDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - EnumValueDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.number = 0; - object.options = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.number != null && message.hasOwnProperty("number")) - object.number = message.number; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.EnumValueOptions.toObject(message.options, options); - return object; - }; + /** + * Creates a new PivotOrderBy instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy instance + */ + PivotOrderBy.create = function create(properties) { + return new PivotOrderBy(properties); + }; - /** - * Converts this EnumValueDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.EnumValueDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - EnumValueDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified PivotOrderBy message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotOrderBy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); + if (message.pivotSelections != null && message.pivotSelections.length) + for (var i = 0; i < message.pivotSelections.length; ++i) + $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.encode(message.pivotSelections[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - return EnumValueDescriptorProto; - })(); + /** + * Encodes the specified PivotOrderBy message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.IPivotOrderBy} message PivotOrderBy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotOrderBy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - protobuf.ServiceDescriptorProto = (function() { + /** + * Decodes a PivotOrderBy message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotOrderBy.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metricName = reader.string(); + break; + case 2: + if (!(message.pivotSelections && message.pivotSelections.length)) + message.pivotSelections = []; + message.pivotSelections.push($root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Properties of a ServiceDescriptorProto. - * @memberof google.protobuf - * @interface IServiceDescriptorProto - * @property {string|null} [name] ServiceDescriptorProto name - * @property {Array.|null} [method] ServiceDescriptorProto method - * @property {google.protobuf.IServiceOptions|null} [options] ServiceDescriptorProto options - */ + /** + * Decodes a PivotOrderBy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotOrderBy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new ServiceDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents a ServiceDescriptorProto. - * @implements IServiceDescriptorProto - * @constructor - * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set - */ - function ServiceDescriptorProto(properties) { - this.method = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Verifies a PivotOrderBy message. + * @function verify + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PivotOrderBy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.metricName != null && message.hasOwnProperty("metricName")) + if (!$util.isString(message.metricName)) + return "metricName: string expected"; + if (message.pivotSelections != null && message.hasOwnProperty("pivotSelections")) { + if (!Array.isArray(message.pivotSelections)) + return "pivotSelections: array expected"; + for (var i = 0; i < message.pivotSelections.length; ++i) { + var error = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify(message.pivotSelections[i]); + if (error) + return "pivotSelections." + error; + } + } + return null; + }; - /** - * ServiceDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.ServiceDescriptorProto - * @instance - */ - ServiceDescriptorProto.prototype.name = ""; + /** + * Creates a PivotOrderBy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy} PivotOrderBy + */ + PivotOrderBy.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy) + return object; + var message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy(); + if (object.metricName != null) + message.metricName = String(object.metricName); + if (object.pivotSelections) { + if (!Array.isArray(object.pivotSelections)) + throw TypeError(".google.analytics.data.v1beta.OrderBy.PivotOrderBy.pivotSelections: array expected"); + message.pivotSelections = []; + for (var i = 0; i < object.pivotSelections.length; ++i) { + if (typeof object.pivotSelections[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.OrderBy.PivotOrderBy.pivotSelections: object expected"); + message.pivotSelections[i] = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.fromObject(object.pivotSelections[i]); + } + } + return message; + }; - /** - * ServiceDescriptorProto method. - * @member {Array.} method - * @memberof google.protobuf.ServiceDescriptorProto - * @instance - */ - ServiceDescriptorProto.prototype.method = $util.emptyArray; + /** + * Creates a plain object from a PivotOrderBy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @static + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy} message PivotOrderBy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PivotOrderBy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pivotSelections = []; + if (options.defaults) + object.metricName = ""; + if (message.metricName != null && message.hasOwnProperty("metricName")) + object.metricName = message.metricName; + if (message.pivotSelections && message.pivotSelections.length) { + object.pivotSelections = []; + for (var j = 0; j < message.pivotSelections.length; ++j) + object.pivotSelections[j] = $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.toObject(message.pivotSelections[j], options); + } + return object; + }; - /** - * ServiceDescriptorProto options. - * @member {google.protobuf.IServiceOptions|null|undefined} options - * @memberof google.protobuf.ServiceDescriptorProto - * @instance - */ - ServiceDescriptorProto.prototype.options = null; + /** + * Converts this PivotOrderBy to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @instance + * @returns {Object.} JSON object + */ + PivotOrderBy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a new ServiceDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {google.protobuf.IServiceDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto instance - */ - ServiceDescriptorProto.create = function create(properties) { - return new ServiceDescriptorProto(properties); - }; + PivotOrderBy.PivotSelection = (function() { - /** - * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ServiceDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.method != null && message.method.length) - for (var i = 0; i < message.method.length; ++i) - $root.google.protobuf.MethodDescriptorProto.encode(message.method[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.ServiceOptions.encode(message.options, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - return writer; - }; + /** + * Properties of a PivotSelection. + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @interface IPivotSelection + * @property {string|null} [dimensionName] PivotSelection dimensionName + * @property {string|null} [dimensionValue] PivotSelection dimensionValue + */ - /** - * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {google.protobuf.IServiceDescriptorProto} message ServiceDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ServiceDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Constructs a new PivotSelection. + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy + * @classdesc Represents a PivotSelection. + * @implements IPivotSelection + * @constructor + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set + */ + function PivotSelection(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Decodes a ServiceDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ServiceDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - if (!(message.method && message.method.length)) - message.method = []; - message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader, reader.uint32())); - break; - case 3: - message.options = $root.google.protobuf.ServiceOptions.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * PivotSelection dimensionName. + * @member {string} dimensionName + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @instance + */ + PivotSelection.prototype.dimensionName = ""; - /** - * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ServiceDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * PivotSelection dimensionValue. + * @member {string} dimensionValue + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @instance + */ + PivotSelection.prototype.dimensionValue = ""; - /** - * Verifies a ServiceDescriptorProto message. - * @function verify - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ServiceDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.method != null && message.hasOwnProperty("method")) { - if (!Array.isArray(message.method)) - return "method: array expected"; - for (var i = 0; i < message.method.length; ++i) { - var error = $root.google.protobuf.MethodDescriptorProto.verify(message.method[i]); - if (error) - return "method." + error; - } - } - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.ServiceOptions.verify(message.options); - if (error) - return "options." + error; - } - return null; - }; + /** + * Creates a new PivotSelection instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection instance + */ + PivotSelection.create = function create(properties) { + return new PivotSelection(properties); + }; - /** - * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.ServiceDescriptorProto} ServiceDescriptorProto - */ - ServiceDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.ServiceDescriptorProto) - return object; - var message = new $root.google.protobuf.ServiceDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.method) { - if (!Array.isArray(object.method)) - throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected"); - message.method = []; - for (var i = 0; i < object.method.length; ++i) { - if (typeof object.method[i] !== "object") - throw TypeError(".google.protobuf.ServiceDescriptorProto.method: object expected"); - message.method[i] = $root.google.protobuf.MethodDescriptorProto.fromObject(object.method[i]); - } - } - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.ServiceDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.ServiceOptions.fromObject(object.options); - } - return message; - }; + /** + * Encodes the specified PivotSelection message. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotSelection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionName != null && Object.hasOwnProperty.call(message, "dimensionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dimensionName); + if (message.dimensionValue != null && Object.hasOwnProperty.call(message, "dimensionValue")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimensionValue); + return writer; + }; - /** - * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.ServiceDescriptorProto - * @static - * @param {google.protobuf.ServiceDescriptorProto} message ServiceDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ServiceDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.method = []; - if (options.defaults) { - object.name = ""; - object.options = null; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.method && message.method.length) { - object.method = []; - for (var j = 0; j < message.method.length; ++j) - object.method[j] = $root.google.protobuf.MethodDescriptorProto.toObject(message.method[j], options); - } - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.ServiceOptions.toObject(message.options, options); - return object; - }; + /** + * Encodes the specified PivotSelection message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.IPivotSelection} message PivotSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotSelection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Converts this ServiceDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.ServiceDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - ServiceDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a PivotSelection message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotSelection.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dimensionName = reader.string(); + break; + case 2: + message.dimensionValue = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - return ServiceDescriptorProto; - })(); + /** + * Decodes a PivotSelection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotSelection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - protobuf.MethodDescriptorProto = (function() { + /** + * Verifies a PivotSelection message. + * @function verify + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PivotSelection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + if (!$util.isString(message.dimensionName)) + return "dimensionName: string expected"; + if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) + if (!$util.isString(message.dimensionValue)) + return "dimensionValue: string expected"; + return null; + }; - /** - * Properties of a MethodDescriptorProto. - * @memberof google.protobuf - * @interface IMethodDescriptorProto - * @property {string|null} [name] MethodDescriptorProto name - * @property {string|null} [inputType] MethodDescriptorProto inputType - * @property {string|null} [outputType] MethodDescriptorProto outputType - * @property {google.protobuf.IMethodOptions|null} [options] MethodDescriptorProto options - * @property {boolean|null} [clientStreaming] MethodDescriptorProto clientStreaming - * @property {boolean|null} [serverStreaming] MethodDescriptorProto serverStreaming - */ + /** + * Creates a PivotSelection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} PivotSelection + */ + PivotSelection.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection) + return object; + var message = new $root.google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection(); + if (object.dimensionName != null) + message.dimensionName = String(object.dimensionName); + if (object.dimensionValue != null) + message.dimensionValue = String(object.dimensionValue); + return message; + }; - /** - * Constructs a new MethodDescriptorProto. - * @memberof google.protobuf - * @classdesc Represents a MethodDescriptorProto. - * @implements IMethodDescriptorProto - * @constructor - * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set - */ - function MethodDescriptorProto(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a plain object from a PivotSelection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @static + * @param {google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection} message PivotSelection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PivotSelection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.dimensionName = ""; + object.dimensionValue = ""; + } + if (message.dimensionName != null && message.hasOwnProperty("dimensionName")) + object.dimensionName = message.dimensionName; + if (message.dimensionValue != null && message.hasOwnProperty("dimensionValue")) + object.dimensionValue = message.dimensionValue; + return object; + }; - /** - * MethodDescriptorProto name. - * @member {string} name - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.name = ""; + /** + * Converts this PivotSelection to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.OrderBy.PivotOrderBy.PivotSelection + * @instance + * @returns {Object.} JSON object + */ + PivotSelection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * MethodDescriptorProto inputType. - * @member {string} inputType - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.inputType = ""; + return PivotSelection; + })(); - /** - * MethodDescriptorProto outputType. - * @member {string} outputType - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.outputType = ""; + return PivotOrderBy; + })(); - /** - * MethodDescriptorProto options. - * @member {google.protobuf.IMethodOptions|null|undefined} options - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.options = null; + return OrderBy; + })(); - /** - * MethodDescriptorProto clientStreaming. - * @member {boolean} clientStreaming - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.clientStreaming = false; + v1beta.Pivot = (function() { - /** - * MethodDescriptorProto serverStreaming. - * @member {boolean} serverStreaming - * @memberof google.protobuf.MethodDescriptorProto - * @instance - */ - MethodDescriptorProto.prototype.serverStreaming = false; + /** + * Properties of a Pivot. + * @memberof google.analytics.data.v1beta + * @interface IPivot + * @property {Array.|null} [fieldNames] Pivot fieldNames + * @property {Array.|null} [orderBys] Pivot orderBys + * @property {number|Long|null} [offset] Pivot offset + * @property {number|Long|null} [limit] Pivot limit + * @property {Array.|null} [metricAggregations] Pivot metricAggregations + */ - /** - * Creates a new MethodDescriptorProto instance using the specified properties. - * @function create - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {google.protobuf.IMethodDescriptorProto=} [properties] Properties to set - * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto instance - */ - MethodDescriptorProto.create = function create(properties) { - return new MethodDescriptorProto(properties); - }; + /** + * Constructs a new Pivot. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Pivot. + * @implements IPivot + * @constructor + * @param {google.analytics.data.v1beta.IPivot=} [properties] Properties to set + */ + function Pivot(properties) { + this.fieldNames = []; + this.orderBys = []; + this.metricAggregations = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. - * @function encode - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MethodDescriptorProto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.inputType != null && Object.hasOwnProperty.call(message, "inputType")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.inputType); - if (message.outputType != null && Object.hasOwnProperty.call(message, "outputType")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputType); - if (message.options != null && Object.hasOwnProperty.call(message, "options")) - $root.google.protobuf.MethodOptions.encode(message.options, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.clientStreaming != null && Object.hasOwnProperty.call(message, "clientStreaming")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.clientStreaming); - if (message.serverStreaming != null && Object.hasOwnProperty.call(message, "serverStreaming")) - writer.uint32(/* id 6, wireType 0 =*/48).bool(message.serverStreaming); - return writer; - }; + /** + * Pivot fieldNames. + * @member {Array.} fieldNames + * @memberof google.analytics.data.v1beta.Pivot + * @instance + */ + Pivot.prototype.fieldNames = $util.emptyArray; - /** - * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {google.protobuf.IMethodDescriptorProto} message MethodDescriptorProto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MethodDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Pivot orderBys. + * @member {Array.} orderBys + * @memberof google.analytics.data.v1beta.Pivot + * @instance + */ + Pivot.prototype.orderBys = $util.emptyArray; - /** - * Decodes a MethodDescriptorProto message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MethodDescriptorProto.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodDescriptorProto(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.name = reader.string(); - break; - case 2: - message.inputType = reader.string(); - break; - case 3: - message.outputType = reader.string(); - break; - case 4: - message.options = $root.google.protobuf.MethodOptions.decode(reader, reader.uint32()); - break; - case 5: - message.clientStreaming = reader.bool(); - break; - case 6: - message.serverStreaming = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Pivot offset. + * @member {number|Long} offset + * @memberof google.analytics.data.v1beta.Pivot + * @instance + */ + Pivot.prototype.offset = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MethodDescriptorProto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Pivot limit. + * @member {number|Long} limit + * @memberof google.analytics.data.v1beta.Pivot + * @instance + */ + Pivot.prototype.limit = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Verifies a MethodDescriptorProto message. - * @function verify - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MethodDescriptorProto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.inputType != null && message.hasOwnProperty("inputType")) - if (!$util.isString(message.inputType)) - return "inputType: string expected"; - if (message.outputType != null && message.hasOwnProperty("outputType")) - if (!$util.isString(message.outputType)) - return "outputType: string expected"; - if (message.options != null && message.hasOwnProperty("options")) { - var error = $root.google.protobuf.MethodOptions.verify(message.options); - if (error) - return "options." + error; - } - if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) - if (typeof message.clientStreaming !== "boolean") - return "clientStreaming: boolean expected"; - if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) - if (typeof message.serverStreaming !== "boolean") - return "serverStreaming: boolean expected"; - return null; - }; - - /** - * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.MethodDescriptorProto} MethodDescriptorProto - */ - MethodDescriptorProto.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.MethodDescriptorProto) - return object; - var message = new $root.google.protobuf.MethodDescriptorProto(); - if (object.name != null) - message.name = String(object.name); - if (object.inputType != null) - message.inputType = String(object.inputType); - if (object.outputType != null) - message.outputType = String(object.outputType); - if (object.options != null) { - if (typeof object.options !== "object") - throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected"); - message.options = $root.google.protobuf.MethodOptions.fromObject(object.options); - } - if (object.clientStreaming != null) - message.clientStreaming = Boolean(object.clientStreaming); - if (object.serverStreaming != null) - message.serverStreaming = Boolean(object.serverStreaming); - return message; - }; + /** + * Pivot metricAggregations. + * @member {Array.} metricAggregations + * @memberof google.analytics.data.v1beta.Pivot + * @instance + */ + Pivot.prototype.metricAggregations = $util.emptyArray; - /** - * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.MethodDescriptorProto - * @static - * @param {google.protobuf.MethodDescriptorProto} message MethodDescriptorProto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MethodDescriptorProto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.name = ""; - object.inputType = ""; - object.outputType = ""; - object.options = null; - object.clientStreaming = false; - object.serverStreaming = false; - } - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.inputType != null && message.hasOwnProperty("inputType")) - object.inputType = message.inputType; - if (message.outputType != null && message.hasOwnProperty("outputType")) - object.outputType = message.outputType; - if (message.options != null && message.hasOwnProperty("options")) - object.options = $root.google.protobuf.MethodOptions.toObject(message.options, options); - if (message.clientStreaming != null && message.hasOwnProperty("clientStreaming")) - object.clientStreaming = message.clientStreaming; - if (message.serverStreaming != null && message.hasOwnProperty("serverStreaming")) - object.serverStreaming = message.serverStreaming; - return object; - }; + /** + * Creates a new Pivot instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {google.analytics.data.v1beta.IPivot=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Pivot} Pivot instance + */ + Pivot.create = function create(properties) { + return new Pivot(properties); + }; - /** - * Converts this MethodDescriptorProto to JSON. - * @function toJSON - * @memberof google.protobuf.MethodDescriptorProto - * @instance - * @returns {Object.} JSON object - */ - MethodDescriptorProto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified Pivot message. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {google.analytics.data.v1beta.IPivot} message Pivot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Pivot.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fieldNames != null && message.fieldNames.length) + for (var i = 0; i < message.fieldNames.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldNames[i]); + if (message.orderBys != null && message.orderBys.length) + for (var i = 0; i < message.orderBys.length; ++i) + $root.google.analytics.data.v1beta.OrderBy.encode(message.orderBys[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.offset); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 4, wireType 0 =*/32).int64(message.limit); + if (message.metricAggregations != null && message.metricAggregations.length) { + writer.uint32(/* id 5, wireType 2 =*/42).fork(); + for (var i = 0; i < message.metricAggregations.length; ++i) + writer.int32(message.metricAggregations[i]); + writer.ldelim(); + } + return writer; + }; - return MethodDescriptorProto; - })(); + /** + * Encodes the specified Pivot message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Pivot.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {google.analytics.data.v1beta.IPivot} message Pivot message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Pivot.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - protobuf.FileOptions = (function() { + /** + * Decodes a Pivot message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Pivot} Pivot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Pivot.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Pivot(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.fieldNames && message.fieldNames.length)) + message.fieldNames = []; + message.fieldNames.push(reader.string()); + break; + case 2: + if (!(message.orderBys && message.orderBys.length)) + message.orderBys = []; + message.orderBys.push($root.google.analytics.data.v1beta.OrderBy.decode(reader, reader.uint32())); + break; + case 3: + message.offset = reader.int64(); + break; + case 4: + message.limit = reader.int64(); + break; + case 5: + if (!(message.metricAggregations && message.metricAggregations.length)) + message.metricAggregations = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.metricAggregations.push(reader.int32()); + } else + message.metricAggregations.push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Properties of a FileOptions. - * @memberof google.protobuf - * @interface IFileOptions - * @property {string|null} [javaPackage] FileOptions javaPackage - * @property {string|null} [javaOuterClassname] FileOptions javaOuterClassname - * @property {boolean|null} [javaMultipleFiles] FileOptions javaMultipleFiles - * @property {boolean|null} [javaGenerateEqualsAndHash] FileOptions javaGenerateEqualsAndHash - * @property {boolean|null} [javaStringCheckUtf8] FileOptions javaStringCheckUtf8 - * @property {google.protobuf.FileOptions.OptimizeMode|null} [optimizeFor] FileOptions optimizeFor - * @property {string|null} [goPackage] FileOptions goPackage - * @property {boolean|null} [ccGenericServices] FileOptions ccGenericServices - * @property {boolean|null} [javaGenericServices] FileOptions javaGenericServices - * @property {boolean|null} [pyGenericServices] FileOptions pyGenericServices - * @property {boolean|null} [phpGenericServices] FileOptions phpGenericServices - * @property {boolean|null} [deprecated] FileOptions deprecated - * @property {boolean|null} [ccEnableArenas] FileOptions ccEnableArenas - * @property {string|null} [objcClassPrefix] FileOptions objcClassPrefix - * @property {string|null} [csharpNamespace] FileOptions csharpNamespace - * @property {string|null} [swiftPrefix] FileOptions swiftPrefix - * @property {string|null} [phpClassPrefix] FileOptions phpClassPrefix - * @property {string|null} [phpNamespace] FileOptions phpNamespace - * @property {string|null} [phpMetadataNamespace] FileOptions phpMetadataNamespace - * @property {string|null} [rubyPackage] FileOptions rubyPackage - * @property {Array.|null} [uninterpretedOption] FileOptions uninterpretedOption - * @property {Array.|null} [".google.api.resourceDefinition"] FileOptions .google.api.resourceDefinition - */ + /** + * Decodes a Pivot message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Pivot} Pivot + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Pivot.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Constructs a new FileOptions. - * @memberof google.protobuf - * @classdesc Represents a FileOptions. - * @implements IFileOptions - * @constructor - * @param {google.protobuf.IFileOptions=} [properties] Properties to set - */ - function FileOptions(properties) { - this.uninterpretedOption = []; - this[".google.api.resourceDefinition"] = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Verifies a Pivot message. + * @function verify + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Pivot.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.fieldNames != null && message.hasOwnProperty("fieldNames")) { + if (!Array.isArray(message.fieldNames)) + return "fieldNames: array expected"; + for (var i = 0; i < message.fieldNames.length; ++i) + if (!$util.isString(message.fieldNames[i])) + return "fieldNames: string[] expected"; + } + if (message.orderBys != null && message.hasOwnProperty("orderBys")) { + if (!Array.isArray(message.orderBys)) + return "orderBys: array expected"; + for (var i = 0; i < message.orderBys.length; ++i) { + var error = $root.google.analytics.data.v1beta.OrderBy.verify(message.orderBys[i]); + if (error) + return "orderBys." + error; + } + } + if (message.offset != null && message.hasOwnProperty("offset")) + if (!$util.isInteger(message.offset) && !(message.offset && $util.isInteger(message.offset.low) && $util.isInteger(message.offset.high))) + return "offset: integer|Long expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit) && !(message.limit && $util.isInteger(message.limit.low) && $util.isInteger(message.limit.high))) + return "limit: integer|Long expected"; + if (message.metricAggregations != null && message.hasOwnProperty("metricAggregations")) { + if (!Array.isArray(message.metricAggregations)) + return "metricAggregations: array expected"; + for (var i = 0; i < message.metricAggregations.length; ++i) + switch (message.metricAggregations[i]) { + default: + return "metricAggregations: enum value[] expected"; + case 0: + case 1: + case 5: + case 6: + case 4: + break; + } + } + return null; + }; - /** - * FileOptions javaPackage. - * @member {string} javaPackage - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaPackage = ""; + /** + * Creates a Pivot message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Pivot} Pivot + */ + Pivot.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Pivot) + return object; + var message = new $root.google.analytics.data.v1beta.Pivot(); + if (object.fieldNames) { + if (!Array.isArray(object.fieldNames)) + throw TypeError(".google.analytics.data.v1beta.Pivot.fieldNames: array expected"); + message.fieldNames = []; + for (var i = 0; i < object.fieldNames.length; ++i) + message.fieldNames[i] = String(object.fieldNames[i]); + } + if (object.orderBys) { + if (!Array.isArray(object.orderBys)) + throw TypeError(".google.analytics.data.v1beta.Pivot.orderBys: array expected"); + message.orderBys = []; + for (var i = 0; i < object.orderBys.length; ++i) { + if (typeof object.orderBys[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.Pivot.orderBys: object expected"); + message.orderBys[i] = $root.google.analytics.data.v1beta.OrderBy.fromObject(object.orderBys[i]); + } + } + if (object.offset != null) + if ($util.Long) + (message.offset = $util.Long.fromValue(object.offset)).unsigned = false; + else if (typeof object.offset === "string") + message.offset = parseInt(object.offset, 10); + else if (typeof object.offset === "number") + message.offset = object.offset; + else if (typeof object.offset === "object") + message.offset = new $util.LongBits(object.offset.low >>> 0, object.offset.high >>> 0).toNumber(); + if (object.limit != null) + if ($util.Long) + (message.limit = $util.Long.fromValue(object.limit)).unsigned = false; + else if (typeof object.limit === "string") + message.limit = parseInt(object.limit, 10); + else if (typeof object.limit === "number") + message.limit = object.limit; + else if (typeof object.limit === "object") + message.limit = new $util.LongBits(object.limit.low >>> 0, object.limit.high >>> 0).toNumber(); + if (object.metricAggregations) { + if (!Array.isArray(object.metricAggregations)) + throw TypeError(".google.analytics.data.v1beta.Pivot.metricAggregations: array expected"); + message.metricAggregations = []; + for (var i = 0; i < object.metricAggregations.length; ++i) + switch (object.metricAggregations[i]) { + default: + case "METRIC_AGGREGATION_UNSPECIFIED": + case 0: + message.metricAggregations[i] = 0; + break; + case "TOTAL": + case 1: + message.metricAggregations[i] = 1; + break; + case "MINIMUM": + case 5: + message.metricAggregations[i] = 5; + break; + case "MAXIMUM": + case 6: + message.metricAggregations[i] = 6; + break; + case "COUNT": + case 4: + message.metricAggregations[i] = 4; + break; + } + } + return message; + }; - /** - * FileOptions javaOuterClassname. - * @member {string} javaOuterClassname - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaOuterClassname = ""; + /** + * Creates a plain object from a Pivot message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Pivot + * @static + * @param {google.analytics.data.v1beta.Pivot} message Pivot + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Pivot.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.fieldNames = []; + object.orderBys = []; + object.metricAggregations = []; + } + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.offset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.offset = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.limit = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.limit = options.longs === String ? "0" : 0; + } + if (message.fieldNames && message.fieldNames.length) { + object.fieldNames = []; + for (var j = 0; j < message.fieldNames.length; ++j) + object.fieldNames[j] = message.fieldNames[j]; + } + if (message.orderBys && message.orderBys.length) { + object.orderBys = []; + for (var j = 0; j < message.orderBys.length; ++j) + object.orderBys[j] = $root.google.analytics.data.v1beta.OrderBy.toObject(message.orderBys[j], options); + } + if (message.offset != null && message.hasOwnProperty("offset")) + if (typeof message.offset === "number") + object.offset = options.longs === String ? String(message.offset) : message.offset; + else + object.offset = options.longs === String ? $util.Long.prototype.toString.call(message.offset) : options.longs === Number ? new $util.LongBits(message.offset.low >>> 0, message.offset.high >>> 0).toNumber() : message.offset; + if (message.limit != null && message.hasOwnProperty("limit")) + if (typeof message.limit === "number") + object.limit = options.longs === String ? String(message.limit) : message.limit; + else + object.limit = options.longs === String ? $util.Long.prototype.toString.call(message.limit) : options.longs === Number ? new $util.LongBits(message.limit.low >>> 0, message.limit.high >>> 0).toNumber() : message.limit; + if (message.metricAggregations && message.metricAggregations.length) { + object.metricAggregations = []; + for (var j = 0; j < message.metricAggregations.length; ++j) + object.metricAggregations[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricAggregation[message.metricAggregations[j]] : message.metricAggregations[j]; + } + return object; + }; - /** - * FileOptions javaMultipleFiles. - * @member {boolean} javaMultipleFiles - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaMultipleFiles = false; + /** + * Converts this Pivot to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Pivot + * @instance + * @returns {Object.} JSON object + */ + Pivot.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * FileOptions javaGenerateEqualsAndHash. - * @member {boolean} javaGenerateEqualsAndHash - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaGenerateEqualsAndHash = false; + return Pivot; + })(); - /** - * FileOptions javaStringCheckUtf8. - * @member {boolean} javaStringCheckUtf8 - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaStringCheckUtf8 = false; + v1beta.CohortSpec = (function() { - /** - * FileOptions optimizeFor. - * @member {google.protobuf.FileOptions.OptimizeMode} optimizeFor - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.optimizeFor = 1; + /** + * Properties of a CohortSpec. + * @memberof google.analytics.data.v1beta + * @interface ICohortSpec + * @property {Array.|null} [cohorts] CohortSpec cohorts + * @property {google.analytics.data.v1beta.ICohortsRange|null} [cohortsRange] CohortSpec cohortsRange + * @property {google.analytics.data.v1beta.ICohortReportSettings|null} [cohortReportSettings] CohortSpec cohortReportSettings + */ - /** - * FileOptions goPackage. - * @member {string} goPackage - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.goPackage = ""; + /** + * Constructs a new CohortSpec. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a CohortSpec. + * @implements ICohortSpec + * @constructor + * @param {google.analytics.data.v1beta.ICohortSpec=} [properties] Properties to set + */ + function CohortSpec(properties) { + this.cohorts = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * FileOptions ccGenericServices. - * @member {boolean} ccGenericServices - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.ccGenericServices = false; + /** + * CohortSpec cohorts. + * @member {Array.} cohorts + * @memberof google.analytics.data.v1beta.CohortSpec + * @instance + */ + CohortSpec.prototype.cohorts = $util.emptyArray; - /** - * FileOptions javaGenericServices. - * @member {boolean} javaGenericServices - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.javaGenericServices = false; + /** + * CohortSpec cohortsRange. + * @member {google.analytics.data.v1beta.ICohortsRange|null|undefined} cohortsRange + * @memberof google.analytics.data.v1beta.CohortSpec + * @instance + */ + CohortSpec.prototype.cohortsRange = null; - /** - * FileOptions pyGenericServices. - * @member {boolean} pyGenericServices - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.pyGenericServices = false; + /** + * CohortSpec cohortReportSettings. + * @member {google.analytics.data.v1beta.ICohortReportSettings|null|undefined} cohortReportSettings + * @memberof google.analytics.data.v1beta.CohortSpec + * @instance + */ + CohortSpec.prototype.cohortReportSettings = null; - /** - * FileOptions phpGenericServices. - * @member {boolean} phpGenericServices - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.phpGenericServices = false; + /** + * Creates a new CohortSpec instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {google.analytics.data.v1beta.ICohortSpec=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec instance + */ + CohortSpec.create = function create(properties) { + return new CohortSpec(properties); + }; - /** - * FileOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.deprecated = false; + /** + * Encodes the specified CohortSpec message. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {google.analytics.data.v1beta.ICohortSpec} message CohortSpec message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortSpec.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cohorts != null && message.cohorts.length) + for (var i = 0; i < message.cohorts.length; ++i) + $root.google.analytics.data.v1beta.Cohort.encode(message.cohorts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.cohortsRange != null && Object.hasOwnProperty.call(message, "cohortsRange")) + $root.google.analytics.data.v1beta.CohortsRange.encode(message.cohortsRange, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.cohortReportSettings != null && Object.hasOwnProperty.call(message, "cohortReportSettings")) + $root.google.analytics.data.v1beta.CohortReportSettings.encode(message.cohortReportSettings, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * FileOptions ccEnableArenas. - * @member {boolean} ccEnableArenas - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.ccEnableArenas = true; + /** + * Encodes the specified CohortSpec message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortSpec.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {google.analytics.data.v1beta.ICohortSpec} message CohortSpec message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortSpec.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * FileOptions objcClassPrefix. - * @member {string} objcClassPrefix - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.objcClassPrefix = ""; + /** + * Decodes a CohortSpec message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortSpec.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortSpec(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.cohorts && message.cohorts.length)) + message.cohorts = []; + message.cohorts.push($root.google.analytics.data.v1beta.Cohort.decode(reader, reader.uint32())); + break; + case 2: + message.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.decode(reader, reader.uint32()); + break; + case 3: + message.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * FileOptions csharpNamespace. - * @member {string} csharpNamespace - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.csharpNamespace = ""; + /** + * Decodes a CohortSpec message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortSpec.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * FileOptions swiftPrefix. - * @member {string} swiftPrefix - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.swiftPrefix = ""; + /** + * Verifies a CohortSpec message. + * @function verify + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortSpec.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cohorts != null && message.hasOwnProperty("cohorts")) { + if (!Array.isArray(message.cohorts)) + return "cohorts: array expected"; + for (var i = 0; i < message.cohorts.length; ++i) { + var error = $root.google.analytics.data.v1beta.Cohort.verify(message.cohorts[i]); + if (error) + return "cohorts." + error; + } + } + if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) { + var error = $root.google.analytics.data.v1beta.CohortsRange.verify(message.cohortsRange); + if (error) + return "cohortsRange." + error; + } + if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) { + var error = $root.google.analytics.data.v1beta.CohortReportSettings.verify(message.cohortReportSettings); + if (error) + return "cohortReportSettings." + error; + } + return null; + }; - /** - * FileOptions phpClassPrefix. - * @member {string} phpClassPrefix - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.phpClassPrefix = ""; + /** + * Creates a CohortSpec message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.CohortSpec} CohortSpec + */ + CohortSpec.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.CohortSpec) + return object; + var message = new $root.google.analytics.data.v1beta.CohortSpec(); + if (object.cohorts) { + if (!Array.isArray(object.cohorts)) + throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohorts: array expected"); + message.cohorts = []; + for (var i = 0; i < object.cohorts.length; ++i) { + if (typeof object.cohorts[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohorts: object expected"); + message.cohorts[i] = $root.google.analytics.data.v1beta.Cohort.fromObject(object.cohorts[i]); + } + } + if (object.cohortsRange != null) { + if (typeof object.cohortsRange !== "object") + throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohortsRange: object expected"); + message.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.fromObject(object.cohortsRange); + } + if (object.cohortReportSettings != null) { + if (typeof object.cohortReportSettings !== "object") + throw TypeError(".google.analytics.data.v1beta.CohortSpec.cohortReportSettings: object expected"); + message.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.fromObject(object.cohortReportSettings); + } + return message; + }; - /** - * FileOptions phpNamespace. - * @member {string} phpNamespace - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.phpNamespace = ""; + /** + * Creates a plain object from a CohortSpec message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.CohortSpec + * @static + * @param {google.analytics.data.v1beta.CohortSpec} message CohortSpec + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortSpec.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.cohorts = []; + if (options.defaults) { + object.cohortsRange = null; + object.cohortReportSettings = null; + } + if (message.cohorts && message.cohorts.length) { + object.cohorts = []; + for (var j = 0; j < message.cohorts.length; ++j) + object.cohorts[j] = $root.google.analytics.data.v1beta.Cohort.toObject(message.cohorts[j], options); + } + if (message.cohortsRange != null && message.hasOwnProperty("cohortsRange")) + object.cohortsRange = $root.google.analytics.data.v1beta.CohortsRange.toObject(message.cohortsRange, options); + if (message.cohortReportSettings != null && message.hasOwnProperty("cohortReportSettings")) + object.cohortReportSettings = $root.google.analytics.data.v1beta.CohortReportSettings.toObject(message.cohortReportSettings, options); + return object; + }; - /** - * FileOptions phpMetadataNamespace. - * @member {string} phpMetadataNamespace - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.phpMetadataNamespace = ""; + /** + * Converts this CohortSpec to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.CohortSpec + * @instance + * @returns {Object.} JSON object + */ + CohortSpec.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * FileOptions rubyPackage. - * @member {string} rubyPackage - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.rubyPackage = ""; + return CohortSpec; + })(); - /** - * FileOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype.uninterpretedOption = $util.emptyArray; + v1beta.Cohort = (function() { - /** - * FileOptions .google.api.resourceDefinition. - * @member {Array.} .google.api.resourceDefinition - * @memberof google.protobuf.FileOptions - * @instance - */ - FileOptions.prototype[".google.api.resourceDefinition"] = $util.emptyArray; + /** + * Properties of a Cohort. + * @memberof google.analytics.data.v1beta + * @interface ICohort + * @property {string|null} [name] Cohort name + * @property {string|null} [dimension] Cohort dimension + * @property {google.analytics.data.v1beta.IDateRange|null} [dateRange] Cohort dateRange + */ - /** - * Creates a new FileOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.FileOptions - * @static - * @param {google.protobuf.IFileOptions=} [properties] Properties to set - * @returns {google.protobuf.FileOptions} FileOptions instance - */ - FileOptions.create = function create(properties) { - return new FileOptions(properties); - }; + /** + * Constructs a new Cohort. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Cohort. + * @implements ICohort + * @constructor + * @param {google.analytics.data.v1beta.ICohort=} [properties] Properties to set + */ + function Cohort(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.FileOptions - * @static - * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.javaPackage != null && Object.hasOwnProperty.call(message, "javaPackage")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.javaPackage); - if (message.javaOuterClassname != null && Object.hasOwnProperty.call(message, "javaOuterClassname")) - writer.uint32(/* id 8, wireType 2 =*/66).string(message.javaOuterClassname); - if (message.optimizeFor != null && Object.hasOwnProperty.call(message, "optimizeFor")) - writer.uint32(/* id 9, wireType 0 =*/72).int32(message.optimizeFor); - if (message.javaMultipleFiles != null && Object.hasOwnProperty.call(message, "javaMultipleFiles")) - writer.uint32(/* id 10, wireType 0 =*/80).bool(message.javaMultipleFiles); - if (message.goPackage != null && Object.hasOwnProperty.call(message, "goPackage")) - writer.uint32(/* id 11, wireType 2 =*/90).string(message.goPackage); - if (message.ccGenericServices != null && Object.hasOwnProperty.call(message, "ccGenericServices")) - writer.uint32(/* id 16, wireType 0 =*/128).bool(message.ccGenericServices); - if (message.javaGenericServices != null && Object.hasOwnProperty.call(message, "javaGenericServices")) - writer.uint32(/* id 17, wireType 0 =*/136).bool(message.javaGenericServices); - if (message.pyGenericServices != null && Object.hasOwnProperty.call(message, "pyGenericServices")) - writer.uint32(/* id 18, wireType 0 =*/144).bool(message.pyGenericServices); - if (message.javaGenerateEqualsAndHash != null && Object.hasOwnProperty.call(message, "javaGenerateEqualsAndHash")) - writer.uint32(/* id 20, wireType 0 =*/160).bool(message.javaGenerateEqualsAndHash); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 23, wireType 0 =*/184).bool(message.deprecated); - if (message.javaStringCheckUtf8 != null && Object.hasOwnProperty.call(message, "javaStringCheckUtf8")) - writer.uint32(/* id 27, wireType 0 =*/216).bool(message.javaStringCheckUtf8); - if (message.ccEnableArenas != null && Object.hasOwnProperty.call(message, "ccEnableArenas")) - writer.uint32(/* id 31, wireType 0 =*/248).bool(message.ccEnableArenas); - if (message.objcClassPrefix != null && Object.hasOwnProperty.call(message, "objcClassPrefix")) - writer.uint32(/* id 36, wireType 2 =*/290).string(message.objcClassPrefix); - if (message.csharpNamespace != null && Object.hasOwnProperty.call(message, "csharpNamespace")) - writer.uint32(/* id 37, wireType 2 =*/298).string(message.csharpNamespace); - if (message.swiftPrefix != null && Object.hasOwnProperty.call(message, "swiftPrefix")) - writer.uint32(/* id 39, wireType 2 =*/314).string(message.swiftPrefix); - if (message.phpClassPrefix != null && Object.hasOwnProperty.call(message, "phpClassPrefix")) - writer.uint32(/* id 40, wireType 2 =*/322).string(message.phpClassPrefix); - if (message.phpNamespace != null && Object.hasOwnProperty.call(message, "phpNamespace")) - writer.uint32(/* id 41, wireType 2 =*/330).string(message.phpNamespace); - if (message.phpGenericServices != null && Object.hasOwnProperty.call(message, "phpGenericServices")) - writer.uint32(/* id 42, wireType 0 =*/336).bool(message.phpGenericServices); - if (message.phpMetadataNamespace != null && Object.hasOwnProperty.call(message, "phpMetadataNamespace")) - writer.uint32(/* id 44, wireType 2 =*/354).string(message.phpMetadataNamespace); - if (message.rubyPackage != null && Object.hasOwnProperty.call(message, "rubyPackage")) - writer.uint32(/* id 45, wireType 2 =*/362).string(message.rubyPackage); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.resourceDefinition"] != null && message[".google.api.resourceDefinition"].length) - for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) - $root.google.api.ResourceDescriptor.encode(message[".google.api.resourceDefinition"][i], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); - return writer; - }; + /** + * Cohort name. + * @member {string} name + * @memberof google.analytics.data.v1beta.Cohort + * @instance + */ + Cohort.prototype.name = ""; - /** - * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.FileOptions - * @static - * @param {google.protobuf.IFileOptions} message FileOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FileOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Cohort dimension. + * @member {string} dimension + * @memberof google.analytics.data.v1beta.Cohort + * @instance + */ + Cohort.prototype.dimension = ""; - /** - * Decodes a FileOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.FileOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.FileOptions} FileOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FileOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.javaPackage = reader.string(); - break; - case 8: - message.javaOuterClassname = reader.string(); - break; - case 10: - message.javaMultipleFiles = reader.bool(); - break; - case 20: - message.javaGenerateEqualsAndHash = reader.bool(); - break; - case 27: - message.javaStringCheckUtf8 = reader.bool(); - break; - case 9: - message.optimizeFor = reader.int32(); - break; - case 11: - message.goPackage = reader.string(); - break; - case 16: - message.ccGenericServices = reader.bool(); - break; - case 17: - message.javaGenericServices = reader.bool(); - break; - case 18: - message.pyGenericServices = reader.bool(); - break; - case 42: - message.phpGenericServices = reader.bool(); - break; - case 23: - message.deprecated = reader.bool(); - break; - case 31: - message.ccEnableArenas = reader.bool(); - break; - case 36: - message.objcClassPrefix = reader.string(); - break; - case 37: - message.csharpNamespace = reader.string(); - break; - case 39: - message.swiftPrefix = reader.string(); - break; - case 40: - message.phpClassPrefix = reader.string(); - break; - case 41: - message.phpNamespace = reader.string(); - break; - case 44: - message.phpMetadataNamespace = reader.string(); - break; - case 45: - message.rubyPackage = reader.string(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1053: - if (!(message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length)) - message[".google.api.resourceDefinition"] = []; - message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Cohort dateRange. + * @member {google.analytics.data.v1beta.IDateRange|null|undefined} dateRange + * @memberof google.analytics.data.v1beta.Cohort + * @instance + */ + Cohort.prototype.dateRange = null; - /** - * Decodes a FileOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.FileOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.FileOptions} FileOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FileOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a new Cohort instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {google.analytics.data.v1beta.ICohort=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Cohort} Cohort instance + */ + Cohort.create = function create(properties) { + return new Cohort(properties); + }; - /** - * Verifies a FileOptions message. - * @function verify - * @memberof google.protobuf.FileOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FileOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) - if (!$util.isString(message.javaPackage)) - return "javaPackage: string expected"; - if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) - if (!$util.isString(message.javaOuterClassname)) - return "javaOuterClassname: string expected"; - if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) - if (typeof message.javaMultipleFiles !== "boolean") - return "javaMultipleFiles: boolean expected"; - if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) - if (typeof message.javaGenerateEqualsAndHash !== "boolean") - return "javaGenerateEqualsAndHash: boolean expected"; - if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) - if (typeof message.javaStringCheckUtf8 !== "boolean") - return "javaStringCheckUtf8: boolean expected"; - if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) - switch (message.optimizeFor) { - default: - return "optimizeFor: enum value expected"; - case 1: - case 2: - case 3: - break; - } - if (message.goPackage != null && message.hasOwnProperty("goPackage")) - if (!$util.isString(message.goPackage)) - return "goPackage: string expected"; - if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) - if (typeof message.ccGenericServices !== "boolean") - return "ccGenericServices: boolean expected"; - if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) - if (typeof message.javaGenericServices !== "boolean") - return "javaGenericServices: boolean expected"; - if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) - if (typeof message.pyGenericServices !== "boolean") - return "pyGenericServices: boolean expected"; - if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) - if (typeof message.phpGenericServices !== "boolean") - return "phpGenericServices: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) - if (typeof message.ccEnableArenas !== "boolean") - return "ccEnableArenas: boolean expected"; - if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) - if (!$util.isString(message.objcClassPrefix)) - return "objcClassPrefix: string expected"; - if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) - if (!$util.isString(message.csharpNamespace)) - return "csharpNamespace: string expected"; - if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) - if (!$util.isString(message.swiftPrefix)) - return "swiftPrefix: string expected"; - if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) - if (!$util.isString(message.phpClassPrefix)) - return "phpClassPrefix: string expected"; - if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) - if (!$util.isString(message.phpNamespace)) - return "phpNamespace: string expected"; - if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) - if (!$util.isString(message.phpMetadataNamespace)) - return "phpMetadataNamespace: string expected"; - if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) - if (!$util.isString(message.rubyPackage)) - return "rubyPackage: string expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - if (message[".google.api.resourceDefinition"] != null && message.hasOwnProperty(".google.api.resourceDefinition")) { - if (!Array.isArray(message[".google.api.resourceDefinition"])) - return ".google.api.resourceDefinition: array expected"; - for (var i = 0; i < message[".google.api.resourceDefinition"].length; ++i) { - var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resourceDefinition"][i]); - if (error) - return ".google.api.resourceDefinition." + error; - } - } - return null; - }; + /** + * Encodes the specified Cohort message. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {google.analytics.data.v1beta.ICohort} message Cohort message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cohort.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.dimension != null && Object.hasOwnProperty.call(message, "dimension")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.dimension); + if (message.dateRange != null && Object.hasOwnProperty.call(message, "dateRange")) + $root.google.analytics.data.v1beta.DateRange.encode(message.dateRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Creates a FileOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.FileOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.FileOptions} FileOptions - */ - FileOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.FileOptions) - return object; - var message = new $root.google.protobuf.FileOptions(); - if (object.javaPackage != null) - message.javaPackage = String(object.javaPackage); - if (object.javaOuterClassname != null) - message.javaOuterClassname = String(object.javaOuterClassname); - if (object.javaMultipleFiles != null) - message.javaMultipleFiles = Boolean(object.javaMultipleFiles); - if (object.javaGenerateEqualsAndHash != null) - message.javaGenerateEqualsAndHash = Boolean(object.javaGenerateEqualsAndHash); - if (object.javaStringCheckUtf8 != null) - message.javaStringCheckUtf8 = Boolean(object.javaStringCheckUtf8); - switch (object.optimizeFor) { - case "SPEED": - case 1: - message.optimizeFor = 1; - break; - case "CODE_SIZE": - case 2: - message.optimizeFor = 2; - break; - case "LITE_RUNTIME": - case 3: - message.optimizeFor = 3; - break; - } - if (object.goPackage != null) - message.goPackage = String(object.goPackage); - if (object.ccGenericServices != null) - message.ccGenericServices = Boolean(object.ccGenericServices); - if (object.javaGenericServices != null) - message.javaGenericServices = Boolean(object.javaGenericServices); - if (object.pyGenericServices != null) - message.pyGenericServices = Boolean(object.pyGenericServices); - if (object.phpGenericServices != null) - message.phpGenericServices = Boolean(object.phpGenericServices); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.ccEnableArenas != null) - message.ccEnableArenas = Boolean(object.ccEnableArenas); - if (object.objcClassPrefix != null) - message.objcClassPrefix = String(object.objcClassPrefix); - if (object.csharpNamespace != null) - message.csharpNamespace = String(object.csharpNamespace); - if (object.swiftPrefix != null) - message.swiftPrefix = String(object.swiftPrefix); - if (object.phpClassPrefix != null) - message.phpClassPrefix = String(object.phpClassPrefix); - if (object.phpNamespace != null) - message.phpNamespace = String(object.phpNamespace); - if (object.phpMetadataNamespace != null) - message.phpMetadataNamespace = String(object.phpMetadataNamespace); - if (object.rubyPackage != null) - message.rubyPackage = String(object.rubyPackage); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - if (object[".google.api.resourceDefinition"]) { - if (!Array.isArray(object[".google.api.resourceDefinition"])) - throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: array expected"); - message[".google.api.resourceDefinition"] = []; - for (var i = 0; i < object[".google.api.resourceDefinition"].length; ++i) { - if (typeof object[".google.api.resourceDefinition"][i] !== "object") - throw TypeError(".google.protobuf.FileOptions..google.api.resourceDefinition: object expected"); - message[".google.api.resourceDefinition"][i] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resourceDefinition"][i]); + /** + * Encodes the specified Cohort message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Cohort.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {google.analytics.data.v1beta.ICohort} message Cohort message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cohort.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Cohort message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Cohort} Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cohort.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Cohort(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.dimension = reader.string(); + break; + case 3: + message.dateRange = $root.google.analytics.data.v1beta.DateRange.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Cohort message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Cohort} Cohort + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cohort.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Cohort message. + * @function verify + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Cohort.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.dimension != null && message.hasOwnProperty("dimension")) + if (!$util.isString(message.dimension)) + return "dimension: string expected"; + if (message.dateRange != null && message.hasOwnProperty("dateRange")) { + var error = $root.google.analytics.data.v1beta.DateRange.verify(message.dateRange); + if (error) + return "dateRange." + error; + } + return null; + }; + + /** + * Creates a Cohort message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Cohort} Cohort + */ + Cohort.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Cohort) + return object; + var message = new $root.google.analytics.data.v1beta.Cohort(); + if (object.name != null) + message.name = String(object.name); + if (object.dimension != null) + message.dimension = String(object.dimension); + if (object.dateRange != null) { + if (typeof object.dateRange !== "object") + throw TypeError(".google.analytics.data.v1beta.Cohort.dateRange: object expected"); + message.dateRange = $root.google.analytics.data.v1beta.DateRange.fromObject(object.dateRange); + } + return message; + }; + + /** + * Creates a plain object from a Cohort message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Cohort + * @static + * @param {google.analytics.data.v1beta.Cohort} message Cohort + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Cohort.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.dimension = ""; + object.dateRange = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.dimension != null && message.hasOwnProperty("dimension")) + object.dimension = message.dimension; + if (message.dateRange != null && message.hasOwnProperty("dateRange")) + object.dateRange = $root.google.analytics.data.v1beta.DateRange.toObject(message.dateRange, options); + return object; + }; + + /** + * Converts this Cohort to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Cohort + * @instance + * @returns {Object.} JSON object + */ + Cohort.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Cohort; + })(); + + v1beta.CohortsRange = (function() { + + /** + * Properties of a CohortsRange. + * @memberof google.analytics.data.v1beta + * @interface ICohortsRange + * @property {google.analytics.data.v1beta.CohortsRange.Granularity|null} [granularity] CohortsRange granularity + * @property {number|null} [startOffset] CohortsRange startOffset + * @property {number|null} [endOffset] CohortsRange endOffset + */ + + /** + * Constructs a new CohortsRange. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a CohortsRange. + * @implements ICohortsRange + * @constructor + * @param {google.analytics.data.v1beta.ICohortsRange=} [properties] Properties to set + */ + function CohortsRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return message; - }; - /** - * Creates a plain object from a FileOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.FileOptions - * @static - * @param {google.protobuf.FileOptions} message FileOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FileOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.uninterpretedOption = []; - object[".google.api.resourceDefinition"] = []; - } - if (options.defaults) { - object.javaPackage = ""; - object.javaOuterClassname = ""; - object.optimizeFor = options.enums === String ? "SPEED" : 1; - object.javaMultipleFiles = false; - object.goPackage = ""; - object.ccGenericServices = false; - object.javaGenericServices = false; - object.pyGenericServices = false; - object.javaGenerateEqualsAndHash = false; - object.deprecated = false; - object.javaStringCheckUtf8 = false; - object.ccEnableArenas = true; - object.objcClassPrefix = ""; - object.csharpNamespace = ""; - object.swiftPrefix = ""; - object.phpClassPrefix = ""; - object.phpNamespace = ""; - object.phpGenericServices = false; - object.phpMetadataNamespace = ""; - object.rubyPackage = ""; - } - if (message.javaPackage != null && message.hasOwnProperty("javaPackage")) - object.javaPackage = message.javaPackage; - if (message.javaOuterClassname != null && message.hasOwnProperty("javaOuterClassname")) - object.javaOuterClassname = message.javaOuterClassname; - if (message.optimizeFor != null && message.hasOwnProperty("optimizeFor")) - object.optimizeFor = options.enums === String ? $root.google.protobuf.FileOptions.OptimizeMode[message.optimizeFor] : message.optimizeFor; - if (message.javaMultipleFiles != null && message.hasOwnProperty("javaMultipleFiles")) - object.javaMultipleFiles = message.javaMultipleFiles; - if (message.goPackage != null && message.hasOwnProperty("goPackage")) - object.goPackage = message.goPackage; - if (message.ccGenericServices != null && message.hasOwnProperty("ccGenericServices")) - object.ccGenericServices = message.ccGenericServices; - if (message.javaGenericServices != null && message.hasOwnProperty("javaGenericServices")) - object.javaGenericServices = message.javaGenericServices; - if (message.pyGenericServices != null && message.hasOwnProperty("pyGenericServices")) - object.pyGenericServices = message.pyGenericServices; - if (message.javaGenerateEqualsAndHash != null && message.hasOwnProperty("javaGenerateEqualsAndHash")) - object.javaGenerateEqualsAndHash = message.javaGenerateEqualsAndHash; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.javaStringCheckUtf8 != null && message.hasOwnProperty("javaStringCheckUtf8")) - object.javaStringCheckUtf8 = message.javaStringCheckUtf8; - if (message.ccEnableArenas != null && message.hasOwnProperty("ccEnableArenas")) - object.ccEnableArenas = message.ccEnableArenas; - if (message.objcClassPrefix != null && message.hasOwnProperty("objcClassPrefix")) - object.objcClassPrefix = message.objcClassPrefix; - if (message.csharpNamespace != null && message.hasOwnProperty("csharpNamespace")) - object.csharpNamespace = message.csharpNamespace; - if (message.swiftPrefix != null && message.hasOwnProperty("swiftPrefix")) - object.swiftPrefix = message.swiftPrefix; - if (message.phpClassPrefix != null && message.hasOwnProperty("phpClassPrefix")) - object.phpClassPrefix = message.phpClassPrefix; - if (message.phpNamespace != null && message.hasOwnProperty("phpNamespace")) - object.phpNamespace = message.phpNamespace; - if (message.phpGenericServices != null && message.hasOwnProperty("phpGenericServices")) - object.phpGenericServices = message.phpGenericServices; - if (message.phpMetadataNamespace != null && message.hasOwnProperty("phpMetadataNamespace")) - object.phpMetadataNamespace = message.phpMetadataNamespace; - if (message.rubyPackage != null && message.hasOwnProperty("rubyPackage")) - object.rubyPackage = message.rubyPackage; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - if (message[".google.api.resourceDefinition"] && message[".google.api.resourceDefinition"].length) { - object[".google.api.resourceDefinition"] = []; - for (var j = 0; j < message[".google.api.resourceDefinition"].length; ++j) - object[".google.api.resourceDefinition"][j] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resourceDefinition"][j], options); - } - return object; - }; + /** + * CohortsRange granularity. + * @member {google.analytics.data.v1beta.CohortsRange.Granularity} granularity + * @memberof google.analytics.data.v1beta.CohortsRange + * @instance + */ + CohortsRange.prototype.granularity = 0; + + /** + * CohortsRange startOffset. + * @member {number} startOffset + * @memberof google.analytics.data.v1beta.CohortsRange + * @instance + */ + CohortsRange.prototype.startOffset = 0; + + /** + * CohortsRange endOffset. + * @member {number} endOffset + * @memberof google.analytics.data.v1beta.CohortsRange + * @instance + */ + CohortsRange.prototype.endOffset = 0; + + /** + * Creates a new CohortsRange instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {google.analytics.data.v1beta.ICohortsRange=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange instance + */ + CohortsRange.create = function create(properties) { + return new CohortsRange(properties); + }; + + /** + * Encodes the specified CohortsRange message. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {google.analytics.data.v1beta.ICohortsRange} message CohortsRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortsRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.granularity != null && Object.hasOwnProperty.call(message, "granularity")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.granularity); + if (message.startOffset != null && Object.hasOwnProperty.call(message, "startOffset")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startOffset); + if (message.endOffset != null && Object.hasOwnProperty.call(message, "endOffset")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.endOffset); + return writer; + }; + + /** + * Encodes the specified CohortsRange message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortsRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {google.analytics.data.v1beta.ICohortsRange} message CohortsRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortsRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CohortsRange message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortsRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortsRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granularity = reader.int32(); + break; + case 2: + message.startOffset = reader.int32(); + break; + case 3: + message.endOffset = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CohortsRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortsRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CohortsRange message. + * @function verify + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortsRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.granularity != null && message.hasOwnProperty("granularity")) + switch (message.granularity) { + default: + return "granularity: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + if (message.startOffset != null && message.hasOwnProperty("startOffset")) + if (!$util.isInteger(message.startOffset)) + return "startOffset: integer expected"; + if (message.endOffset != null && message.hasOwnProperty("endOffset")) + if (!$util.isInteger(message.endOffset)) + return "endOffset: integer expected"; + return null; + }; + + /** + * Creates a CohortsRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.CohortsRange} CohortsRange + */ + CohortsRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.CohortsRange) + return object; + var message = new $root.google.analytics.data.v1beta.CohortsRange(); + switch (object.granularity) { + case "GRANULARITY_UNSPECIFIED": + case 0: + message.granularity = 0; + break; + case "DAILY": + case 1: + message.granularity = 1; + break; + case "WEEKLY": + case 2: + message.granularity = 2; + break; + case "MONTHLY": + case 3: + message.granularity = 3; + break; + } + if (object.startOffset != null) + message.startOffset = object.startOffset | 0; + if (object.endOffset != null) + message.endOffset = object.endOffset | 0; + return message; + }; + + /** + * Creates a plain object from a CohortsRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.CohortsRange + * @static + * @param {google.analytics.data.v1beta.CohortsRange} message CohortsRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortsRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.granularity = options.enums === String ? "GRANULARITY_UNSPECIFIED" : 0; + object.startOffset = 0; + object.endOffset = 0; + } + if (message.granularity != null && message.hasOwnProperty("granularity")) + object.granularity = options.enums === String ? $root.google.analytics.data.v1beta.CohortsRange.Granularity[message.granularity] : message.granularity; + if (message.startOffset != null && message.hasOwnProperty("startOffset")) + object.startOffset = message.startOffset; + if (message.endOffset != null && message.hasOwnProperty("endOffset")) + object.endOffset = message.endOffset; + return object; + }; + + /** + * Converts this CohortsRange to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.CohortsRange + * @instance + * @returns {Object.} JSON object + */ + CohortsRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Granularity enum. + * @name google.analytics.data.v1beta.CohortsRange.Granularity + * @enum {number} + * @property {number} GRANULARITY_UNSPECIFIED=0 GRANULARITY_UNSPECIFIED value + * @property {number} DAILY=1 DAILY value + * @property {number} WEEKLY=2 WEEKLY value + * @property {number} MONTHLY=3 MONTHLY value + */ + CohortsRange.Granularity = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "GRANULARITY_UNSPECIFIED"] = 0; + values[valuesById[1] = "DAILY"] = 1; + values[valuesById[2] = "WEEKLY"] = 2; + values[valuesById[3] = "MONTHLY"] = 3; + return values; + })(); + + return CohortsRange; + })(); + + v1beta.CohortReportSettings = (function() { + + /** + * Properties of a CohortReportSettings. + * @memberof google.analytics.data.v1beta + * @interface ICohortReportSettings + * @property {boolean|null} [accumulate] CohortReportSettings accumulate + */ + + /** + * Constructs a new CohortReportSettings. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a CohortReportSettings. + * @implements ICohortReportSettings + * @constructor + * @param {google.analytics.data.v1beta.ICohortReportSettings=} [properties] Properties to set + */ + function CohortReportSettings(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CohortReportSettings accumulate. + * @member {boolean} accumulate + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @instance + */ + CohortReportSettings.prototype.accumulate = false; + + /** + * Creates a new CohortReportSettings instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {google.analytics.data.v1beta.ICohortReportSettings=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings instance + */ + CohortReportSettings.create = function create(properties) { + return new CohortReportSettings(properties); + }; + + /** + * Encodes the specified CohortReportSettings message. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {google.analytics.data.v1beta.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortReportSettings.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.accumulate != null && Object.hasOwnProperty.call(message, "accumulate")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.accumulate); + return writer; + }; + + /** + * Encodes the specified CohortReportSettings message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.CohortReportSettings.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {google.analytics.data.v1beta.ICohortReportSettings} message CohortReportSettings message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CohortReportSettings.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CohortReportSettings message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortReportSettings.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.CohortReportSettings(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accumulate = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CohortReportSettings message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CohortReportSettings.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CohortReportSettings message. + * @function verify + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CohortReportSettings.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.accumulate != null && message.hasOwnProperty("accumulate")) + if (typeof message.accumulate !== "boolean") + return "accumulate: boolean expected"; + return null; + }; + + /** + * Creates a CohortReportSettings message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.CohortReportSettings} CohortReportSettings + */ + CohortReportSettings.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.CohortReportSettings) + return object; + var message = new $root.google.analytics.data.v1beta.CohortReportSettings(); + if (object.accumulate != null) + message.accumulate = Boolean(object.accumulate); + return message; + }; + + /** + * Creates a plain object from a CohortReportSettings message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @static + * @param {google.analytics.data.v1beta.CohortReportSettings} message CohortReportSettings + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CohortReportSettings.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.accumulate = false; + if (message.accumulate != null && message.hasOwnProperty("accumulate")) + object.accumulate = message.accumulate; + return object; + }; + + /** + * Converts this CohortReportSettings to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.CohortReportSettings + * @instance + * @returns {Object.} JSON object + */ + CohortReportSettings.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return CohortReportSettings; + })(); + + v1beta.ResponseMetaData = (function() { + + /** + * Properties of a ResponseMetaData. + * @memberof google.analytics.data.v1beta + * @interface IResponseMetaData + * @property {boolean|null} [dataLossFromOtherRow] ResponseMetaData dataLossFromOtherRow + * @property {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null} [schemaRestrictionResponse] ResponseMetaData schemaRestrictionResponse + * @property {string|null} [currencyCode] ResponseMetaData currencyCode + * @property {string|null} [timeZone] ResponseMetaData timeZone + * @property {string|null} [emptyReason] ResponseMetaData emptyReason + */ + + /** + * Constructs a new ResponseMetaData. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a ResponseMetaData. + * @implements IResponseMetaData + * @constructor + * @param {google.analytics.data.v1beta.IResponseMetaData=} [properties] Properties to set + */ + function ResponseMetaData(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ResponseMetaData dataLossFromOtherRow. + * @member {boolean} dataLossFromOtherRow + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.dataLossFromOtherRow = false; + + /** + * ResponseMetaData schemaRestrictionResponse. + * @member {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse|null|undefined} schemaRestrictionResponse + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.schemaRestrictionResponse = null; + + /** + * ResponseMetaData currencyCode. + * @member {string|null|undefined} currencyCode + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.currencyCode = null; + + /** + * ResponseMetaData timeZone. + * @member {string|null|undefined} timeZone + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.timeZone = null; + + /** + * ResponseMetaData emptyReason. + * @member {string|null|undefined} emptyReason + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + ResponseMetaData.prototype.emptyReason = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ResponseMetaData _schemaRestrictionResponse. + * @member {"schemaRestrictionResponse"|undefined} _schemaRestrictionResponse + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + Object.defineProperty(ResponseMetaData.prototype, "_schemaRestrictionResponse", { + get: $util.oneOfGetter($oneOfFields = ["schemaRestrictionResponse"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * ResponseMetaData _currencyCode. + * @member {"currencyCode"|undefined} _currencyCode + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + Object.defineProperty(ResponseMetaData.prototype, "_currencyCode", { + get: $util.oneOfGetter($oneOfFields = ["currencyCode"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * ResponseMetaData _timeZone. + * @member {"timeZone"|undefined} _timeZone + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + Object.defineProperty(ResponseMetaData.prototype, "_timeZone", { + get: $util.oneOfGetter($oneOfFields = ["timeZone"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * ResponseMetaData _emptyReason. + * @member {"emptyReason"|undefined} _emptyReason + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + */ + Object.defineProperty(ResponseMetaData.prototype, "_emptyReason", { + get: $util.oneOfGetter($oneOfFields = ["emptyReason"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ResponseMetaData instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {google.analytics.data.v1beta.IResponseMetaData=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData instance + */ + ResponseMetaData.create = function create(properties) { + return new ResponseMetaData(properties); + }; + + /** + * Encodes the specified ResponseMetaData message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {google.analytics.data.v1beta.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResponseMetaData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataLossFromOtherRow != null && Object.hasOwnProperty.call(message, "dataLossFromOtherRow")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.dataLossFromOtherRow); + if (message.schemaRestrictionResponse != null && Object.hasOwnProperty.call(message, "schemaRestrictionResponse")) + $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.encode(message.schemaRestrictionResponse, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.currencyCode != null && Object.hasOwnProperty.call(message, "currencyCode")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.currencyCode); + if (message.timeZone != null && Object.hasOwnProperty.call(message, "timeZone")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.timeZone); + if (message.emptyReason != null && Object.hasOwnProperty.call(message, "emptyReason")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.emptyReason); + return writer; + }; + + /** + * Encodes the specified ResponseMetaData message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {google.analytics.data.v1beta.IResponseMetaData} message ResponseMetaData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResponseMetaData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ResponseMetaData message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResponseMetaData.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 3: + message.dataLossFromOtherRow = reader.bool(); + break; + case 4: + message.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.decode(reader, reader.uint32()); + break; + case 5: + message.currencyCode = reader.string(); + break; + case 6: + message.timeZone = reader.string(); + break; + case 7: + message.emptyReason = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ResponseMetaData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResponseMetaData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResponseMetaData message. + * @function verify + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResponseMetaData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) + if (typeof message.dataLossFromOtherRow !== "boolean") + return "dataLossFromOtherRow: boolean expected"; + if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { + properties._schemaRestrictionResponse = 1; + { + var error = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify(message.schemaRestrictionResponse); + if (error) + return "schemaRestrictionResponse." + error; + } + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { + properties._currencyCode = 1; + if (!$util.isString(message.currencyCode)) + return "currencyCode: string expected"; + } + if (message.timeZone != null && message.hasOwnProperty("timeZone")) { + properties._timeZone = 1; + if (!$util.isString(message.timeZone)) + return "timeZone: string expected"; + } + if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { + properties._emptyReason = 1; + if (!$util.isString(message.emptyReason)) + return "emptyReason: string expected"; + } + return null; + }; + + /** + * Creates a ResponseMetaData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.ResponseMetaData} ResponseMetaData + */ + ResponseMetaData.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData) + return object; + var message = new $root.google.analytics.data.v1beta.ResponseMetaData(); + if (object.dataLossFromOtherRow != null) + message.dataLossFromOtherRow = Boolean(object.dataLossFromOtherRow); + if (object.schemaRestrictionResponse != null) { + if (typeof object.schemaRestrictionResponse !== "object") + throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.schemaRestrictionResponse: object expected"); + message.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.fromObject(object.schemaRestrictionResponse); + } + if (object.currencyCode != null) + message.currencyCode = String(object.currencyCode); + if (object.timeZone != null) + message.timeZone = String(object.timeZone); + if (object.emptyReason != null) + message.emptyReason = String(object.emptyReason); + return message; + }; + + /** + * Creates a plain object from a ResponseMetaData message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData} message ResponseMetaData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResponseMetaData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.dataLossFromOtherRow = false; + if (message.dataLossFromOtherRow != null && message.hasOwnProperty("dataLossFromOtherRow")) + object.dataLossFromOtherRow = message.dataLossFromOtherRow; + if (message.schemaRestrictionResponse != null && message.hasOwnProperty("schemaRestrictionResponse")) { + object.schemaRestrictionResponse = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.toObject(message.schemaRestrictionResponse, options); + if (options.oneofs) + object._schemaRestrictionResponse = "schemaRestrictionResponse"; + } + if (message.currencyCode != null && message.hasOwnProperty("currencyCode")) { + object.currencyCode = message.currencyCode; + if (options.oneofs) + object._currencyCode = "currencyCode"; + } + if (message.timeZone != null && message.hasOwnProperty("timeZone")) { + object.timeZone = message.timeZone; + if (options.oneofs) + object._timeZone = "timeZone"; + } + if (message.emptyReason != null && message.hasOwnProperty("emptyReason")) { + object.emptyReason = message.emptyReason; + if (options.oneofs) + object._emptyReason = "emptyReason"; + } + return object; + }; + + /** + * Converts this ResponseMetaData to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @instance + * @returns {Object.} JSON object + */ + ResponseMetaData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + ResponseMetaData.SchemaRestrictionResponse = (function() { + + /** + * Properties of a SchemaRestrictionResponse. + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @interface ISchemaRestrictionResponse + * @property {Array.|null} [activeMetricRestrictions] SchemaRestrictionResponse activeMetricRestrictions + */ + + /** + * Constructs a new SchemaRestrictionResponse. + * @memberof google.analytics.data.v1beta.ResponseMetaData + * @classdesc Represents a SchemaRestrictionResponse. + * @implements ISchemaRestrictionResponse + * @constructor + * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set + */ + function SchemaRestrictionResponse(properties) { + this.activeMetricRestrictions = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SchemaRestrictionResponse activeMetricRestrictions. + * @member {Array.} activeMetricRestrictions + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @instance + */ + SchemaRestrictionResponse.prototype.activeMetricRestrictions = $util.emptyArray; + + /** + * Creates a new SchemaRestrictionResponse instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse instance + */ + SchemaRestrictionResponse.create = function create(properties) { + return new SchemaRestrictionResponse(properties); + }; + + /** + * Encodes the specified SchemaRestrictionResponse message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SchemaRestrictionResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.activeMetricRestrictions != null && message.activeMetricRestrictions.length) + for (var i = 0; i < message.activeMetricRestrictions.length; ++i) + $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.encode(message.activeMetricRestrictions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SchemaRestrictionResponse message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.ISchemaRestrictionResponse} message SchemaRestrictionResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SchemaRestrictionResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SchemaRestrictionResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.activeMetricRestrictions && message.activeMetricRestrictions.length)) + message.activeMetricRestrictions = []; + message.activeMetricRestrictions.push($root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SchemaRestrictionResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SchemaRestrictionResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SchemaRestrictionResponse message. + * @function verify + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SchemaRestrictionResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.activeMetricRestrictions != null && message.hasOwnProperty("activeMetricRestrictions")) { + if (!Array.isArray(message.activeMetricRestrictions)) + return "activeMetricRestrictions: array expected"; + for (var i = 0; i < message.activeMetricRestrictions.length; ++i) { + var error = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify(message.activeMetricRestrictions[i]); + if (error) + return "activeMetricRestrictions." + error; + } + } + return null; + }; + + /** + * Creates a SchemaRestrictionResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} SchemaRestrictionResponse + */ + SchemaRestrictionResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse) + return object; + var message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse(); + if (object.activeMetricRestrictions) { + if (!Array.isArray(object.activeMetricRestrictions)) + throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: array expected"); + message.activeMetricRestrictions = []; + for (var i = 0; i < object.activeMetricRestrictions.length; ++i) { + if (typeof object.activeMetricRestrictions[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.activeMetricRestrictions: object expected"); + message.activeMetricRestrictions[i] = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.fromObject(object.activeMetricRestrictions[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a SchemaRestrictionResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse} message SchemaRestrictionResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SchemaRestrictionResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.activeMetricRestrictions = []; + if (message.activeMetricRestrictions && message.activeMetricRestrictions.length) { + object.activeMetricRestrictions = []; + for (var j = 0; j < message.activeMetricRestrictions.length; ++j) + object.activeMetricRestrictions[j] = $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.toObject(message.activeMetricRestrictions[j], options); + } + return object; + }; + + /** + * Converts this SchemaRestrictionResponse to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @instance + * @returns {Object.} JSON object + */ + SchemaRestrictionResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + SchemaRestrictionResponse.ActiveMetricRestriction = (function() { + + /** + * Properties of an ActiveMetricRestriction. + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @interface IActiveMetricRestriction + * @property {string|null} [metricName] ActiveMetricRestriction metricName + * @property {Array.|null} [restrictedMetricTypes] ActiveMetricRestriction restrictedMetricTypes + */ + + /** + * Constructs a new ActiveMetricRestriction. + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse + * @classdesc Represents an ActiveMetricRestriction. + * @implements IActiveMetricRestriction + * @constructor + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set + */ + function ActiveMetricRestriction(properties) { + this.restrictedMetricTypes = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ActiveMetricRestriction metricName. + * @member {string|null|undefined} metricName + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + */ + ActiveMetricRestriction.prototype.metricName = null; + + /** + * ActiveMetricRestriction restrictedMetricTypes. + * @member {Array.} restrictedMetricTypes + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + */ + ActiveMetricRestriction.prototype.restrictedMetricTypes = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ActiveMetricRestriction _metricName. + * @member {"metricName"|undefined} _metricName + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + */ + Object.defineProperty(ActiveMetricRestriction.prototype, "_metricName", { + get: $util.oneOfGetter($oneOfFields = ["metricName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ActiveMetricRestriction instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction instance + */ + ActiveMetricRestriction.create = function create(properties) { + return new ActiveMetricRestriction(properties); + }; + + /** + * Encodes the specified ActiveMetricRestriction message. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ActiveMetricRestriction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricName != null && Object.hasOwnProperty.call(message, "metricName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricName); + if (message.restrictedMetricTypes != null && message.restrictedMetricTypes.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.restrictedMetricTypes.length; ++i) + writer.int32(message.restrictedMetricTypes[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified ActiveMetricRestriction message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.IActiveMetricRestriction} message ActiveMetricRestriction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ActiveMetricRestriction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ActiveMetricRestriction.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metricName = reader.string(); + break; + case 2: + if (!(message.restrictedMetricTypes && message.restrictedMetricTypes.length)) + message.restrictedMetricTypes = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.restrictedMetricTypes.push(reader.int32()); + } else + message.restrictedMetricTypes.push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ActiveMetricRestriction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ActiveMetricRestriction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ActiveMetricRestriction message. + * @function verify + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ActiveMetricRestriction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.metricName != null && message.hasOwnProperty("metricName")) { + properties._metricName = 1; + if (!$util.isString(message.metricName)) + return "metricName: string expected"; + } + if (message.restrictedMetricTypes != null && message.hasOwnProperty("restrictedMetricTypes")) { + if (!Array.isArray(message.restrictedMetricTypes)) + return "restrictedMetricTypes: array expected"; + for (var i = 0; i < message.restrictedMetricTypes.length; ++i) + switch (message.restrictedMetricTypes[i]) { + default: + return "restrictedMetricTypes: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; + + /** + * Creates an ActiveMetricRestriction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} ActiveMetricRestriction + */ + ActiveMetricRestriction.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction) + return object; + var message = new $root.google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction(); + if (object.metricName != null) + message.metricName = String(object.metricName); + if (object.restrictedMetricTypes) { + if (!Array.isArray(object.restrictedMetricTypes)) + throw TypeError(".google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction.restrictedMetricTypes: array expected"); + message.restrictedMetricTypes = []; + for (var i = 0; i < object.restrictedMetricTypes.length; ++i) + switch (object.restrictedMetricTypes[i]) { + default: + case "RESTRICTED_METRIC_TYPE_UNSPECIFIED": + case 0: + message.restrictedMetricTypes[i] = 0; + break; + case "COST_DATA": + case 1: + message.restrictedMetricTypes[i] = 1; + break; + case "REVENUE_DATA": + case 2: + message.restrictedMetricTypes[i] = 2; + break; + } + } + return message; + }; + + /** + * Creates a plain object from an ActiveMetricRestriction message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @static + * @param {google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction} message ActiveMetricRestriction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ActiveMetricRestriction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.restrictedMetricTypes = []; + if (message.metricName != null && message.hasOwnProperty("metricName")) { + object.metricName = message.metricName; + if (options.oneofs) + object._metricName = "metricName"; + } + if (message.restrictedMetricTypes && message.restrictedMetricTypes.length) { + object.restrictedMetricTypes = []; + for (var j = 0; j < message.restrictedMetricTypes.length; ++j) + object.restrictedMetricTypes[j] = options.enums === String ? $root.google.analytics.data.v1beta.RestrictedMetricType[message.restrictedMetricTypes[j]] : message.restrictedMetricTypes[j]; + } + return object; + }; + + /** + * Converts this ActiveMetricRestriction to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction + * @instance + * @returns {Object.} JSON object + */ + ActiveMetricRestriction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ActiveMetricRestriction; + })(); + + return SchemaRestrictionResponse; + })(); + + return ResponseMetaData; + })(); + + v1beta.DimensionHeader = (function() { + + /** + * Properties of a DimensionHeader. + * @memberof google.analytics.data.v1beta + * @interface IDimensionHeader + * @property {string|null} [name] DimensionHeader name + */ + + /** + * Constructs a new DimensionHeader. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DimensionHeader. + * @implements IDimensionHeader + * @constructor + * @param {google.analytics.data.v1beta.IDimensionHeader=} [properties] Properties to set + */ + function DimensionHeader(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DimensionHeader name. + * @member {string} name + * @memberof google.analytics.data.v1beta.DimensionHeader + * @instance + */ + DimensionHeader.prototype.name = ""; + + /** + * Creates a new DimensionHeader instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {google.analytics.data.v1beta.IDimensionHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader instance + */ + DimensionHeader.create = function create(properties) { + return new DimensionHeader(properties); + }; + + /** + * Encodes the specified DimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {google.analytics.data.v1beta.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified DimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {google.analytics.data.v1beta.IDimensionHeader} message DimensionHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DimensionHeader message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DimensionHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DimensionHeader message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a DimensionHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionHeader} DimensionHeader + */ + DimensionHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionHeader) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionHeader(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a DimensionHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionHeader + * @static + * @param {google.analytics.data.v1beta.DimensionHeader} message DimensionHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this DimensionHeader to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionHeader + * @instance + * @returns {Object.} JSON object + */ + DimensionHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DimensionHeader; + })(); + + v1beta.MetricHeader = (function() { + + /** + * Properties of a MetricHeader. + * @memberof google.analytics.data.v1beta + * @interface IMetricHeader + * @property {string|null} [name] MetricHeader name + * @property {google.analytics.data.v1beta.MetricType|null} [type] MetricHeader type + */ + + /** + * Constructs a new MetricHeader. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a MetricHeader. + * @implements IMetricHeader + * @constructor + * @param {google.analytics.data.v1beta.IMetricHeader=} [properties] Properties to set + */ + function MetricHeader(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MetricHeader name. + * @member {string} name + * @memberof google.analytics.data.v1beta.MetricHeader + * @instance + */ + MetricHeader.prototype.name = ""; + + /** + * MetricHeader type. + * @member {google.analytics.data.v1beta.MetricType} type + * @memberof google.analytics.data.v1beta.MetricHeader + * @instance + */ + MetricHeader.prototype.type = 0; + + /** + * Creates a new MetricHeader instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {google.analytics.data.v1beta.IMetricHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader instance + */ + MetricHeader.create = function create(properties) { + return new MetricHeader(properties); + }; + + /** + * Encodes the specified MetricHeader message. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {google.analytics.data.v1beta.IMetricHeader} message MetricHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type); + return writer; + }; + + /** + * Encodes the specified MetricHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {google.analytics.data.v1beta.IMetricHeader} message MetricHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MetricHeader message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.type = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MetricHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MetricHeader message. + * @function verify + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + break; + } + return null; + }; + + /** + * Creates a MetricHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.MetricHeader} MetricHeader + */ + MetricHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.MetricHeader) + return object; + var message = new $root.google.analytics.data.v1beta.MetricHeader(); + if (object.name != null) + message.name = String(object.name); + switch (object.type) { + case "METRIC_TYPE_UNSPECIFIED": + case 0: + message.type = 0; + break; + case "TYPE_INTEGER": + case 1: + message.type = 1; + break; + case "TYPE_FLOAT": + case 2: + message.type = 2; + break; + case "TYPE_SECONDS": + case 4: + message.type = 4; + break; + case "TYPE_MILLISECONDS": + case 5: + message.type = 5; + break; + case "TYPE_MINUTES": + case 6: + message.type = 6; + break; + case "TYPE_HOURS": + case 7: + message.type = 7; + break; + case "TYPE_STANDARD": + case 8: + message.type = 8; + break; + case "TYPE_CURRENCY": + case 9: + message.type = 9; + break; + case "TYPE_FEET": + case 10: + message.type = 10; + break; + case "TYPE_MILES": + case 11: + message.type = 11; + break; + case "TYPE_METERS": + case 12: + message.type = 12; + break; + case "TYPE_KILOMETERS": + case 13: + message.type = 13; + break; + } + return message; + }; + + /** + * Creates a plain object from a MetricHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.MetricHeader + * @static + * @param {google.analytics.data.v1beta.MetricHeader} message MetricHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.analytics.data.v1beta.MetricType[message.type] : message.type; + return object; + }; + + /** + * Converts this MetricHeader to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.MetricHeader + * @instance + * @returns {Object.} JSON object + */ + MetricHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MetricHeader; + })(); + + v1beta.PivotHeader = (function() { + + /** + * Properties of a PivotHeader. + * @memberof google.analytics.data.v1beta + * @interface IPivotHeader + * @property {Array.|null} [pivotDimensionHeaders] PivotHeader pivotDimensionHeaders + * @property {number|null} [rowCount] PivotHeader rowCount + */ + + /** + * Constructs a new PivotHeader. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a PivotHeader. + * @implements IPivotHeader + * @constructor + * @param {google.analytics.data.v1beta.IPivotHeader=} [properties] Properties to set + */ + function PivotHeader(properties) { + this.pivotDimensionHeaders = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PivotHeader pivotDimensionHeaders. + * @member {Array.} pivotDimensionHeaders + * @memberof google.analytics.data.v1beta.PivotHeader + * @instance + */ + PivotHeader.prototype.pivotDimensionHeaders = $util.emptyArray; + + /** + * PivotHeader rowCount. + * @member {number} rowCount + * @memberof google.analytics.data.v1beta.PivotHeader + * @instance + */ + PivotHeader.prototype.rowCount = 0; + + /** + * Creates a new PivotHeader instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {google.analytics.data.v1beta.IPivotHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader instance + */ + PivotHeader.create = function create(properties) { + return new PivotHeader(properties); + }; + + /** + * Encodes the specified PivotHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {google.analytics.data.v1beta.IPivotHeader} message PivotHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pivotDimensionHeaders != null && message.pivotDimensionHeaders.length) + for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) + $root.google.analytics.data.v1beta.PivotDimensionHeader.encode(message.pivotDimensionHeaders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.rowCount != null && Object.hasOwnProperty.call(message, "rowCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.rowCount); + return writer; + }; + + /** + * Encodes the specified PivotHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {google.analytics.data.v1beta.IPivotHeader} message PivotHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PivotHeader message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PivotHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.pivotDimensionHeaders && message.pivotDimensionHeaders.length)) + message.pivotDimensionHeaders = []; + message.pivotDimensionHeaders.push($root.google.analytics.data.v1beta.PivotDimensionHeader.decode(reader, reader.uint32())); + break; + case 2: + message.rowCount = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PivotHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PivotHeader message. + * @function verify + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PivotHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pivotDimensionHeaders != null && message.hasOwnProperty("pivotDimensionHeaders")) { + if (!Array.isArray(message.pivotDimensionHeaders)) + return "pivotDimensionHeaders: array expected"; + for (var i = 0; i < message.pivotDimensionHeaders.length; ++i) { + var error = $root.google.analytics.data.v1beta.PivotDimensionHeader.verify(message.pivotDimensionHeaders[i]); + if (error) + return "pivotDimensionHeaders." + error; + } + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + if (!$util.isInteger(message.rowCount)) + return "rowCount: integer expected"; + return null; + }; + + /** + * Creates a PivotHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.PivotHeader} PivotHeader + */ + PivotHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.PivotHeader) + return object; + var message = new $root.google.analytics.data.v1beta.PivotHeader(); + if (object.pivotDimensionHeaders) { + if (!Array.isArray(object.pivotDimensionHeaders)) + throw TypeError(".google.analytics.data.v1beta.PivotHeader.pivotDimensionHeaders: array expected"); + message.pivotDimensionHeaders = []; + for (var i = 0; i < object.pivotDimensionHeaders.length; ++i) { + if (typeof object.pivotDimensionHeaders[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.PivotHeader.pivotDimensionHeaders: object expected"); + message.pivotDimensionHeaders[i] = $root.google.analytics.data.v1beta.PivotDimensionHeader.fromObject(object.pivotDimensionHeaders[i]); + } + } + if (object.rowCount != null) + message.rowCount = object.rowCount | 0; + return message; + }; + + /** + * Creates a plain object from a PivotHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.PivotHeader + * @static + * @param {google.analytics.data.v1beta.PivotHeader} message PivotHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PivotHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pivotDimensionHeaders = []; + if (options.defaults) + object.rowCount = 0; + if (message.pivotDimensionHeaders && message.pivotDimensionHeaders.length) { + object.pivotDimensionHeaders = []; + for (var j = 0; j < message.pivotDimensionHeaders.length; ++j) + object.pivotDimensionHeaders[j] = $root.google.analytics.data.v1beta.PivotDimensionHeader.toObject(message.pivotDimensionHeaders[j], options); + } + if (message.rowCount != null && message.hasOwnProperty("rowCount")) + object.rowCount = message.rowCount; + return object; + }; + + /** + * Converts this PivotHeader to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.PivotHeader + * @instance + * @returns {Object.} JSON object + */ + PivotHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PivotHeader; + })(); + + v1beta.PivotDimensionHeader = (function() { + + /** + * Properties of a PivotDimensionHeader. + * @memberof google.analytics.data.v1beta + * @interface IPivotDimensionHeader + * @property {Array.|null} [dimensionValues] PivotDimensionHeader dimensionValues + */ + + /** + * Constructs a new PivotDimensionHeader. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a PivotDimensionHeader. + * @implements IPivotDimensionHeader + * @constructor + * @param {google.analytics.data.v1beta.IPivotDimensionHeader=} [properties] Properties to set + */ + function PivotDimensionHeader(properties) { + this.dimensionValues = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PivotDimensionHeader dimensionValues. + * @member {Array.} dimensionValues + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @instance + */ + PivotDimensionHeader.prototype.dimensionValues = $util.emptyArray; + + /** + * Creates a new PivotDimensionHeader instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {google.analytics.data.v1beta.IPivotDimensionHeader=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader instance + */ + PivotDimensionHeader.create = function create(properties) { + return new PivotDimensionHeader(properties); + }; + + /** + * Encodes the specified PivotDimensionHeader message. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {google.analytics.data.v1beta.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotDimensionHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionValues != null && message.dimensionValues.length) + for (var i = 0; i < message.dimensionValues.length; ++i) + $root.google.analytics.data.v1beta.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PivotDimensionHeader message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PivotDimensionHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {google.analytics.data.v1beta.IPivotDimensionHeader} message PivotDimensionHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PivotDimensionHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PivotDimensionHeader message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotDimensionHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PivotDimensionHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dimensionValues && message.dimensionValues.length)) + message.dimensionValues = []; + message.dimensionValues.push($root.google.analytics.data.v1beta.DimensionValue.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PivotDimensionHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PivotDimensionHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PivotDimensionHeader message. + * @function verify + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PivotDimensionHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { + if (!Array.isArray(message.dimensionValues)) + return "dimensionValues: array expected"; + for (var i = 0; i < message.dimensionValues.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionValue.verify(message.dimensionValues[i]); + if (error) + return "dimensionValues." + error; + } + } + return null; + }; + + /** + * Creates a PivotDimensionHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.PivotDimensionHeader} PivotDimensionHeader + */ + PivotDimensionHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.PivotDimensionHeader) + return object; + var message = new $root.google.analytics.data.v1beta.PivotDimensionHeader(); + if (object.dimensionValues) { + if (!Array.isArray(object.dimensionValues)) + throw TypeError(".google.analytics.data.v1beta.PivotDimensionHeader.dimensionValues: array expected"); + message.dimensionValues = []; + for (var i = 0; i < object.dimensionValues.length; ++i) { + if (typeof object.dimensionValues[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.PivotDimensionHeader.dimensionValues: object expected"); + message.dimensionValues[i] = $root.google.analytics.data.v1beta.DimensionValue.fromObject(object.dimensionValues[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a PivotDimensionHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @static + * @param {google.analytics.data.v1beta.PivotDimensionHeader} message PivotDimensionHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PivotDimensionHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dimensionValues = []; + if (message.dimensionValues && message.dimensionValues.length) { + object.dimensionValues = []; + for (var j = 0; j < message.dimensionValues.length; ++j) + object.dimensionValues[j] = $root.google.analytics.data.v1beta.DimensionValue.toObject(message.dimensionValues[j], options); + } + return object; + }; + + /** + * Converts this PivotDimensionHeader to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.PivotDimensionHeader + * @instance + * @returns {Object.} JSON object + */ + PivotDimensionHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PivotDimensionHeader; + })(); + + v1beta.Row = (function() { + + /** + * Properties of a Row. + * @memberof google.analytics.data.v1beta + * @interface IRow + * @property {Array.|null} [dimensionValues] Row dimensionValues + * @property {Array.|null} [metricValues] Row metricValues + */ + + /** + * Constructs a new Row. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a Row. + * @implements IRow + * @constructor + * @param {google.analytics.data.v1beta.IRow=} [properties] Properties to set + */ + function Row(properties) { + this.dimensionValues = []; + this.metricValues = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Row dimensionValues. + * @member {Array.} dimensionValues + * @memberof google.analytics.data.v1beta.Row + * @instance + */ + Row.prototype.dimensionValues = $util.emptyArray; + + /** + * Row metricValues. + * @member {Array.} metricValues + * @memberof google.analytics.data.v1beta.Row + * @instance + */ + Row.prototype.metricValues = $util.emptyArray; + + /** + * Creates a new Row instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {google.analytics.data.v1beta.IRow=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.Row} Row instance + */ + Row.create = function create(properties) { + return new Row(properties); + }; + + /** + * Encodes the specified Row message. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {google.analytics.data.v1beta.IRow} message Row message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Row.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionValues != null && message.dimensionValues.length) + for (var i = 0; i < message.dimensionValues.length; ++i) + $root.google.analytics.data.v1beta.DimensionValue.encode(message.dimensionValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metricValues != null && message.metricValues.length) + for (var i = 0; i < message.metricValues.length; ++i) + $root.google.analytics.data.v1beta.MetricValue.encode(message.metricValues[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.Row.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {google.analytics.data.v1beta.IRow} message Row message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Row.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Row message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.Row} Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Row.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.Row(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dimensionValues && message.dimensionValues.length)) + message.dimensionValues = []; + message.dimensionValues.push($root.google.analytics.data.v1beta.DimensionValue.decode(reader, reader.uint32())); + break; + case 2: + if (!(message.metricValues && message.metricValues.length)) + message.metricValues = []; + message.metricValues.push($root.google.analytics.data.v1beta.MetricValue.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Row message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.Row} Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Row.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Row message. + * @function verify + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Row.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dimensionValues != null && message.hasOwnProperty("dimensionValues")) { + if (!Array.isArray(message.dimensionValues)) + return "dimensionValues: array expected"; + for (var i = 0; i < message.dimensionValues.length; ++i) { + var error = $root.google.analytics.data.v1beta.DimensionValue.verify(message.dimensionValues[i]); + if (error) + return "dimensionValues." + error; + } + } + if (message.metricValues != null && message.hasOwnProperty("metricValues")) { + if (!Array.isArray(message.metricValues)) + return "metricValues: array expected"; + for (var i = 0; i < message.metricValues.length; ++i) { + var error = $root.google.analytics.data.v1beta.MetricValue.verify(message.metricValues[i]); + if (error) + return "metricValues." + error; + } + } + return null; + }; + + /** + * Creates a Row message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.Row} Row + */ + Row.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.Row) + return object; + var message = new $root.google.analytics.data.v1beta.Row(); + if (object.dimensionValues) { + if (!Array.isArray(object.dimensionValues)) + throw TypeError(".google.analytics.data.v1beta.Row.dimensionValues: array expected"); + message.dimensionValues = []; + for (var i = 0; i < object.dimensionValues.length; ++i) { + if (typeof object.dimensionValues[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.Row.dimensionValues: object expected"); + message.dimensionValues[i] = $root.google.analytics.data.v1beta.DimensionValue.fromObject(object.dimensionValues[i]); + } + } + if (object.metricValues) { + if (!Array.isArray(object.metricValues)) + throw TypeError(".google.analytics.data.v1beta.Row.metricValues: array expected"); + message.metricValues = []; + for (var i = 0; i < object.metricValues.length; ++i) { + if (typeof object.metricValues[i] !== "object") + throw TypeError(".google.analytics.data.v1beta.Row.metricValues: object expected"); + message.metricValues[i] = $root.google.analytics.data.v1beta.MetricValue.fromObject(object.metricValues[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Row message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.Row + * @static + * @param {google.analytics.data.v1beta.Row} message Row + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Row.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.dimensionValues = []; + object.metricValues = []; + } + if (message.dimensionValues && message.dimensionValues.length) { + object.dimensionValues = []; + for (var j = 0; j < message.dimensionValues.length; ++j) + object.dimensionValues[j] = $root.google.analytics.data.v1beta.DimensionValue.toObject(message.dimensionValues[j], options); + } + if (message.metricValues && message.metricValues.length) { + object.metricValues = []; + for (var j = 0; j < message.metricValues.length; ++j) + object.metricValues[j] = $root.google.analytics.data.v1beta.MetricValue.toObject(message.metricValues[j], options); + } + return object; + }; + + /** + * Converts this Row to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.Row + * @instance + * @returns {Object.} JSON object + */ + Row.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Row; + })(); + + v1beta.DimensionValue = (function() { + + /** + * Properties of a DimensionValue. + * @memberof google.analytics.data.v1beta + * @interface IDimensionValue + * @property {string|null} [value] DimensionValue value + */ + + /** + * Constructs a new DimensionValue. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DimensionValue. + * @implements IDimensionValue + * @constructor + * @param {google.analytics.data.v1beta.IDimensionValue=} [properties] Properties to set + */ + function DimensionValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DimensionValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1beta.DimensionValue + * @instance + */ + DimensionValue.prototype.value = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * DimensionValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1beta.DimensionValue + * @instance + */ + Object.defineProperty(DimensionValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DimensionValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {google.analytics.data.v1beta.IDimensionValue=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue instance + */ + DimensionValue.create = function create(properties) { + return new DimensionValue(properties); + }; + + /** + * Encodes the specified DimensionValue message. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {google.analytics.data.v1beta.IDimensionValue} message DimensionValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + return writer; + }; + + /** + * Encodes the specified DimensionValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {google.analytics.data.v1beta.IDimensionValue} message DimensionValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DimensionValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionValue.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DimensionValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DimensionValue message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; + } + return null; + }; + + /** + * Creates a DimensionValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionValue} DimensionValue + */ + DimensionValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionValue) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionValue(); + if (object.value != null) + message.value = String(object.value); + return message; + }; + + /** + * Creates a plain object from a DimensionValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionValue + * @static + * @param {google.analytics.data.v1beta.DimensionValue} message DimensionValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; + } + return object; + }; + + /** + * Converts this DimensionValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionValue + * @instance + * @returns {Object.} JSON object + */ + DimensionValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DimensionValue; + })(); + + v1beta.MetricValue = (function() { + + /** + * Properties of a MetricValue. + * @memberof google.analytics.data.v1beta + * @interface IMetricValue + * @property {string|null} [value] MetricValue value + */ + + /** + * Constructs a new MetricValue. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a MetricValue. + * @implements IMetricValue + * @constructor + * @param {google.analytics.data.v1beta.IMetricValue=} [properties] Properties to set + */ + function MetricValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MetricValue value. + * @member {string|null|undefined} value + * @memberof google.analytics.data.v1beta.MetricValue + * @instance + */ + MetricValue.prototype.value = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * MetricValue oneValue. + * @member {"value"|undefined} oneValue + * @memberof google.analytics.data.v1beta.MetricValue + * @instance + */ + Object.defineProperty(MetricValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["value"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MetricValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {google.analytics.data.v1beta.IMetricValue=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.MetricValue} MetricValue instance + */ + MetricValue.create = function create(properties) { + return new MetricValue(properties); + }; + + /** + * Encodes the specified MetricValue message. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {google.analytics.data.v1beta.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.value); + return writer; + }; + + /** + * Encodes the specified MetricValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {google.analytics.data.v1beta.IMetricValue} message MetricValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MetricValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricValue.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 4: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MetricValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MetricValue message. + * @function verify + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.value != null && message.hasOwnProperty("value")) { + properties.oneValue = 1; + if (!$util.isString(message.value)) + return "value: string expected"; + } + return null; + }; + + /** + * Creates a MetricValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.MetricValue} MetricValue + */ + MetricValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.MetricValue) + return object; + var message = new $root.google.analytics.data.v1beta.MetricValue(); + if (object.value != null) + message.value = String(object.value); + return message; + }; + + /** + * Creates a plain object from a MetricValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.MetricValue + * @static + * @param {google.analytics.data.v1beta.MetricValue} message MetricValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.value != null && message.hasOwnProperty("value")) { + object.value = message.value; + if (options.oneofs) + object.oneValue = "value"; + } + return object; + }; + + /** + * Converts this MetricValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.MetricValue + * @instance + * @returns {Object.} JSON object + */ + MetricValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return MetricValue; + })(); + + v1beta.NumericValue = (function() { + + /** + * Properties of a NumericValue. + * @memberof google.analytics.data.v1beta + * @interface INumericValue + * @property {number|Long|null} [int64Value] NumericValue int64Value + * @property {number|null} [doubleValue] NumericValue doubleValue + */ + + /** + * Constructs a new NumericValue. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a NumericValue. + * @implements INumericValue + * @constructor + * @param {google.analytics.data.v1beta.INumericValue=} [properties] Properties to set + */ + function NumericValue(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * NumericValue int64Value. + * @member {number|Long|null|undefined} int64Value + * @memberof google.analytics.data.v1beta.NumericValue + * @instance + */ + NumericValue.prototype.int64Value = null; + + /** + * NumericValue doubleValue. + * @member {number|null|undefined} doubleValue + * @memberof google.analytics.data.v1beta.NumericValue + * @instance + */ + NumericValue.prototype.doubleValue = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * NumericValue oneValue. + * @member {"int64Value"|"doubleValue"|undefined} oneValue + * @memberof google.analytics.data.v1beta.NumericValue + * @instance + */ + Object.defineProperty(NumericValue.prototype, "oneValue", { + get: $util.oneOfGetter($oneOfFields = ["int64Value", "doubleValue"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new NumericValue instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {google.analytics.data.v1beta.INumericValue=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.NumericValue} NumericValue instance + */ + NumericValue.create = function create(properties) { + return new NumericValue(properties); + }; + + /** + * Encodes the specified NumericValue message. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {google.analytics.data.v1beta.INumericValue} message NumericValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericValue.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.int64Value != null && Object.hasOwnProperty.call(message, "int64Value")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.int64Value); + if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) + writer.uint32(/* id 2, wireType 1 =*/17).double(message.doubleValue); + return writer; + }; + + /** + * Encodes the specified NumericValue message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.NumericValue.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {google.analytics.data.v1beta.INumericValue} message NumericValue message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NumericValue.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a NumericValue message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericValue.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.NumericValue(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.int64Value = reader.int64(); + break; + case 2: + message.doubleValue = reader.double(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a NumericValue message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NumericValue.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a NumericValue message. + * @function verify + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NumericValue.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.int64Value != null && message.hasOwnProperty("int64Value")) { + properties.oneValue = 1; + if (!$util.isInteger(message.int64Value) && !(message.int64Value && $util.isInteger(message.int64Value.low) && $util.isInteger(message.int64Value.high))) + return "int64Value: integer|Long expected"; + } + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { + if (properties.oneValue === 1) + return "oneValue: multiple values"; + properties.oneValue = 1; + if (typeof message.doubleValue !== "number") + return "doubleValue: number expected"; + } + return null; + }; + + /** + * Creates a NumericValue message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.NumericValue} NumericValue + */ + NumericValue.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.NumericValue) + return object; + var message = new $root.google.analytics.data.v1beta.NumericValue(); + if (object.int64Value != null) + if ($util.Long) + (message.int64Value = $util.Long.fromValue(object.int64Value)).unsigned = false; + else if (typeof object.int64Value === "string") + message.int64Value = parseInt(object.int64Value, 10); + else if (typeof object.int64Value === "number") + message.int64Value = object.int64Value; + else if (typeof object.int64Value === "object") + message.int64Value = new $util.LongBits(object.int64Value.low >>> 0, object.int64Value.high >>> 0).toNumber(); + if (object.doubleValue != null) + message.doubleValue = Number(object.doubleValue); + return message; + }; + + /** + * Creates a plain object from a NumericValue message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.NumericValue + * @static + * @param {google.analytics.data.v1beta.NumericValue} message NumericValue + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NumericValue.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.int64Value != null && message.hasOwnProperty("int64Value")) { + if (typeof message.int64Value === "number") + object.int64Value = options.longs === String ? String(message.int64Value) : message.int64Value; + else + object.int64Value = options.longs === String ? $util.Long.prototype.toString.call(message.int64Value) : options.longs === Number ? new $util.LongBits(message.int64Value.low >>> 0, message.int64Value.high >>> 0).toNumber() : message.int64Value; + if (options.oneofs) + object.oneValue = "int64Value"; + } + if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) { + object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; + if (options.oneofs) + object.oneValue = "doubleValue"; + } + return object; + }; + + /** + * Converts this NumericValue to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.NumericValue + * @instance + * @returns {Object.} JSON object + */ + NumericValue.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return NumericValue; + })(); + + v1beta.PropertyQuota = (function() { + + /** + * Properties of a PropertyQuota. + * @memberof google.analytics.data.v1beta + * @interface IPropertyQuota + * @property {google.analytics.data.v1beta.IQuotaStatus|null} [tokensPerDay] PropertyQuota tokensPerDay + * @property {google.analytics.data.v1beta.IQuotaStatus|null} [tokensPerHour] PropertyQuota tokensPerHour + * @property {google.analytics.data.v1beta.IQuotaStatus|null} [concurrentRequests] PropertyQuota concurrentRequests + * @property {google.analytics.data.v1beta.IQuotaStatus|null} [serverErrorsPerProjectPerHour] PropertyQuota serverErrorsPerProjectPerHour + * @property {google.analytics.data.v1beta.IQuotaStatus|null} [potentiallyThresholdedRequestsPerHour] PropertyQuota potentiallyThresholdedRequestsPerHour + */ + + /** + * Constructs a new PropertyQuota. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a PropertyQuota. + * @implements IPropertyQuota + * @constructor + * @param {google.analytics.data.v1beta.IPropertyQuota=} [properties] Properties to set + */ + function PropertyQuota(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PropertyQuota tokensPerDay. + * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} tokensPerDay + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + */ + PropertyQuota.prototype.tokensPerDay = null; + + /** + * PropertyQuota tokensPerHour. + * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} tokensPerHour + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + */ + PropertyQuota.prototype.tokensPerHour = null; + + /** + * PropertyQuota concurrentRequests. + * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} concurrentRequests + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + */ + PropertyQuota.prototype.concurrentRequests = null; + + /** + * PropertyQuota serverErrorsPerProjectPerHour. + * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} serverErrorsPerProjectPerHour + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + */ + PropertyQuota.prototype.serverErrorsPerProjectPerHour = null; + + /** + * PropertyQuota potentiallyThresholdedRequestsPerHour. + * @member {google.analytics.data.v1beta.IQuotaStatus|null|undefined} potentiallyThresholdedRequestsPerHour + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + */ + PropertyQuota.prototype.potentiallyThresholdedRequestsPerHour = null; + + /** + * Creates a new PropertyQuota instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {google.analytics.data.v1beta.IPropertyQuota=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota instance + */ + PropertyQuota.create = function create(properties) { + return new PropertyQuota(properties); + }; + + /** + * Encodes the specified PropertyQuota message. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {google.analytics.data.v1beta.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PropertyQuota.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.tokensPerDay != null && Object.hasOwnProperty.call(message, "tokensPerDay")) + $root.google.analytics.data.v1beta.QuotaStatus.encode(message.tokensPerDay, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.tokensPerHour != null && Object.hasOwnProperty.call(message, "tokensPerHour")) + $root.google.analytics.data.v1beta.QuotaStatus.encode(message.tokensPerHour, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.concurrentRequests != null && Object.hasOwnProperty.call(message, "concurrentRequests")) + $root.google.analytics.data.v1beta.QuotaStatus.encode(message.concurrentRequests, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.serverErrorsPerProjectPerHour != null && Object.hasOwnProperty.call(message, "serverErrorsPerProjectPerHour")) + $root.google.analytics.data.v1beta.QuotaStatus.encode(message.serverErrorsPerProjectPerHour, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.potentiallyThresholdedRequestsPerHour != null && Object.hasOwnProperty.call(message, "potentiallyThresholdedRequestsPerHour")) + $root.google.analytics.data.v1beta.QuotaStatus.encode(message.potentiallyThresholdedRequestsPerHour, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PropertyQuota message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.PropertyQuota.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {google.analytics.data.v1beta.IPropertyQuota} message PropertyQuota message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PropertyQuota.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PropertyQuota message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PropertyQuota.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.PropertyQuota(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + break; + case 2: + message.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + break; + case 3: + message.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + break; + case 4: + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + break; + case 5: + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PropertyQuota message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PropertyQuota.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PropertyQuota message. + * @function verify + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PropertyQuota.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) { + var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.tokensPerDay); + if (error) + return "tokensPerDay." + error; + } + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) { + var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.tokensPerHour); + if (error) + return "tokensPerHour." + error; + } + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) { + var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.concurrentRequests); + if (error) + return "concurrentRequests." + error; + } + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) { + var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.serverErrorsPerProjectPerHour); + if (error) + return "serverErrorsPerProjectPerHour." + error; + } + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) { + var error = $root.google.analytics.data.v1beta.QuotaStatus.verify(message.potentiallyThresholdedRequestsPerHour); + if (error) + return "potentiallyThresholdedRequestsPerHour." + error; + } + return null; + }; + + /** + * Creates a PropertyQuota message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.PropertyQuota} PropertyQuota + */ + PropertyQuota.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.PropertyQuota) + return object; + var message = new $root.google.analytics.data.v1beta.PropertyQuota(); + if (object.tokensPerDay != null) { + if (typeof object.tokensPerDay !== "object") + throw TypeError(".google.analytics.data.v1beta.PropertyQuota.tokensPerDay: object expected"); + message.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.tokensPerDay); + } + if (object.tokensPerHour != null) { + if (typeof object.tokensPerHour !== "object") + throw TypeError(".google.analytics.data.v1beta.PropertyQuota.tokensPerHour: object expected"); + message.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.tokensPerHour); + } + if (object.concurrentRequests != null) { + if (typeof object.concurrentRequests !== "object") + throw TypeError(".google.analytics.data.v1beta.PropertyQuota.concurrentRequests: object expected"); + message.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.concurrentRequests); + } + if (object.serverErrorsPerProjectPerHour != null) { + if (typeof object.serverErrorsPerProjectPerHour !== "object") + throw TypeError(".google.analytics.data.v1beta.PropertyQuota.serverErrorsPerProjectPerHour: object expected"); + message.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.serverErrorsPerProjectPerHour); + } + if (object.potentiallyThresholdedRequestsPerHour != null) { + if (typeof object.potentiallyThresholdedRequestsPerHour !== "object") + throw TypeError(".google.analytics.data.v1beta.PropertyQuota.potentiallyThresholdedRequestsPerHour: object expected"); + message.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.fromObject(object.potentiallyThresholdedRequestsPerHour); + } + return message; + }; + + /** + * Creates a plain object from a PropertyQuota message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.PropertyQuota + * @static + * @param {google.analytics.data.v1beta.PropertyQuota} message PropertyQuota + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PropertyQuota.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.tokensPerDay = null; + object.tokensPerHour = null; + object.concurrentRequests = null; + object.serverErrorsPerProjectPerHour = null; + object.potentiallyThresholdedRequestsPerHour = null; + } + if (message.tokensPerDay != null && message.hasOwnProperty("tokensPerDay")) + object.tokensPerDay = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.tokensPerDay, options); + if (message.tokensPerHour != null && message.hasOwnProperty("tokensPerHour")) + object.tokensPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.tokensPerHour, options); + if (message.concurrentRequests != null && message.hasOwnProperty("concurrentRequests")) + object.concurrentRequests = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.concurrentRequests, options); + if (message.serverErrorsPerProjectPerHour != null && message.hasOwnProperty("serverErrorsPerProjectPerHour")) + object.serverErrorsPerProjectPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.serverErrorsPerProjectPerHour, options); + if (message.potentiallyThresholdedRequestsPerHour != null && message.hasOwnProperty("potentiallyThresholdedRequestsPerHour")) + object.potentiallyThresholdedRequestsPerHour = $root.google.analytics.data.v1beta.QuotaStatus.toObject(message.potentiallyThresholdedRequestsPerHour, options); + return object; + }; - /** - * Converts this FileOptions to JSON. - * @function toJSON - * @memberof google.protobuf.FileOptions - * @instance - * @returns {Object.} JSON object - */ - FileOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this PropertyQuota to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.PropertyQuota + * @instance + * @returns {Object.} JSON object + */ + PropertyQuota.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * OptimizeMode enum. - * @name google.protobuf.FileOptions.OptimizeMode - * @enum {number} - * @property {number} SPEED=1 SPEED value - * @property {number} CODE_SIZE=2 CODE_SIZE value - * @property {number} LITE_RUNTIME=3 LITE_RUNTIME value - */ - FileOptions.OptimizeMode = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[1] = "SPEED"] = 1; - values[valuesById[2] = "CODE_SIZE"] = 2; - values[valuesById[3] = "LITE_RUNTIME"] = 3; - return values; - })(); + return PropertyQuota; + })(); - return FileOptions; - })(); + v1beta.QuotaStatus = (function() { - protobuf.MessageOptions = (function() { + /** + * Properties of a QuotaStatus. + * @memberof google.analytics.data.v1beta + * @interface IQuotaStatus + * @property {number|null} [consumed] QuotaStatus consumed + * @property {number|null} [remaining] QuotaStatus remaining + */ - /** - * Properties of a MessageOptions. - * @memberof google.protobuf - * @interface IMessageOptions - * @property {boolean|null} [messageSetWireFormat] MessageOptions messageSetWireFormat - * @property {boolean|null} [noStandardDescriptorAccessor] MessageOptions noStandardDescriptorAccessor - * @property {boolean|null} [deprecated] MessageOptions deprecated - * @property {boolean|null} [mapEntry] MessageOptions mapEntry - * @property {Array.|null} [uninterpretedOption] MessageOptions uninterpretedOption - * @property {google.api.IResourceDescriptor|null} [".google.api.resource"] MessageOptions .google.api.resource - */ + /** + * Constructs a new QuotaStatus. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a QuotaStatus. + * @implements IQuotaStatus + * @constructor + * @param {google.analytics.data.v1beta.IQuotaStatus=} [properties] Properties to set + */ + function QuotaStatus(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new MessageOptions. - * @memberof google.protobuf - * @classdesc Represents a MessageOptions. - * @implements IMessageOptions - * @constructor - * @param {google.protobuf.IMessageOptions=} [properties] Properties to set - */ - function MessageOptions(properties) { - this.uninterpretedOption = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * QuotaStatus consumed. + * @member {number} consumed + * @memberof google.analytics.data.v1beta.QuotaStatus + * @instance + */ + QuotaStatus.prototype.consumed = 0; - /** - * MessageOptions messageSetWireFormat. - * @member {boolean} messageSetWireFormat - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype.messageSetWireFormat = false; + /** + * QuotaStatus remaining. + * @member {number} remaining + * @memberof google.analytics.data.v1beta.QuotaStatus + * @instance + */ + QuotaStatus.prototype.remaining = 0; - /** - * MessageOptions noStandardDescriptorAccessor. - * @member {boolean} noStandardDescriptorAccessor - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype.noStandardDescriptorAccessor = false; + /** + * Creates a new QuotaStatus instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {google.analytics.data.v1beta.IQuotaStatus=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus instance + */ + QuotaStatus.create = function create(properties) { + return new QuotaStatus(properties); + }; - /** - * MessageOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype.deprecated = false; + /** + * Encodes the specified QuotaStatus message. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {google.analytics.data.v1beta.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + QuotaStatus.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.consumed != null && Object.hasOwnProperty.call(message, "consumed")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.consumed); + if (message.remaining != null && Object.hasOwnProperty.call(message, "remaining")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.remaining); + return writer; + }; - /** - * MessageOptions mapEntry. - * @member {boolean} mapEntry - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype.mapEntry = false; + /** + * Encodes the specified QuotaStatus message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.QuotaStatus.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {google.analytics.data.v1beta.IQuotaStatus} message QuotaStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + QuotaStatus.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * MessageOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * Decodes a QuotaStatus message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + QuotaStatus.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.QuotaStatus(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.consumed = reader.int32(); + break; + case 2: + message.remaining = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * MessageOptions .google.api.resource. - * @member {google.api.IResourceDescriptor|null|undefined} .google.api.resource - * @memberof google.protobuf.MessageOptions - * @instance - */ - MessageOptions.prototype[".google.api.resource"] = null; + /** + * Decodes a QuotaStatus message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + QuotaStatus.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a new MessageOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.MessageOptions - * @static - * @param {google.protobuf.IMessageOptions=} [properties] Properties to set - * @returns {google.protobuf.MessageOptions} MessageOptions instance - */ - MessageOptions.create = function create(properties) { - return new MessageOptions(properties); - }; + /** + * Verifies a QuotaStatus message. + * @function verify + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + QuotaStatus.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.consumed != null && message.hasOwnProperty("consumed")) + if (!$util.isInteger(message.consumed)) + return "consumed: integer expected"; + if (message.remaining != null && message.hasOwnProperty("remaining")) + if (!$util.isInteger(message.remaining)) + return "remaining: integer expected"; + return null; + }; - /** - * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.MessageOptions - * @static - * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MessageOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.messageSetWireFormat != null && Object.hasOwnProperty.call(message, "messageSetWireFormat")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.messageSetWireFormat); - if (message.noStandardDescriptorAccessor != null && Object.hasOwnProperty.call(message, "noStandardDescriptorAccessor")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.noStandardDescriptorAccessor); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); - if (message.mapEntry != null && Object.hasOwnProperty.call(message, "mapEntry")) - writer.uint32(/* id 7, wireType 0 =*/56).bool(message.mapEntry); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.resource"] != null && Object.hasOwnProperty.call(message, ".google.api.resource")) - $root.google.api.ResourceDescriptor.encode(message[".google.api.resource"], writer.uint32(/* id 1053, wireType 2 =*/8426).fork()).ldelim(); - return writer; - }; + /** + * Creates a QuotaStatus message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.QuotaStatus} QuotaStatus + */ + QuotaStatus.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.QuotaStatus) + return object; + var message = new $root.google.analytics.data.v1beta.QuotaStatus(); + if (object.consumed != null) + message.consumed = object.consumed | 0; + if (object.remaining != null) + message.remaining = object.remaining | 0; + return message; + }; - /** - * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.MessageOptions - * @static - * @param {google.protobuf.IMessageOptions} message MessageOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - MessageOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a plain object from a QuotaStatus message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.QuotaStatus + * @static + * @param {google.analytics.data.v1beta.QuotaStatus} message QuotaStatus + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + QuotaStatus.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.consumed = 0; + object.remaining = 0; + } + if (message.consumed != null && message.hasOwnProperty("consumed")) + object.consumed = message.consumed; + if (message.remaining != null && message.hasOwnProperty("remaining")) + object.remaining = message.remaining; + return object; + }; - /** - * Decodes a MessageOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.MessageOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.MessageOptions} MessageOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MessageOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MessageOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.messageSetWireFormat = reader.bool(); - break; - case 2: - message.noStandardDescriptorAccessor = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 7: - message.mapEntry = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1053: - message[".google.api.resource"] = $root.google.api.ResourceDescriptor.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Converts this QuotaStatus to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.QuotaStatus + * @instance + * @returns {Object.} JSON object + */ + QuotaStatus.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return QuotaStatus; + })(); + + v1beta.DimensionMetadata = (function() { + + /** + * Properties of a DimensionMetadata. + * @memberof google.analytics.data.v1beta + * @interface IDimensionMetadata + * @property {string|null} [apiName] DimensionMetadata apiName + * @property {string|null} [uiName] DimensionMetadata uiName + * @property {string|null} [description] DimensionMetadata description + * @property {Array.|null} [deprecatedApiNames] DimensionMetadata deprecatedApiNames + * @property {boolean|null} [customDefinition] DimensionMetadata customDefinition + * @property {string|null} [category] DimensionMetadata category + */ + + /** + * Constructs a new DimensionMetadata. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DimensionMetadata. + * @implements IDimensionMetadata + * @constructor + * @param {google.analytics.data.v1beta.IDimensionMetadata=} [properties] Properties to set + */ + function DimensionMetadata(properties) { + this.deprecatedApiNames = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return message; - }; - /** - * Decodes a MessageOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.MessageOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.MessageOptions} MessageOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - MessageOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * DimensionMetadata apiName. + * @member {string} apiName + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.apiName = ""; + + /** + * DimensionMetadata uiName. + * @member {string} uiName + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.uiName = ""; + + /** + * DimensionMetadata description. + * @member {string} description + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.description = ""; + + /** + * DimensionMetadata deprecatedApiNames. + * @member {Array.} deprecatedApiNames + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.deprecatedApiNames = $util.emptyArray; + + /** + * DimensionMetadata customDefinition. + * @member {boolean} customDefinition + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.customDefinition = false; + + /** + * DimensionMetadata category. + * @member {string} category + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + */ + DimensionMetadata.prototype.category = ""; + + /** + * Creates a new DimensionMetadata instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {google.analytics.data.v1beta.IDimensionMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata instance + */ + DimensionMetadata.create = function create(properties) { + return new DimensionMetadata(properties); + }; + + /** + * Encodes the specified DimensionMetadata message. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {google.analytics.data.v1beta.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); + if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); + if (message.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); + if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); + if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.customDefinition); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.category); + return writer; + }; + + /** + * Encodes the specified DimensionMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {google.analytics.data.v1beta.IDimensionMetadata} message DimensionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies a MessageOptions message. - * @function verify - * @memberof google.protobuf.MessageOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MessageOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) - if (typeof message.messageSetWireFormat !== "boolean") - return "messageSetWireFormat: boolean expected"; - if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) - if (typeof message.noStandardDescriptorAccessor !== "boolean") - return "noStandardDescriptorAccessor: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) - if (typeof message.mapEntry !== "boolean") - return "mapEntry: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) { - var error = $root.google.api.ResourceDescriptor.verify(message[".google.api.resource"]); - if (error) - return ".google.api.resource." + error; - } - return null; - }; + /** + * Decodes a DimensionMetadata message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.apiName = reader.string(); + break; + case 2: + message.uiName = reader.string(); + break; + case 3: + message.description = reader.string(); + break; + case 4: + if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) + message.deprecatedApiNames = []; + message.deprecatedApiNames.push(reader.string()); + break; + case 5: + message.customDefinition = reader.bool(); + break; + case 7: + message.category = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.MessageOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.MessageOptions} MessageOptions - */ - MessageOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.MessageOptions) - return object; - var message = new $root.google.protobuf.MessageOptions(); - if (object.messageSetWireFormat != null) - message.messageSetWireFormat = Boolean(object.messageSetWireFormat); - if (object.noStandardDescriptorAccessor != null) - message.noStandardDescriptorAccessor = Boolean(object.noStandardDescriptorAccessor); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.mapEntry != null) - message.mapEntry = Boolean(object.mapEntry); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - if (object[".google.api.resource"] != null) { - if (typeof object[".google.api.resource"] !== "object") - throw TypeError(".google.protobuf.MessageOptions..google.api.resource: object expected"); - message[".google.api.resource"] = $root.google.api.ResourceDescriptor.fromObject(object[".google.api.resource"]); - } - return message; - }; + /** + * Decodes a DimensionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a plain object from a MessageOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.MessageOptions - * @static - * @param {google.protobuf.MessageOptions} message MessageOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - MessageOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (options.defaults) { - object.messageSetWireFormat = false; - object.noStandardDescriptorAccessor = false; - object.deprecated = false; - object.mapEntry = false; - object[".google.api.resource"] = null; - } - if (message.messageSetWireFormat != null && message.hasOwnProperty("messageSetWireFormat")) - object.messageSetWireFormat = message.messageSetWireFormat; - if (message.noStandardDescriptorAccessor != null && message.hasOwnProperty("noStandardDescriptorAccessor")) - object.noStandardDescriptorAccessor = message.noStandardDescriptorAccessor; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.mapEntry != null && message.hasOwnProperty("mapEntry")) - object.mapEntry = message.mapEntry; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - if (message[".google.api.resource"] != null && message.hasOwnProperty(".google.api.resource")) - object[".google.api.resource"] = $root.google.api.ResourceDescriptor.toObject(message[".google.api.resource"], options); - return object; - }; + /** + * Verifies a DimensionMetadata message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.uiName != null && message.hasOwnProperty("uiName")) + if (!$util.isString(message.uiName)) + return "uiName: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { + if (!Array.isArray(message.deprecatedApiNames)) + return "deprecatedApiNames: array expected"; + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + if (!$util.isString(message.deprecatedApiNames[i])) + return "deprecatedApiNames: string[] expected"; + } + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + if (typeof message.customDefinition !== "boolean") + return "customDefinition: boolean expected"; + if (message.category != null && message.hasOwnProperty("category")) + if (!$util.isString(message.category)) + return "category: string expected"; + return null; + }; - /** - * Converts this MessageOptions to JSON. - * @function toJSON - * @memberof google.protobuf.MessageOptions - * @instance - * @returns {Object.} JSON object - */ - MessageOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a DimensionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionMetadata} DimensionMetadata + */ + DimensionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionMetadata) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionMetadata(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.uiName != null) + message.uiName = String(object.uiName); + if (object.description != null) + message.description = String(object.description); + if (object.deprecatedApiNames) { + if (!Array.isArray(object.deprecatedApiNames)) + throw TypeError(".google.analytics.data.v1beta.DimensionMetadata.deprecatedApiNames: array expected"); + message.deprecatedApiNames = []; + for (var i = 0; i < object.deprecatedApiNames.length; ++i) + message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); + } + if (object.customDefinition != null) + message.customDefinition = Boolean(object.customDefinition); + if (object.category != null) + message.category = String(object.category); + return message; + }; - return MessageOptions; - })(); + /** + * Creates a plain object from a DimensionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @static + * @param {google.analytics.data.v1beta.DimensionMetadata} message DimensionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.deprecatedApiNames = []; + if (options.defaults) { + object.apiName = ""; + object.uiName = ""; + object.description = ""; + object.customDefinition = false; + object.category = ""; + } + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.uiName != null && message.hasOwnProperty("uiName")) + object.uiName = message.uiName; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.deprecatedApiNames && message.deprecatedApiNames.length) { + object.deprecatedApiNames = []; + for (var j = 0; j < message.deprecatedApiNames.length; ++j) + object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + } + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + object.customDefinition = message.customDefinition; + if (message.category != null && message.hasOwnProperty("category")) + object.category = message.category; + return object; + }; - protobuf.FieldOptions = (function() { + /** + * Converts this DimensionMetadata to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionMetadata + * @instance + * @returns {Object.} JSON object + */ + DimensionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Properties of a FieldOptions. - * @memberof google.protobuf - * @interface IFieldOptions - * @property {google.protobuf.FieldOptions.CType|null} [ctype] FieldOptions ctype - * @property {boolean|null} [packed] FieldOptions packed - * @property {google.protobuf.FieldOptions.JSType|null} [jstype] FieldOptions jstype - * @property {boolean|null} [lazy] FieldOptions lazy - * @property {boolean|null} [deprecated] FieldOptions deprecated - * @property {boolean|null} [weak] FieldOptions weak - * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption - * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior - * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference - */ + return DimensionMetadata; + })(); - /** - * Constructs a new FieldOptions. - * @memberof google.protobuf - * @classdesc Represents a FieldOptions. - * @implements IFieldOptions - * @constructor - * @param {google.protobuf.IFieldOptions=} [properties] Properties to set - */ - function FieldOptions(properties) { - this.uninterpretedOption = []; - this[".google.api.fieldBehavior"] = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + v1beta.MetricMetadata = (function() { - /** - * FieldOptions ctype. - * @member {google.protobuf.FieldOptions.CType} ctype - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.ctype = 0; + /** + * Properties of a MetricMetadata. + * @memberof google.analytics.data.v1beta + * @interface IMetricMetadata + * @property {string|null} [apiName] MetricMetadata apiName + * @property {string|null} [uiName] MetricMetadata uiName + * @property {string|null} [description] MetricMetadata description + * @property {Array.|null} [deprecatedApiNames] MetricMetadata deprecatedApiNames + * @property {google.analytics.data.v1beta.MetricType|null} [type] MetricMetadata type + * @property {string|null} [expression] MetricMetadata expression + * @property {boolean|null} [customDefinition] MetricMetadata customDefinition + * @property {Array.|null} [blockedReasons] MetricMetadata blockedReasons + * @property {string|null} [category] MetricMetadata category + */ - /** - * FieldOptions packed. - * @member {boolean} packed - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.packed = false; + /** + * Constructs a new MetricMetadata. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a MetricMetadata. + * @implements IMetricMetadata + * @constructor + * @param {google.analytics.data.v1beta.IMetricMetadata=} [properties] Properties to set + */ + function MetricMetadata(properties) { + this.deprecatedApiNames = []; + this.blockedReasons = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * FieldOptions jstype. - * @member {google.protobuf.FieldOptions.JSType} jstype - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.jstype = 0; + /** + * MetricMetadata apiName. + * @member {string} apiName + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.apiName = ""; - /** - * FieldOptions lazy. - * @member {boolean} lazy - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.lazy = false; + /** + * MetricMetadata uiName. + * @member {string} uiName + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.uiName = ""; - /** - * FieldOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.deprecated = false; + /** + * MetricMetadata description. + * @member {string} description + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.description = ""; - /** - * FieldOptions weak. - * @member {boolean} weak - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.weak = false; + /** + * MetricMetadata deprecatedApiNames. + * @member {Array.} deprecatedApiNames + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.deprecatedApiNames = $util.emptyArray; - /** - * FieldOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * MetricMetadata type. + * @member {google.analytics.data.v1beta.MetricType} type + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.type = 0; - /** - * FieldOptions .google.api.fieldBehavior. - * @member {Array.} .google.api.fieldBehavior - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray; + /** + * MetricMetadata expression. + * @member {string} expression + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.expression = ""; + + /** + * MetricMetadata customDefinition. + * @member {boolean} customDefinition + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.customDefinition = false; + + /** + * MetricMetadata blockedReasons. + * @member {Array.} blockedReasons + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.blockedReasons = $util.emptyArray; - /** - * FieldOptions .google.api.resourceReference. - * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference - * @memberof google.protobuf.FieldOptions - * @instance - */ - FieldOptions.prototype[".google.api.resourceReference"] = null; + /** + * MetricMetadata category. + * @member {string} category + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + */ + MetricMetadata.prototype.category = ""; - /** - * Creates a new FieldOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.FieldOptions - * @static - * @param {google.protobuf.IFieldOptions=} [properties] Properties to set - * @returns {google.protobuf.FieldOptions} FieldOptions instance - */ - FieldOptions.create = function create(properties) { - return new FieldOptions(properties); - }; + /** + * Creates a new MetricMetadata instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {google.analytics.data.v1beta.IMetricMetadata=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata instance + */ + MetricMetadata.create = function create(properties) { + return new MetricMetadata(properties); + }; - /** - * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.FieldOptions - * @static - * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FieldOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.ctype != null && Object.hasOwnProperty.call(message, "ctype")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.ctype); - if (message.packed != null && Object.hasOwnProperty.call(message, "packed")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.packed); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); - if (message.lazy != null && Object.hasOwnProperty.call(message, "lazy")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.lazy); - if (message.jstype != null && Object.hasOwnProperty.call(message, "jstype")) - writer.uint32(/* id 6, wireType 0 =*/48).int32(message.jstype); - if (message.weak != null && Object.hasOwnProperty.call(message, "weak")) - writer.uint32(/* id 10, wireType 0 =*/80).bool(message.weak); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.fieldBehavior"] != null && message[".google.api.fieldBehavior"].length) { - writer.uint32(/* id 1052, wireType 2 =*/8418).fork(); - for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) - writer.int32(message[".google.api.fieldBehavior"][i]); - writer.ldelim(); - } - if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) - $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); - return writer; - }; + /** + * Encodes the specified MetricMetadata message. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {google.analytics.data.v1beta.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.apiName != null && Object.hasOwnProperty.call(message, "apiName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.apiName); + if (message.uiName != null && Object.hasOwnProperty.call(message, "uiName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.uiName); + if (message.description != null && Object.hasOwnProperty.call(message, "description")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.description); + if (message.deprecatedApiNames != null && message.deprecatedApiNames.length) + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.deprecatedApiNames[i]); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type); + if (message.expression != null && Object.hasOwnProperty.call(message, "expression")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.expression); + if (message.customDefinition != null && Object.hasOwnProperty.call(message, "customDefinition")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.customDefinition); + if (message.blockedReasons != null && message.blockedReasons.length) { + writer.uint32(/* id 8, wireType 2 =*/66).fork(); + for (var i = 0; i < message.blockedReasons.length; ++i) + writer.int32(message.blockedReasons[i]); + writer.ldelim(); + } + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.category); + return writer; + }; - /** - * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.FieldOptions - * @static - * @param {google.protobuf.IFieldOptions} message FieldOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FieldOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified MetricMetadata message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {google.analytics.data.v1beta.IMetricMetadata} message MetricMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a FieldOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.FieldOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.FieldOptions} FieldOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FieldOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.FieldOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.ctype = reader.int32(); - break; - case 2: - message.packed = reader.bool(); - break; - case 6: - message.jstype = reader.int32(); - break; - case 5: - message.lazy = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 10: - message.weak = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1052: - if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length)) - message[".google.api.fieldBehavior"] = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message[".google.api.fieldBehavior"].push(reader.int32()); - } else - message[".google.api.fieldBehavior"].push(reader.int32()); - break; - case 1055: - message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Decodes a MetricMetadata message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.apiName = reader.string(); + break; + case 2: + message.uiName = reader.string(); + break; + case 3: + message.description = reader.string(); + break; + case 4: + if (!(message.deprecatedApiNames && message.deprecatedApiNames.length)) + message.deprecatedApiNames = []; + message.deprecatedApiNames.push(reader.string()); + break; + case 5: + message.type = reader.int32(); + break; + case 6: + message.expression = reader.string(); + break; + case 7: + message.customDefinition = reader.bool(); + break; + case 8: + if (!(message.blockedReasons && message.blockedReasons.length)) + message.blockedReasons = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.blockedReasons.push(reader.int32()); + } else + message.blockedReasons.push(reader.int32()); + break; + case 10: + message.category = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Decodes a FieldOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.FieldOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.FieldOptions} FieldOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FieldOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a MetricMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a FieldOptions message. - * @function verify - * @memberof google.protobuf.FieldOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FieldOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.ctype != null && message.hasOwnProperty("ctype")) - switch (message.ctype) { - default: - return "ctype: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.packed != null && message.hasOwnProperty("packed")) - if (typeof message.packed !== "boolean") - return "packed: boolean expected"; - if (message.jstype != null && message.hasOwnProperty("jstype")) - switch (message.jstype) { - default: - return "jstype: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.lazy != null && message.hasOwnProperty("lazy")) - if (typeof message.lazy !== "boolean") - return "lazy: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.weak != null && message.hasOwnProperty("weak")) - if (typeof message.weak !== "boolean") - return "weak: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - if (message[".google.api.fieldBehavior"] != null && message.hasOwnProperty(".google.api.fieldBehavior")) { - if (!Array.isArray(message[".google.api.fieldBehavior"])) - return ".google.api.fieldBehavior: array expected"; - for (var i = 0; i < message[".google.api.fieldBehavior"].length; ++i) - switch (message[".google.api.fieldBehavior"][i]) { - default: - return ".google.api.fieldBehavior: enum value[] expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - break; + /** + * Verifies a MetricMetadata message. + * @function verify + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.uiName != null && message.hasOwnProperty("uiName")) + if (!$util.isString(message.uiName)) + return "uiName: string expected"; + if (message.description != null && message.hasOwnProperty("description")) + if (!$util.isString(message.description)) + return "description: string expected"; + if (message.deprecatedApiNames != null && message.hasOwnProperty("deprecatedApiNames")) { + if (!Array.isArray(message.deprecatedApiNames)) + return "deprecatedApiNames: array expected"; + for (var i = 0; i < message.deprecatedApiNames.length; ++i) + if (!$util.isString(message.deprecatedApiNames[i])) + return "deprecatedApiNames: string[] expected"; } - } - if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) { - var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]); - if (error) - return ".google.api.resourceReference." + error; - } - return null; - }; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + break; + } + if (message.expression != null && message.hasOwnProperty("expression")) + if (!$util.isString(message.expression)) + return "expression: string expected"; + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + if (typeof message.customDefinition !== "boolean") + return "customDefinition: boolean expected"; + if (message.blockedReasons != null && message.hasOwnProperty("blockedReasons")) { + if (!Array.isArray(message.blockedReasons)) + return "blockedReasons: array expected"; + for (var i = 0; i < message.blockedReasons.length; ++i) + switch (message.blockedReasons[i]) { + default: + return "blockedReasons: enum value[] expected"; + case 0: + case 1: + case 2: + break; + } + } + if (message.category != null && message.hasOwnProperty("category")) + if (!$util.isString(message.category)) + return "category: string expected"; + return null; + }; - /** - * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.FieldOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.FieldOptions} FieldOptions - */ - FieldOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.FieldOptions) - return object; - var message = new $root.google.protobuf.FieldOptions(); - switch (object.ctype) { - case "STRING": - case 0: - message.ctype = 0; - break; - case "CORD": - case 1: - message.ctype = 1; - break; - case "STRING_PIECE": - case 2: - message.ctype = 2; - break; - } - if (object.packed != null) - message.packed = Boolean(object.packed); - switch (object.jstype) { - case "JS_NORMAL": - case 0: - message.jstype = 0; - break; - case "JS_STRING": - case 1: - message.jstype = 1; - break; - case "JS_NUMBER": - case 2: - message.jstype = 2; - break; - } - if (object.lazy != null) - message.lazy = Boolean(object.lazy); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.weak != null) - message.weak = Boolean(object.weak); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.FieldOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - if (object[".google.api.fieldBehavior"]) { - if (!Array.isArray(object[".google.api.fieldBehavior"])) - throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected"); - message[".google.api.fieldBehavior"] = []; - for (var i = 0; i < object[".google.api.fieldBehavior"].length; ++i) - switch (object[".google.api.fieldBehavior"][i]) { - default: - case "FIELD_BEHAVIOR_UNSPECIFIED": + /** + * Creates a MetricMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.MetricMetadata} MetricMetadata + */ + MetricMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.MetricMetadata) + return object; + var message = new $root.google.analytics.data.v1beta.MetricMetadata(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.uiName != null) + message.uiName = String(object.uiName); + if (object.description != null) + message.description = String(object.description); + if (object.deprecatedApiNames) { + if (!Array.isArray(object.deprecatedApiNames)) + throw TypeError(".google.analytics.data.v1beta.MetricMetadata.deprecatedApiNames: array expected"); + message.deprecatedApiNames = []; + for (var i = 0; i < object.deprecatedApiNames.length; ++i) + message.deprecatedApiNames[i] = String(object.deprecatedApiNames[i]); + } + switch (object.type) { + case "METRIC_TYPE_UNSPECIFIED": case 0: - message[".google.api.fieldBehavior"][i] = 0; + message.type = 0; break; - case "OPTIONAL": + case "TYPE_INTEGER": case 1: - message[".google.api.fieldBehavior"][i] = 1; + message.type = 1; break; - case "REQUIRED": + case "TYPE_FLOAT": case 2: - message[".google.api.fieldBehavior"][i] = 2; - break; - case "OUTPUT_ONLY": - case 3: - message[".google.api.fieldBehavior"][i] = 3; + message.type = 2; break; - case "INPUT_ONLY": + case "TYPE_SECONDS": case 4: - message[".google.api.fieldBehavior"][i] = 4; + message.type = 4; break; - case "IMMUTABLE": + case "TYPE_MILLISECONDS": case 5: - message[".google.api.fieldBehavior"][i] = 5; + message.type = 5; break; - case "UNORDERED_LIST": + case "TYPE_MINUTES": case 6: - message[".google.api.fieldBehavior"][i] = 6; + message.type = 6; break; - case "NON_EMPTY_DEFAULT": + case "TYPE_HOURS": case 7: - message[".google.api.fieldBehavior"][i] = 7; + message.type = 7; + break; + case "TYPE_STANDARD": + case 8: + message.type = 8; + break; + case "TYPE_CURRENCY": + case 9: + message.type = 9; + break; + case "TYPE_FEET": + case 10: + message.type = 10; + break; + case "TYPE_MILES": + case 11: + message.type = 11; + break; + case "TYPE_METERS": + case 12: + message.type = 12; + break; + case "TYPE_KILOMETERS": + case 13: + message.type = 13; break; } - } - if (object[".google.api.resourceReference"] != null) { - if (typeof object[".google.api.resourceReference"] !== "object") - throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected"); - message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]); - } - return message; - }; - - /** - * Creates a plain object from a FieldOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.FieldOptions - * @static - * @param {google.protobuf.FieldOptions} message FieldOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FieldOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.uninterpretedOption = []; - object[".google.api.fieldBehavior"] = []; - } - if (options.defaults) { - object.ctype = options.enums === String ? "STRING" : 0; - object.packed = false; - object.deprecated = false; - object.lazy = false; - object.jstype = options.enums === String ? "JS_NORMAL" : 0; - object.weak = false; - object[".google.api.resourceReference"] = null; - } - if (message.ctype != null && message.hasOwnProperty("ctype")) - object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; - if (message.packed != null && message.hasOwnProperty("packed")) - object.packed = message.packed; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.lazy != null && message.hasOwnProperty("lazy")) - object.lazy = message.lazy; - if (message.jstype != null && message.hasOwnProperty("jstype")) - object.jstype = options.enums === String ? $root.google.protobuf.FieldOptions.JSType[message.jstype] : message.jstype; - if (message.weak != null && message.hasOwnProperty("weak")) - object.weak = message.weak; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - if (message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length) { - object[".google.api.fieldBehavior"] = []; - for (var j = 0; j < message[".google.api.fieldBehavior"].length; ++j) - object[".google.api.fieldBehavior"][j] = options.enums === String ? $root.google.api.FieldBehavior[message[".google.api.fieldBehavior"][j]] : message[".google.api.fieldBehavior"][j]; - } - if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) - object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); - return object; - }; - - /** - * Converts this FieldOptions to JSON. - * @function toJSON - * @memberof google.protobuf.FieldOptions - * @instance - * @returns {Object.} JSON object - */ - FieldOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * CType enum. - * @name google.protobuf.FieldOptions.CType - * @enum {number} - * @property {number} STRING=0 STRING value - * @property {number} CORD=1 CORD value - * @property {number} STRING_PIECE=2 STRING_PIECE value - */ - FieldOptions.CType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "STRING"] = 0; - values[valuesById[1] = "CORD"] = 1; - values[valuesById[2] = "STRING_PIECE"] = 2; - return values; - })(); - - /** - * JSType enum. - * @name google.protobuf.FieldOptions.JSType - * @enum {number} - * @property {number} JS_NORMAL=0 JS_NORMAL value - * @property {number} JS_STRING=1 JS_STRING value - * @property {number} JS_NUMBER=2 JS_NUMBER value - */ - FieldOptions.JSType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "JS_NORMAL"] = 0; - values[valuesById[1] = "JS_STRING"] = 1; - values[valuesById[2] = "JS_NUMBER"] = 2; - return values; - })(); - - return FieldOptions; - })(); - - protobuf.OneofOptions = (function() { + if (object.expression != null) + message.expression = String(object.expression); + if (object.customDefinition != null) + message.customDefinition = Boolean(object.customDefinition); + if (object.blockedReasons) { + if (!Array.isArray(object.blockedReasons)) + throw TypeError(".google.analytics.data.v1beta.MetricMetadata.blockedReasons: array expected"); + message.blockedReasons = []; + for (var i = 0; i < object.blockedReasons.length; ++i) + switch (object.blockedReasons[i]) { + default: + case "BLOCKED_REASON_UNSPECIFIED": + case 0: + message.blockedReasons[i] = 0; + break; + case "NO_REVENUE_METRICS": + case 1: + message.blockedReasons[i] = 1; + break; + case "NO_COST_METRICS": + case 2: + message.blockedReasons[i] = 2; + break; + } + } + if (object.category != null) + message.category = String(object.category); + return message; + }; - /** - * Properties of an OneofOptions. - * @memberof google.protobuf - * @interface IOneofOptions - * @property {Array.|null} [uninterpretedOption] OneofOptions uninterpretedOption - */ + /** + * Creates a plain object from a MetricMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.MetricMetadata + * @static + * @param {google.analytics.data.v1beta.MetricMetadata} message MetricMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.deprecatedApiNames = []; + object.blockedReasons = []; + } + if (options.defaults) { + object.apiName = ""; + object.uiName = ""; + object.description = ""; + object.type = options.enums === String ? "METRIC_TYPE_UNSPECIFIED" : 0; + object.expression = ""; + object.customDefinition = false; + object.category = ""; + } + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.uiName != null && message.hasOwnProperty("uiName")) + object.uiName = message.uiName; + if (message.description != null && message.hasOwnProperty("description")) + object.description = message.description; + if (message.deprecatedApiNames && message.deprecatedApiNames.length) { + object.deprecatedApiNames = []; + for (var j = 0; j < message.deprecatedApiNames.length; ++j) + object.deprecatedApiNames[j] = message.deprecatedApiNames[j]; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.analytics.data.v1beta.MetricType[message.type] : message.type; + if (message.expression != null && message.hasOwnProperty("expression")) + object.expression = message.expression; + if (message.customDefinition != null && message.hasOwnProperty("customDefinition")) + object.customDefinition = message.customDefinition; + if (message.blockedReasons && message.blockedReasons.length) { + object.blockedReasons = []; + for (var j = 0; j < message.blockedReasons.length; ++j) + object.blockedReasons[j] = options.enums === String ? $root.google.analytics.data.v1beta.MetricMetadata.BlockedReason[message.blockedReasons[j]] : message.blockedReasons[j]; + } + if (message.category != null && message.hasOwnProperty("category")) + object.category = message.category; + return object; + }; - /** - * Constructs a new OneofOptions. - * @memberof google.protobuf - * @classdesc Represents an OneofOptions. - * @implements IOneofOptions - * @constructor - * @param {google.protobuf.IOneofOptions=} [properties] Properties to set - */ - function OneofOptions(properties) { - this.uninterpretedOption = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Converts this MetricMetadata to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.MetricMetadata + * @instance + * @returns {Object.} JSON object + */ + MetricMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * OneofOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.OneofOptions - * @instance - */ - OneofOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * BlockedReason enum. + * @name google.analytics.data.v1beta.MetricMetadata.BlockedReason + * @enum {number} + * @property {number} BLOCKED_REASON_UNSPECIFIED=0 BLOCKED_REASON_UNSPECIFIED value + * @property {number} NO_REVENUE_METRICS=1 NO_REVENUE_METRICS value + * @property {number} NO_COST_METRICS=2 NO_COST_METRICS value + */ + MetricMetadata.BlockedReason = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "BLOCKED_REASON_UNSPECIFIED"] = 0; + values[valuesById[1] = "NO_REVENUE_METRICS"] = 1; + values[valuesById[2] = "NO_COST_METRICS"] = 2; + return values; + })(); - /** - * Creates a new OneofOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.OneofOptions - * @static - * @param {google.protobuf.IOneofOptions=} [properties] Properties to set - * @returns {google.protobuf.OneofOptions} OneofOptions instance - */ - OneofOptions.create = function create(properties) { - return new OneofOptions(properties); - }; + return MetricMetadata; + })(); - /** - * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.OneofOptions - * @static - * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OneofOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - return writer; - }; + v1beta.DimensionCompatibility = (function() { - /** - * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.OneofOptions - * @static - * @param {google.protobuf.IOneofOptions} message OneofOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - OneofOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Properties of a DimensionCompatibility. + * @memberof google.analytics.data.v1beta + * @interface IDimensionCompatibility + * @property {google.analytics.data.v1beta.IDimensionMetadata|null} [dimensionMetadata] DimensionCompatibility dimensionMetadata + * @property {google.analytics.data.v1beta.Compatibility|null} [compatibility] DimensionCompatibility compatibility + */ - /** - * Decodes an OneofOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.OneofOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.OneofOptions} OneofOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OneofOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.OneofOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Constructs a new DimensionCompatibility. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a DimensionCompatibility. + * @implements IDimensionCompatibility + * @constructor + * @param {google.analytics.data.v1beta.IDimensionCompatibility=} [properties] Properties to set + */ + function DimensionCompatibility(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return message; - }; - /** - * Decodes an OneofOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.OneofOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.OneofOptions} OneofOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - OneofOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * DimensionCompatibility dimensionMetadata. + * @member {google.analytics.data.v1beta.IDimensionMetadata|null|undefined} dimensionMetadata + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @instance + */ + DimensionCompatibility.prototype.dimensionMetadata = null; - /** - * Verifies an OneofOptions message. - * @function verify - * @memberof google.protobuf.OneofOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - OneofOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - return null; - }; + /** + * DimensionCompatibility compatibility. + * @member {google.analytics.data.v1beta.Compatibility|null|undefined} compatibility + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @instance + */ + DimensionCompatibility.prototype.compatibility = null; - /** - * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.OneofOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.OneofOptions} OneofOptions - */ - OneofOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.OneofOptions) - return object; - var message = new $root.google.protobuf.OneofOptions(); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - return message; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Creates a plain object from an OneofOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.OneofOptions - * @static - * @param {google.protobuf.OneofOptions} message OneofOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - OneofOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - return object; - }; + /** + * DimensionCompatibility _dimensionMetadata. + * @member {"dimensionMetadata"|undefined} _dimensionMetadata + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @instance + */ + Object.defineProperty(DimensionCompatibility.prototype, "_dimensionMetadata", { + get: $util.oneOfGetter($oneOfFields = ["dimensionMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Converts this OneofOptions to JSON. - * @function toJSON - * @memberof google.protobuf.OneofOptions - * @instance - * @returns {Object.} JSON object - */ - OneofOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * DimensionCompatibility _compatibility. + * @member {"compatibility"|undefined} _compatibility + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @instance + */ + Object.defineProperty(DimensionCompatibility.prototype, "_compatibility", { + get: $util.oneOfGetter($oneOfFields = ["compatibility"]), + set: $util.oneOfSetter($oneOfFields) + }); - return OneofOptions; - })(); + /** + * Creates a new DimensionCompatibility instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {google.analytics.data.v1beta.IDimensionCompatibility=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility instance + */ + DimensionCompatibility.create = function create(properties) { + return new DimensionCompatibility(properties); + }; - protobuf.EnumOptions = (function() { + /** + * Encodes the specified DimensionCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {google.analytics.data.v1beta.IDimensionCompatibility} message DimensionCompatibility message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionCompatibility.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dimensionMetadata != null && Object.hasOwnProperty.call(message, "dimensionMetadata")) + $root.google.analytics.data.v1beta.DimensionMetadata.encode(message.dimensionMetadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.compatibility != null && Object.hasOwnProperty.call(message, "compatibility")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.compatibility); + return writer; + }; - /** - * Properties of an EnumOptions. - * @memberof google.protobuf - * @interface IEnumOptions - * @property {boolean|null} [allowAlias] EnumOptions allowAlias - * @property {boolean|null} [deprecated] EnumOptions deprecated - * @property {Array.|null} [uninterpretedOption] EnumOptions uninterpretedOption - */ + /** + * Encodes the specified DimensionCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.DimensionCompatibility.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {google.analytics.data.v1beta.IDimensionCompatibility} message DimensionCompatibility message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DimensionCompatibility.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new EnumOptions. - * @memberof google.protobuf - * @classdesc Represents an EnumOptions. - * @implements IEnumOptions - * @constructor - * @param {google.protobuf.IEnumOptions=} [properties] Properties to set - */ - function EnumOptions(properties) { - this.uninterpretedOption = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Decodes a DimensionCompatibility message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionCompatibility.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.DimensionCompatibility(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.compatibility = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * EnumOptions allowAlias. - * @member {boolean} allowAlias - * @memberof google.protobuf.EnumOptions - * @instance - */ - EnumOptions.prototype.allowAlias = false; + /** + * Decodes a DimensionCompatibility message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DimensionCompatibility.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * EnumOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.EnumOptions - * @instance - */ - EnumOptions.prototype.deprecated = false; + /** + * Verifies a DimensionCompatibility message. + * @function verify + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DimensionCompatibility.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dimensionMetadata != null && message.hasOwnProperty("dimensionMetadata")) { + properties._dimensionMetadata = 1; + { + var error = $root.google.analytics.data.v1beta.DimensionMetadata.verify(message.dimensionMetadata); + if (error) + return "dimensionMetadata." + error; + } + } + if (message.compatibility != null && message.hasOwnProperty("compatibility")) { + properties._compatibility = 1; + switch (message.compatibility) { + default: + return "compatibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; - /** - * EnumOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.EnumOptions - * @instance - */ - EnumOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * Creates a DimensionCompatibility message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.DimensionCompatibility} DimensionCompatibility + */ + DimensionCompatibility.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.DimensionCompatibility) + return object; + var message = new $root.google.analytics.data.v1beta.DimensionCompatibility(); + if (object.dimensionMetadata != null) { + if (typeof object.dimensionMetadata !== "object") + throw TypeError(".google.analytics.data.v1beta.DimensionCompatibility.dimensionMetadata: object expected"); + message.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.fromObject(object.dimensionMetadata); + } + switch (object.compatibility) { + case "COMPATIBILITY_UNSPECIFIED": + case 0: + message.compatibility = 0; + break; + case "COMPATIBLE": + case 1: + message.compatibility = 1; + break; + case "INCOMPATIBLE": + case 2: + message.compatibility = 2; + break; + } + return message; + }; - /** - * Creates a new EnumOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.EnumOptions - * @static - * @param {google.protobuf.IEnumOptions=} [properties] Properties to set - * @returns {google.protobuf.EnumOptions} EnumOptions instance - */ - EnumOptions.create = function create(properties) { - return new EnumOptions(properties); - }; + /** + * Creates a plain object from a DimensionCompatibility message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @static + * @param {google.analytics.data.v1beta.DimensionCompatibility} message DimensionCompatibility + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DimensionCompatibility.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.dimensionMetadata != null && message.hasOwnProperty("dimensionMetadata")) { + object.dimensionMetadata = $root.google.analytics.data.v1beta.DimensionMetadata.toObject(message.dimensionMetadata, options); + if (options.oneofs) + object._dimensionMetadata = "dimensionMetadata"; + } + if (message.compatibility != null && message.hasOwnProperty("compatibility")) { + object.compatibility = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibility] : message.compatibility; + if (options.oneofs) + object._compatibility = "compatibility"; + } + return object; + }; - /** - * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.EnumOptions - * @static - * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.allowAlias != null && Object.hasOwnProperty.call(message, "allowAlias")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allowAlias); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deprecated); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - return writer; - }; + /** + * Converts this DimensionCompatibility to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.DimensionCompatibility + * @instance + * @returns {Object.} JSON object + */ + DimensionCompatibility.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.EnumOptions - * @static - * @param {google.protobuf.IEnumOptions} message EnumOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + return DimensionCompatibility; + })(); - /** - * Decodes an EnumOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.EnumOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.EnumOptions} EnumOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 2: - message.allowAlias = reader.bool(); - break; - case 3: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + v1beta.MetricCompatibility = (function() { - /** - * Decodes an EnumOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.EnumOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.EnumOptions} EnumOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a MetricCompatibility. + * @memberof google.analytics.data.v1beta + * @interface IMetricCompatibility + * @property {google.analytics.data.v1beta.IMetricMetadata|null} [metricMetadata] MetricCompatibility metricMetadata + * @property {google.analytics.data.v1beta.Compatibility|null} [compatibility] MetricCompatibility compatibility + */ - /** - * Verifies an EnumOptions message. - * @function verify - * @memberof google.protobuf.EnumOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - EnumOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) - if (typeof message.allowAlias !== "boolean") - return "allowAlias: boolean expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; + /** + * Constructs a new MetricCompatibility. + * @memberof google.analytics.data.v1beta + * @classdesc Represents a MetricCompatibility. + * @implements IMetricCompatibility + * @constructor + * @param {google.analytics.data.v1beta.IMetricCompatibility=} [properties] Properties to set + */ + function MetricCompatibility(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; } - } - return null; - }; - /** - * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.EnumOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.EnumOptions} EnumOptions - */ - EnumOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.EnumOptions) - return object; - var message = new $root.google.protobuf.EnumOptions(); - if (object.allowAlias != null) - message.allowAlias = Boolean(object.allowAlias); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - return message; - }; + /** + * MetricCompatibility metricMetadata. + * @member {google.analytics.data.v1beta.IMetricMetadata|null|undefined} metricMetadata + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @instance + */ + MetricCompatibility.prototype.metricMetadata = null; - /** - * Creates a plain object from an EnumOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.EnumOptions - * @static - * @param {google.protobuf.EnumOptions} message EnumOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - EnumOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (options.defaults) { - object.allowAlias = false; - object.deprecated = false; - } - if (message.allowAlias != null && message.hasOwnProperty("allowAlias")) - object.allowAlias = message.allowAlias; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - return object; - }; + /** + * MetricCompatibility compatibility. + * @member {google.analytics.data.v1beta.Compatibility|null|undefined} compatibility + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @instance + */ + MetricCompatibility.prototype.compatibility = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * MetricCompatibility _metricMetadata. + * @member {"metricMetadata"|undefined} _metricMetadata + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @instance + */ + Object.defineProperty(MetricCompatibility.prototype, "_metricMetadata", { + get: $util.oneOfGetter($oneOfFields = ["metricMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * MetricCompatibility _compatibility. + * @member {"compatibility"|undefined} _compatibility + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @instance + */ + Object.defineProperty(MetricCompatibility.prototype, "_compatibility", { + get: $util.oneOfGetter($oneOfFields = ["compatibility"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MetricCompatibility instance using the specified properties. + * @function create + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {google.analytics.data.v1beta.IMetricCompatibility=} [properties] Properties to set + * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility instance + */ + MetricCompatibility.create = function create(properties) { + return new MetricCompatibility(properties); + }; + + /** + * Encodes the specified MetricCompatibility message. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * @function encode + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {google.analytics.data.v1beta.IMetricCompatibility} message MetricCompatibility message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricCompatibility.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.metricMetadata != null && Object.hasOwnProperty.call(message, "metricMetadata")) + $root.google.analytics.data.v1beta.MetricMetadata.encode(message.metricMetadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.compatibility != null && Object.hasOwnProperty.call(message, "compatibility")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.compatibility); + return writer; + }; - /** - * Converts this EnumOptions to JSON. - * @function toJSON - * @memberof google.protobuf.EnumOptions - * @instance - * @returns {Object.} JSON object - */ - EnumOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Encodes the specified MetricCompatibility message, length delimited. Does not implicitly {@link google.analytics.data.v1beta.MetricCompatibility.verify|verify} messages. + * @function encodeDelimited + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {google.analytics.data.v1beta.IMetricCompatibility} message MetricCompatibility message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MetricCompatibility.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - return EnumOptions; - })(); + /** + * Decodes a MetricCompatibility message from the specified reader or buffer. + * @function decode + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricCompatibility.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.analytics.data.v1beta.MetricCompatibility(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.decode(reader, reader.uint32()); + break; + case 2: + message.compatibility = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - protobuf.EnumValueOptions = (function() { + /** + * Decodes a MetricCompatibility message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MetricCompatibility.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Properties of an EnumValueOptions. - * @memberof google.protobuf - * @interface IEnumValueOptions - * @property {boolean|null} [deprecated] EnumValueOptions deprecated - * @property {Array.|null} [uninterpretedOption] EnumValueOptions uninterpretedOption - */ + /** + * Verifies a MetricCompatibility message. + * @function verify + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MetricCompatibility.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.metricMetadata != null && message.hasOwnProperty("metricMetadata")) { + properties._metricMetadata = 1; + { + var error = $root.google.analytics.data.v1beta.MetricMetadata.verify(message.metricMetadata); + if (error) + return "metricMetadata." + error; + } + } + if (message.compatibility != null && message.hasOwnProperty("compatibility")) { + properties._compatibility = 1; + switch (message.compatibility) { + default: + return "compatibility: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; - /** - * Constructs a new EnumValueOptions. - * @memberof google.protobuf - * @classdesc Represents an EnumValueOptions. - * @implements IEnumValueOptions - * @constructor - * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set - */ - function EnumValueOptions(properties) { - this.uninterpretedOption = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Creates a MetricCompatibility message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {Object.} object Plain object + * @returns {google.analytics.data.v1beta.MetricCompatibility} MetricCompatibility + */ + MetricCompatibility.fromObject = function fromObject(object) { + if (object instanceof $root.google.analytics.data.v1beta.MetricCompatibility) + return object; + var message = new $root.google.analytics.data.v1beta.MetricCompatibility(); + if (object.metricMetadata != null) { + if (typeof object.metricMetadata !== "object") + throw TypeError(".google.analytics.data.v1beta.MetricCompatibility.metricMetadata: object expected"); + message.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.fromObject(object.metricMetadata); + } + switch (object.compatibility) { + case "COMPATIBILITY_UNSPECIFIED": + case 0: + message.compatibility = 0; + break; + case "COMPATIBLE": + case 1: + message.compatibility = 1; + break; + case "INCOMPATIBLE": + case 2: + message.compatibility = 2; + break; + } + return message; + }; - /** - * EnumValueOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.EnumValueOptions - * @instance - */ - EnumValueOptions.prototype.deprecated = false; + /** + * Creates a plain object from a MetricCompatibility message. Also converts values to other types if specified. + * @function toObject + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @static + * @param {google.analytics.data.v1beta.MetricCompatibility} message MetricCompatibility + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MetricCompatibility.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.metricMetadata != null && message.hasOwnProperty("metricMetadata")) { + object.metricMetadata = $root.google.analytics.data.v1beta.MetricMetadata.toObject(message.metricMetadata, options); + if (options.oneofs) + object._metricMetadata = "metricMetadata"; + } + if (message.compatibility != null && message.hasOwnProperty("compatibility")) { + object.compatibility = options.enums === String ? $root.google.analytics.data.v1beta.Compatibility[message.compatibility] : message.compatibility; + if (options.oneofs) + object._compatibility = "compatibility"; + } + return object; + }; - /** - * EnumValueOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.EnumValueOptions - * @instance - */ - EnumValueOptions.prototype.uninterpretedOption = $util.emptyArray; + /** + * Converts this MetricCompatibility to JSON. + * @function toJSON + * @memberof google.analytics.data.v1beta.MetricCompatibility + * @instance + * @returns {Object.} JSON object + */ + MetricCompatibility.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a new EnumValueOptions instance using the specified properties. - * @function create - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {google.protobuf.IEnumValueOptions=} [properties] Properties to set - * @returns {google.protobuf.EnumValueOptions} EnumValueOptions instance - */ - EnumValueOptions.create = function create(properties) { - return new EnumValueOptions(properties); - }; + return MetricCompatibility; + })(); - /** - * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. - * @function encode - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumValueOptions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.deprecated); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - return writer; - }; + /** + * MetricAggregation enum. + * @name google.analytics.data.v1beta.MetricAggregation + * @enum {number} + * @property {number} METRIC_AGGREGATION_UNSPECIFIED=0 METRIC_AGGREGATION_UNSPECIFIED value + * @property {number} TOTAL=1 TOTAL value + * @property {number} MINIMUM=5 MINIMUM value + * @property {number} MAXIMUM=6 MAXIMUM value + * @property {number} COUNT=4 COUNT value + */ + v1beta.MetricAggregation = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "METRIC_AGGREGATION_UNSPECIFIED"] = 0; + values[valuesById[1] = "TOTAL"] = 1; + values[valuesById[5] = "MINIMUM"] = 5; + values[valuesById[6] = "MAXIMUM"] = 6; + values[valuesById[4] = "COUNT"] = 4; + return values; + })(); - /** - * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {google.protobuf.IEnumValueOptions} message EnumValueOptions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - EnumValueOptions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * MetricType enum. + * @name google.analytics.data.v1beta.MetricType + * @enum {number} + * @property {number} METRIC_TYPE_UNSPECIFIED=0 METRIC_TYPE_UNSPECIFIED value + * @property {number} TYPE_INTEGER=1 TYPE_INTEGER value + * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value + * @property {number} TYPE_SECONDS=4 TYPE_SECONDS value + * @property {number} TYPE_MILLISECONDS=5 TYPE_MILLISECONDS value + * @property {number} TYPE_MINUTES=6 TYPE_MINUTES value + * @property {number} TYPE_HOURS=7 TYPE_HOURS value + * @property {number} TYPE_STANDARD=8 TYPE_STANDARD value + * @property {number} TYPE_CURRENCY=9 TYPE_CURRENCY value + * @property {number} TYPE_FEET=10 TYPE_FEET value + * @property {number} TYPE_MILES=11 TYPE_MILES value + * @property {number} TYPE_METERS=12 TYPE_METERS value + * @property {number} TYPE_KILOMETERS=13 TYPE_KILOMETERS value + */ + v1beta.MetricType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "METRIC_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "TYPE_INTEGER"] = 1; + values[valuesById[2] = "TYPE_FLOAT"] = 2; + values[valuesById[4] = "TYPE_SECONDS"] = 4; + values[valuesById[5] = "TYPE_MILLISECONDS"] = 5; + values[valuesById[6] = "TYPE_MINUTES"] = 6; + values[valuesById[7] = "TYPE_HOURS"] = 7; + values[valuesById[8] = "TYPE_STANDARD"] = 8; + values[valuesById[9] = "TYPE_CURRENCY"] = 9; + values[valuesById[10] = "TYPE_FEET"] = 10; + values[valuesById[11] = "TYPE_MILES"] = 11; + values[valuesById[12] = "TYPE_METERS"] = 12; + values[valuesById[13] = "TYPE_KILOMETERS"] = 13; + return values; + })(); - /** - * Decodes an EnumValueOptions message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.EnumValueOptions} EnumValueOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumValueOptions.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.EnumValueOptions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * RestrictedMetricType enum. + * @name google.analytics.data.v1beta.RestrictedMetricType + * @enum {number} + * @property {number} RESTRICTED_METRIC_TYPE_UNSPECIFIED=0 RESTRICTED_METRIC_TYPE_UNSPECIFIED value + * @property {number} COST_DATA=1 COST_DATA value + * @property {number} REVENUE_DATA=2 REVENUE_DATA value + */ + v1beta.RestrictedMetricType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "RESTRICTED_METRIC_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "COST_DATA"] = 1; + values[valuesById[2] = "REVENUE_DATA"] = 2; + return values; + })(); - /** - * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.EnumValueOptions} EnumValueOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - EnumValueOptions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Compatibility enum. + * @name google.analytics.data.v1beta.Compatibility + * @enum {number} + * @property {number} COMPATIBILITY_UNSPECIFIED=0 COMPATIBILITY_UNSPECIFIED value + * @property {number} COMPATIBLE=1 COMPATIBLE value + * @property {number} INCOMPATIBLE=2 INCOMPATIBLE value + */ + v1beta.Compatibility = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "COMPATIBILITY_UNSPECIFIED"] = 0; + values[valuesById[1] = "COMPATIBLE"] = 1; + values[valuesById[2] = "INCOMPATIBLE"] = 2; + return values; + })(); - /** - * Verifies an EnumValueOptions message. - * @function verify - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - EnumValueOptions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); - if (error) - return "uninterpretedOption." + error; - } - } - return null; - }; + return v1beta; + })(); - /** - * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.EnumValueOptions} EnumValueOptions - */ - EnumValueOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.EnumValueOptions) - return object; - var message = new $root.google.protobuf.EnumValueOptions(); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); - } - } - return message; - }; + return data; + })(); - /** - * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.EnumValueOptions - * @static - * @param {google.protobuf.EnumValueOptions} message EnumValueOptions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - EnumValueOptions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (options.defaults) - object.deprecated = false; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); - } - return object; - }; + return analytics; + })(); - /** - * Converts this EnumValueOptions to JSON. - * @function toJSON - * @memberof google.protobuf.EnumValueOptions - * @instance - * @returns {Object.} JSON object - */ - EnumValueOptions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + google.api = (function() { - return EnumValueOptions; - })(); + /** + * Namespace api. + * @memberof google + * @namespace + */ + var api = {}; - protobuf.ServiceOptions = (function() { + api.Http = (function() { /** - * Properties of a ServiceOptions. - * @memberof google.protobuf - * @interface IServiceOptions - * @property {boolean|null} [deprecated] ServiceOptions deprecated - * @property {Array.|null} [uninterpretedOption] ServiceOptions uninterpretedOption - * @property {string|null} [".google.api.defaultHost"] ServiceOptions .google.api.defaultHost - * @property {string|null} [".google.api.oauthScopes"] ServiceOptions .google.api.oauthScopes + * Properties of a Http. + * @memberof google.api + * @interface IHttp + * @property {Array.|null} [rules] Http rules + * @property {boolean|null} [fullyDecodeReservedExpansion] Http fullyDecodeReservedExpansion */ /** - * Constructs a new ServiceOptions. - * @memberof google.protobuf - * @classdesc Represents a ServiceOptions. - * @implements IServiceOptions + * Constructs a new Http. + * @memberof google.api + * @classdesc Represents a Http. + * @implements IHttp * @constructor - * @param {google.protobuf.IServiceOptions=} [properties] Properties to set + * @param {google.api.IHttp=} [properties] Properties to set */ - function ServiceOptions(properties) { - this.uninterpretedOption = []; + function Http(properties) { + this.rules = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38139,117 +40885,91 @@ } /** - * ServiceOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.ServiceOptions - * @instance - */ - ServiceOptions.prototype.deprecated = false; - - /** - * ServiceOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.ServiceOptions - * @instance - */ - ServiceOptions.prototype.uninterpretedOption = $util.emptyArray; - - /** - * ServiceOptions .google.api.defaultHost. - * @member {string} .google.api.defaultHost - * @memberof google.protobuf.ServiceOptions + * Http rules. + * @member {Array.} rules + * @memberof google.api.Http * @instance */ - ServiceOptions.prototype[".google.api.defaultHost"] = ""; + Http.prototype.rules = $util.emptyArray; /** - * ServiceOptions .google.api.oauthScopes. - * @member {string} .google.api.oauthScopes - * @memberof google.protobuf.ServiceOptions + * Http fullyDecodeReservedExpansion. + * @member {boolean} fullyDecodeReservedExpansion + * @memberof google.api.Http * @instance */ - ServiceOptions.prototype[".google.api.oauthScopes"] = ""; + Http.prototype.fullyDecodeReservedExpansion = false; /** - * Creates a new ServiceOptions instance using the specified properties. + * Creates a new Http instance using the specified properties. * @function create - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static - * @param {google.protobuf.IServiceOptions=} [properties] Properties to set - * @returns {google.protobuf.ServiceOptions} ServiceOptions instance + * @param {google.api.IHttp=} [properties] Properties to set + * @returns {google.api.Http} Http instance */ - ServiceOptions.create = function create(properties) { - return new ServiceOptions(properties); + Http.create = function create(properties) { + return new Http(properties); }; /** - * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. * @function encode - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static - * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {google.api.IHttp} message Http message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ServiceOptions.encode = function encode(message, writer) { + Http.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.defaultHost"] != null && Object.hasOwnProperty.call(message, ".google.api.defaultHost")) - writer.uint32(/* id 1049, wireType 2 =*/8394).string(message[".google.api.defaultHost"]); - if (message[".google.api.oauthScopes"] != null && Object.hasOwnProperty.call(message, ".google.api.oauthScopes")) - writer.uint32(/* id 1050, wireType 2 =*/8402).string(message[".google.api.oauthScopes"]); + if (message.rules != null && message.rules.length) + for (var i = 0; i < message.rules.length; ++i) + $root.google.api.HttpRule.encode(message.rules[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.fullyDecodeReservedExpansion != null && Object.hasOwnProperty.call(message, "fullyDecodeReservedExpansion")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.fullyDecodeReservedExpansion); return writer; }; /** - * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages. + * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. * @function encodeDelimited - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static - * @param {google.protobuf.IServiceOptions} message ServiceOptions message or plain object to encode + * @param {google.api.IHttp} message Http message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ServiceOptions.encodeDelimited = function encodeDelimited(message, writer) { + Http.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ServiceOptions message from the specified reader or buffer. + * Decodes a Http message from the specified reader or buffer. * @function decode - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @returns {google.api.Http} Http * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceOptions.decode = function decode(reader, length) { + Http.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.ServiceOptions(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.Http(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); - break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); - break; - case 1049: - message[".google.api.defaultHost"] = reader.string(); + case 1: + if (!(message.rules && message.rules.length)) + message.rules = []; + message.rules.push($root.google.api.HttpRule.decode(reader, reader.uint32())); break; - case 1050: - message[".google.api.oauthScopes"] = reader.string(); + case 2: + message.fullyDecodeReservedExpansion = reader.bool(); break; default: reader.skipType(tag & 7); @@ -38260,156 +40980,143 @@ }; /** - * Decodes a ServiceOptions message from the specified reader or buffer, length delimited. + * Decodes a Http message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @returns {google.api.Http} Http * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ServiceOptions.decodeDelimited = function decodeDelimited(reader) { + Http.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ServiceOptions message. + * Verifies a Http message. * @function verify - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ServiceOptions.verify = function verify(message) { + Http.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + if (message.rules != null && message.hasOwnProperty("rules")) { + if (!Array.isArray(message.rules)) + return "rules: array expected"; + for (var i = 0; i < message.rules.length; ++i) { + var error = $root.google.api.HttpRule.verify(message.rules[i]); if (error) - return "uninterpretedOption." + error; + return "rules." + error; } } - if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) - if (!$util.isString(message[".google.api.defaultHost"])) - return ".google.api.defaultHost: string expected"; - if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) - if (!$util.isString(message[".google.api.oauthScopes"])) - return ".google.api.oauthScopes: string expected"; + if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + if (typeof message.fullyDecodeReservedExpansion !== "boolean") + return "fullyDecodeReservedExpansion: boolean expected"; return null; }; /** - * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types. + * Creates a Http message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static * @param {Object.} object Plain object - * @returns {google.protobuf.ServiceOptions} ServiceOptions + * @returns {google.api.Http} Http */ - ServiceOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.ServiceOptions) + Http.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.Http) return object; - var message = new $root.google.protobuf.ServiceOptions(); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + var message = new $root.google.api.Http(); + if (object.rules) { + if (!Array.isArray(object.rules)) + throw TypeError(".google.api.Http.rules: array expected"); + message.rules = []; + for (var i = 0; i < object.rules.length; ++i) { + if (typeof object.rules[i] !== "object") + throw TypeError(".google.api.Http.rules: object expected"); + message.rules[i] = $root.google.api.HttpRule.fromObject(object.rules[i]); } } - if (object[".google.api.defaultHost"] != null) - message[".google.api.defaultHost"] = String(object[".google.api.defaultHost"]); - if (object[".google.api.oauthScopes"] != null) - message[".google.api.oauthScopes"] = String(object[".google.api.oauthScopes"]); + if (object.fullyDecodeReservedExpansion != null) + message.fullyDecodeReservedExpansion = Boolean(object.fullyDecodeReservedExpansion); return message; }; /** - * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified. + * Creates a plain object from a Http message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @static - * @param {google.protobuf.ServiceOptions} message ServiceOptions + * @param {google.api.Http} message Http * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ServiceOptions.toObject = function toObject(message, options) { + Http.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.uninterpretedOption = []; - if (options.defaults) { - object.deprecated = false; - object[".google.api.defaultHost"] = ""; - object[".google.api.oauthScopes"] = ""; - } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + object.rules = []; + if (options.defaults) + object.fullyDecodeReservedExpansion = false; + if (message.rules && message.rules.length) { + object.rules = []; + for (var j = 0; j < message.rules.length; ++j) + object.rules[j] = $root.google.api.HttpRule.toObject(message.rules[j], options); } - if (message[".google.api.defaultHost"] != null && message.hasOwnProperty(".google.api.defaultHost")) - object[".google.api.defaultHost"] = message[".google.api.defaultHost"]; - if (message[".google.api.oauthScopes"] != null && message.hasOwnProperty(".google.api.oauthScopes")) - object[".google.api.oauthScopes"] = message[".google.api.oauthScopes"]; + if (message.fullyDecodeReservedExpansion != null && message.hasOwnProperty("fullyDecodeReservedExpansion")) + object.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion; return object; }; /** - * Converts this ServiceOptions to JSON. + * Converts this Http to JSON. * @function toJSON - * @memberof google.protobuf.ServiceOptions + * @memberof google.api.Http * @instance * @returns {Object.} JSON object */ - ServiceOptions.prototype.toJSON = function toJSON() { + Http.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ServiceOptions; + return Http; })(); - protobuf.MethodOptions = (function() { + api.HttpRule = (function() { /** - * Properties of a MethodOptions. - * @memberof google.protobuf - * @interface IMethodOptions - * @property {boolean|null} [deprecated] MethodOptions deprecated - * @property {google.protobuf.MethodOptions.IdempotencyLevel|null} [idempotencyLevel] MethodOptions idempotencyLevel - * @property {Array.|null} [uninterpretedOption] MethodOptions uninterpretedOption - * @property {google.api.IHttpRule|null} [".google.api.http"] MethodOptions .google.api.http - * @property {Array.|null} [".google.api.methodSignature"] MethodOptions .google.api.methodSignature + * Properties of a HttpRule. + * @memberof google.api + * @interface IHttpRule + * @property {string|null} [selector] HttpRule selector + * @property {string|null} [get] HttpRule get + * @property {string|null} [put] HttpRule put + * @property {string|null} [post] HttpRule post + * @property {string|null} ["delete"] HttpRule delete + * @property {string|null} [patch] HttpRule patch + * @property {google.api.ICustomHttpPattern|null} [custom] HttpRule custom + * @property {string|null} [body] HttpRule body + * @property {string|null} [responseBody] HttpRule responseBody + * @property {Array.|null} [additionalBindings] HttpRule additionalBindings */ /** - * Constructs a new MethodOptions. - * @memberof google.protobuf - * @classdesc Represents a MethodOptions. - * @implements IMethodOptions + * Constructs a new HttpRule. + * @memberof google.api + * @classdesc Represents a HttpRule. + * @implements IHttpRule * @constructor - * @param {google.protobuf.IMethodOptions=} [properties] Properties to set + * @param {google.api.IHttpRule=} [properties] Properties to set */ - function MethodOptions(properties) { - this.uninterpretedOption = []; - this[".google.api.methodSignature"] = []; + function HttpRule(properties) { + this.additionalBindings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38417,133 +41124,209 @@ } /** - * MethodOptions deprecated. - * @member {boolean} deprecated - * @memberof google.protobuf.MethodOptions + * HttpRule selector. + * @member {string} selector + * @memberof google.api.HttpRule * @instance */ - MethodOptions.prototype.deprecated = false; + HttpRule.prototype.selector = ""; /** - * MethodOptions idempotencyLevel. - * @member {google.protobuf.MethodOptions.IdempotencyLevel} idempotencyLevel - * @memberof google.protobuf.MethodOptions + * HttpRule get. + * @member {string|null|undefined} get + * @memberof google.api.HttpRule * @instance */ - MethodOptions.prototype.idempotencyLevel = 0; + HttpRule.prototype.get = null; /** - * MethodOptions uninterpretedOption. - * @member {Array.} uninterpretedOption - * @memberof google.protobuf.MethodOptions + * HttpRule put. + * @member {string|null|undefined} put + * @memberof google.api.HttpRule * @instance */ - MethodOptions.prototype.uninterpretedOption = $util.emptyArray; + HttpRule.prototype.put = null; /** - * MethodOptions .google.api.http. - * @member {google.api.IHttpRule|null|undefined} .google.api.http - * @memberof google.protobuf.MethodOptions + * HttpRule post. + * @member {string|null|undefined} post + * @memberof google.api.HttpRule * @instance */ - MethodOptions.prototype[".google.api.http"] = null; + HttpRule.prototype.post = null; /** - * MethodOptions .google.api.methodSignature. - * @member {Array.} .google.api.methodSignature - * @memberof google.protobuf.MethodOptions + * HttpRule delete. + * @member {string|null|undefined} delete + * @memberof google.api.HttpRule * @instance */ - MethodOptions.prototype[".google.api.methodSignature"] = $util.emptyArray; + HttpRule.prototype["delete"] = null; /** - * Creates a new MethodOptions instance using the specified properties. + * HttpRule patch. + * @member {string|null|undefined} patch + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.patch = null; + + /** + * HttpRule custom. + * @member {google.api.ICustomHttpPattern|null|undefined} custom + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.custom = null; + + /** + * HttpRule body. + * @member {string} body + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.body = ""; + + /** + * HttpRule responseBody. + * @member {string} responseBody + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.responseBody = ""; + + /** + * HttpRule additionalBindings. + * @member {Array.} additionalBindings + * @memberof google.api.HttpRule + * @instance + */ + HttpRule.prototype.additionalBindings = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * HttpRule pattern. + * @member {"get"|"put"|"post"|"delete"|"patch"|"custom"|undefined} pattern + * @memberof google.api.HttpRule + * @instance + */ + Object.defineProperty(HttpRule.prototype, "pattern", { + get: $util.oneOfGetter($oneOfFields = ["get", "put", "post", "delete", "patch", "custom"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new HttpRule instance using the specified properties. * @function create - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static - * @param {google.protobuf.IMethodOptions=} [properties] Properties to set - * @returns {google.protobuf.MethodOptions} MethodOptions instance + * @param {google.api.IHttpRule=} [properties] Properties to set + * @returns {google.api.HttpRule} HttpRule instance */ - MethodOptions.create = function create(properties) { - return new MethodOptions(properties); + HttpRule.create = function create(properties) { + return new HttpRule(properties); }; /** - * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. * @function encode - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static - * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {google.api.IHttpRule} message HttpRule message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MethodOptions.encode = function encode(message, writer) { + HttpRule.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.deprecated != null && Object.hasOwnProperty.call(message, "deprecated")) - writer.uint32(/* id 33, wireType 0 =*/264).bool(message.deprecated); - if (message.idempotencyLevel != null && Object.hasOwnProperty.call(message, "idempotencyLevel")) - writer.uint32(/* id 34, wireType 0 =*/272).int32(message.idempotencyLevel); - if (message.uninterpretedOption != null && message.uninterpretedOption.length) - for (var i = 0; i < message.uninterpretedOption.length; ++i) - $root.google.protobuf.UninterpretedOption.encode(message.uninterpretedOption[i], writer.uint32(/* id 999, wireType 2 =*/7994).fork()).ldelim(); - if (message[".google.api.methodSignature"] != null && message[".google.api.methodSignature"].length) - for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) - writer.uint32(/* id 1051, wireType 2 =*/8410).string(message[".google.api.methodSignature"][i]); - if (message[".google.api.http"] != null && Object.hasOwnProperty.call(message, ".google.api.http")) - $root.google.api.HttpRule.encode(message[".google.api.http"], writer.uint32(/* id 72295728, wireType 2 =*/578365826).fork()).ldelim(); + if (message.selector != null && Object.hasOwnProperty.call(message, "selector")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.selector); + if (message.get != null && Object.hasOwnProperty.call(message, "get")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.get); + if (message.put != null && Object.hasOwnProperty.call(message, "put")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.put); + if (message.post != null && Object.hasOwnProperty.call(message, "post")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.post); + if (message["delete"] != null && Object.hasOwnProperty.call(message, "delete")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message["delete"]); + if (message.patch != null && Object.hasOwnProperty.call(message, "patch")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.patch); + if (message.body != null && Object.hasOwnProperty.call(message, "body")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.body); + if (message.custom != null && Object.hasOwnProperty.call(message, "custom")) + $root.google.api.CustomHttpPattern.encode(message.custom, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.additionalBindings != null && message.additionalBindings.length) + for (var i = 0; i < message.additionalBindings.length; ++i) + $root.google.api.HttpRule.encode(message.additionalBindings[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + if (message.responseBody != null && Object.hasOwnProperty.call(message, "responseBody")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.responseBody); return writer; }; /** - * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages. + * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. * @function encodeDelimited - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static - * @param {google.protobuf.IMethodOptions} message MethodOptions message or plain object to encode + * @param {google.api.IHttpRule} message HttpRule message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MethodOptions.encodeDelimited = function encodeDelimited(message, writer) { + HttpRule.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a MethodOptions message from the specified reader or buffer. + * Decodes a HttpRule message from the specified reader or buffer. * @function decode - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.MethodOptions} MethodOptions + * @returns {google.api.HttpRule} HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodOptions.decode = function decode(reader, length) { + HttpRule.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.MethodOptions(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.HttpRule(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 33: - message.deprecated = reader.bool(); + case 1: + message.selector = reader.string(); break; - case 34: - message.idempotencyLevel = reader.int32(); + case 2: + message.get = reader.string(); break; - case 999: - if (!(message.uninterpretedOption && message.uninterpretedOption.length)) - message.uninterpretedOption = []; - message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32())); + case 3: + message.put = reader.string(); break; - case 72295728: - message[".google.api.http"] = $root.google.api.HttpRule.decode(reader, reader.uint32()); + case 4: + message.post = reader.string(); break; - case 1051: - if (!(message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length)) - message[".google.api.methodSignature"] = []; - message[".google.api.methodSignature"].push(reader.string()); + case 5: + message["delete"] = reader.string(); + break; + case 6: + message.patch = reader.string(); + break; + case 8: + message.custom = $root.google.api.CustomHttpPattern.decode(reader, reader.uint32()); + break; + case 7: + message.body = reader.string(); + break; + case 12: + message.responseBody = reader.string(); + break; + case 11: + if (!(message.additionalBindings && message.additionalBindings.length)) + message.additionalBindings = []; + message.additionalBindings.push($root.google.api.HttpRule.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -38554,217 +41337,240 @@ }; /** - * Decodes a MethodOptions message from the specified reader or buffer, length delimited. + * Decodes a HttpRule message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.MethodOptions} MethodOptions + * @returns {google.api.HttpRule} HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MethodOptions.decodeDelimited = function decodeDelimited(reader) { + HttpRule.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a MethodOptions message. + * Verifies a HttpRule message. * @function verify - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MethodOptions.verify = function verify(message) { + HttpRule.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - if (typeof message.deprecated !== "boolean") - return "deprecated: boolean expected"; - if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) - switch (message.idempotencyLevel) { - default: - return "idempotencyLevel: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.uninterpretedOption != null && message.hasOwnProperty("uninterpretedOption")) { - if (!Array.isArray(message.uninterpretedOption)) - return "uninterpretedOption: array expected"; - for (var i = 0; i < message.uninterpretedOption.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.verify(message.uninterpretedOption[i]); + var properties = {}; + if (message.selector != null && message.hasOwnProperty("selector")) + if (!$util.isString(message.selector)) + return "selector: string expected"; + if (message.get != null && message.hasOwnProperty("get")) { + properties.pattern = 1; + if (!$util.isString(message.get)) + return "get: string expected"; + } + if (message.put != null && message.hasOwnProperty("put")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.put)) + return "put: string expected"; + } + if (message.post != null && message.hasOwnProperty("post")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.post)) + return "post: string expected"; + } + if (message["delete"] != null && message.hasOwnProperty("delete")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message["delete"])) + return "delete: string expected"; + } + if (message.patch != null && message.hasOwnProperty("patch")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + if (!$util.isString(message.patch)) + return "patch: string expected"; + } + if (message.custom != null && message.hasOwnProperty("custom")) { + if (properties.pattern === 1) + return "pattern: multiple values"; + properties.pattern = 1; + { + var error = $root.google.api.CustomHttpPattern.verify(message.custom); if (error) - return "uninterpretedOption." + error; + return "custom." + error; } } - if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) { - var error = $root.google.api.HttpRule.verify(message[".google.api.http"]); - if (error) - return ".google.api.http." + error; - } - if (message[".google.api.methodSignature"] != null && message.hasOwnProperty(".google.api.methodSignature")) { - if (!Array.isArray(message[".google.api.methodSignature"])) - return ".google.api.methodSignature: array expected"; - for (var i = 0; i < message[".google.api.methodSignature"].length; ++i) - if (!$util.isString(message[".google.api.methodSignature"][i])) - return ".google.api.methodSignature: string[] expected"; + if (message.body != null && message.hasOwnProperty("body")) + if (!$util.isString(message.body)) + return "body: string expected"; + if (message.responseBody != null && message.hasOwnProperty("responseBody")) + if (!$util.isString(message.responseBody)) + return "responseBody: string expected"; + if (message.additionalBindings != null && message.hasOwnProperty("additionalBindings")) { + if (!Array.isArray(message.additionalBindings)) + return "additionalBindings: array expected"; + for (var i = 0; i < message.additionalBindings.length; ++i) { + var error = $root.google.api.HttpRule.verify(message.additionalBindings[i]); + if (error) + return "additionalBindings." + error; + } } return null; }; /** - * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types. + * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static * @param {Object.} object Plain object - * @returns {google.protobuf.MethodOptions} MethodOptions + * @returns {google.api.HttpRule} HttpRule */ - MethodOptions.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.MethodOptions) + HttpRule.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.HttpRule) return object; - var message = new $root.google.protobuf.MethodOptions(); - if (object.deprecated != null) - message.deprecated = Boolean(object.deprecated); - switch (object.idempotencyLevel) { - case "IDEMPOTENCY_UNKNOWN": - case 0: - message.idempotencyLevel = 0; - break; - case "NO_SIDE_EFFECTS": - case 1: - message.idempotencyLevel = 1; - break; - case "IDEMPOTENT": - case 2: - message.idempotencyLevel = 2; - break; + var message = new $root.google.api.HttpRule(); + if (object.selector != null) + message.selector = String(object.selector); + if (object.get != null) + message.get = String(object.get); + if (object.put != null) + message.put = String(object.put); + if (object.post != null) + message.post = String(object.post); + if (object["delete"] != null) + message["delete"] = String(object["delete"]); + if (object.patch != null) + message.patch = String(object.patch); + if (object.custom != null) { + if (typeof object.custom !== "object") + throw TypeError(".google.api.HttpRule.custom: object expected"); + message.custom = $root.google.api.CustomHttpPattern.fromObject(object.custom); } - if (object.uninterpretedOption) { - if (!Array.isArray(object.uninterpretedOption)) - throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected"); - message.uninterpretedOption = []; - for (var i = 0; i < object.uninterpretedOption.length; ++i) { - if (typeof object.uninterpretedOption[i] !== "object") - throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: object expected"); - message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]); + if (object.body != null) + message.body = String(object.body); + if (object.responseBody != null) + message.responseBody = String(object.responseBody); + if (object.additionalBindings) { + if (!Array.isArray(object.additionalBindings)) + throw TypeError(".google.api.HttpRule.additionalBindings: array expected"); + message.additionalBindings = []; + for (var i = 0; i < object.additionalBindings.length; ++i) { + if (typeof object.additionalBindings[i] !== "object") + throw TypeError(".google.api.HttpRule.additionalBindings: object expected"); + message.additionalBindings[i] = $root.google.api.HttpRule.fromObject(object.additionalBindings[i]); } } - if (object[".google.api.http"] != null) { - if (typeof object[".google.api.http"] !== "object") - throw TypeError(".google.protobuf.MethodOptions..google.api.http: object expected"); - message[".google.api.http"] = $root.google.api.HttpRule.fromObject(object[".google.api.http"]); - } - if (object[".google.api.methodSignature"]) { - if (!Array.isArray(object[".google.api.methodSignature"])) - throw TypeError(".google.protobuf.MethodOptions..google.api.methodSignature: array expected"); - message[".google.api.methodSignature"] = []; - for (var i = 0; i < object[".google.api.methodSignature"].length; ++i) - message[".google.api.methodSignature"][i] = String(object[".google.api.methodSignature"][i]); - } return message; }; /** - * Creates a plain object from a MethodOptions message. Also converts values to other types if specified. + * Creates a plain object from a HttpRule message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @static - * @param {google.protobuf.MethodOptions} message MethodOptions + * @param {google.api.HttpRule} message HttpRule * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - MethodOptions.toObject = function toObject(message, options) { + HttpRule.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.uninterpretedOption = []; - object[".google.api.methodSignature"] = []; - } + if (options.arrays || options.defaults) + object.additionalBindings = []; if (options.defaults) { - object.deprecated = false; - object.idempotencyLevel = options.enums === String ? "IDEMPOTENCY_UNKNOWN" : 0; - object[".google.api.http"] = null; + object.selector = ""; + object.body = ""; + object.responseBody = ""; } - if (message.deprecated != null && message.hasOwnProperty("deprecated")) - object.deprecated = message.deprecated; - if (message.idempotencyLevel != null && message.hasOwnProperty("idempotencyLevel")) - object.idempotencyLevel = options.enums === String ? $root.google.protobuf.MethodOptions.IdempotencyLevel[message.idempotencyLevel] : message.idempotencyLevel; - if (message.uninterpretedOption && message.uninterpretedOption.length) { - object.uninterpretedOption = []; - for (var j = 0; j < message.uninterpretedOption.length; ++j) - object.uninterpretedOption[j] = $root.google.protobuf.UninterpretedOption.toObject(message.uninterpretedOption[j], options); + if (message.selector != null && message.hasOwnProperty("selector")) + object.selector = message.selector; + if (message.get != null && message.hasOwnProperty("get")) { + object.get = message.get; + if (options.oneofs) + object.pattern = "get"; } - if (message[".google.api.methodSignature"] && message[".google.api.methodSignature"].length) { - object[".google.api.methodSignature"] = []; - for (var j = 0; j < message[".google.api.methodSignature"].length; ++j) - object[".google.api.methodSignature"][j] = message[".google.api.methodSignature"][j]; + if (message.put != null && message.hasOwnProperty("put")) { + object.put = message.put; + if (options.oneofs) + object.pattern = "put"; } - if (message[".google.api.http"] != null && message.hasOwnProperty(".google.api.http")) - object[".google.api.http"] = $root.google.api.HttpRule.toObject(message[".google.api.http"], options); + if (message.post != null && message.hasOwnProperty("post")) { + object.post = message.post; + if (options.oneofs) + object.pattern = "post"; + } + if (message["delete"] != null && message.hasOwnProperty("delete")) { + object["delete"] = message["delete"]; + if (options.oneofs) + object.pattern = "delete"; + } + if (message.patch != null && message.hasOwnProperty("patch")) { + object.patch = message.patch; + if (options.oneofs) + object.pattern = "patch"; + } + if (message.body != null && message.hasOwnProperty("body")) + object.body = message.body; + if (message.custom != null && message.hasOwnProperty("custom")) { + object.custom = $root.google.api.CustomHttpPattern.toObject(message.custom, options); + if (options.oneofs) + object.pattern = "custom"; + } + if (message.additionalBindings && message.additionalBindings.length) { + object.additionalBindings = []; + for (var j = 0; j < message.additionalBindings.length; ++j) + object.additionalBindings[j] = $root.google.api.HttpRule.toObject(message.additionalBindings[j], options); + } + if (message.responseBody != null && message.hasOwnProperty("responseBody")) + object.responseBody = message.responseBody; return object; }; /** - * Converts this MethodOptions to JSON. + * Converts this HttpRule to JSON. * @function toJSON - * @memberof google.protobuf.MethodOptions + * @memberof google.api.HttpRule * @instance * @returns {Object.} JSON object */ - MethodOptions.prototype.toJSON = function toJSON() { + HttpRule.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * IdempotencyLevel enum. - * @name google.protobuf.MethodOptions.IdempotencyLevel - * @enum {number} - * @property {number} IDEMPOTENCY_UNKNOWN=0 IDEMPOTENCY_UNKNOWN value - * @property {number} NO_SIDE_EFFECTS=1 NO_SIDE_EFFECTS value - * @property {number} IDEMPOTENT=2 IDEMPOTENT value - */ - MethodOptions.IdempotencyLevel = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "IDEMPOTENCY_UNKNOWN"] = 0; - values[valuesById[1] = "NO_SIDE_EFFECTS"] = 1; - values[valuesById[2] = "IDEMPOTENT"] = 2; - return values; - })(); - - return MethodOptions; + return HttpRule; })(); - protobuf.UninterpretedOption = (function() { + api.CustomHttpPattern = (function() { /** - * Properties of an UninterpretedOption. - * @memberof google.protobuf - * @interface IUninterpretedOption - * @property {Array.|null} [name] UninterpretedOption name - * @property {string|null} [identifierValue] UninterpretedOption identifierValue - * @property {number|Long|null} [positiveIntValue] UninterpretedOption positiveIntValue - * @property {number|Long|null} [negativeIntValue] UninterpretedOption negativeIntValue - * @property {number|null} [doubleValue] UninterpretedOption doubleValue - * @property {Uint8Array|null} [stringValue] UninterpretedOption stringValue - * @property {string|null} [aggregateValue] UninterpretedOption aggregateValue + * Properties of a CustomHttpPattern. + * @memberof google.api + * @interface ICustomHttpPattern + * @property {string|null} [kind] CustomHttpPattern kind + * @property {string|null} [path] CustomHttpPattern path */ /** - * Constructs a new UninterpretedOption. - * @memberof google.protobuf - * @classdesc Represents an UninterpretedOption. - * @implements IUninterpretedOption + * Constructs a new CustomHttpPattern. + * @memberof google.api + * @classdesc Represents a CustomHttpPattern. + * @implements ICustomHttpPattern * @constructor - * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set + * @param {google.api.ICustomHttpPattern=} [properties] Properties to set */ - function UninterpretedOption(properties) { - this.name = []; + function CustomHttpPattern(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38772,156 +41578,88 @@ } /** - * UninterpretedOption name. - * @member {Array.} name - * @memberof google.protobuf.UninterpretedOption - * @instance - */ - UninterpretedOption.prototype.name = $util.emptyArray; - - /** - * UninterpretedOption identifierValue. - * @member {string} identifierValue - * @memberof google.protobuf.UninterpretedOption - * @instance - */ - UninterpretedOption.prototype.identifierValue = ""; - - /** - * UninterpretedOption positiveIntValue. - * @member {number|Long} positiveIntValue - * @memberof google.protobuf.UninterpretedOption - * @instance - */ - UninterpretedOption.prototype.positiveIntValue = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - - /** - * UninterpretedOption negativeIntValue. - * @member {number|Long} negativeIntValue - * @memberof google.protobuf.UninterpretedOption - * @instance - */ - UninterpretedOption.prototype.negativeIntValue = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * UninterpretedOption doubleValue. - * @member {number} doubleValue - * @memberof google.protobuf.UninterpretedOption - * @instance - */ - UninterpretedOption.prototype.doubleValue = 0; - - /** - * UninterpretedOption stringValue. - * @member {Uint8Array} stringValue - * @memberof google.protobuf.UninterpretedOption + * CustomHttpPattern kind. + * @member {string} kind + * @memberof google.api.CustomHttpPattern * @instance */ - UninterpretedOption.prototype.stringValue = $util.newBuffer([]); + CustomHttpPattern.prototype.kind = ""; /** - * UninterpretedOption aggregateValue. - * @member {string} aggregateValue - * @memberof google.protobuf.UninterpretedOption + * CustomHttpPattern path. + * @member {string} path + * @memberof google.api.CustomHttpPattern * @instance */ - UninterpretedOption.prototype.aggregateValue = ""; + CustomHttpPattern.prototype.path = ""; /** - * Creates a new UninterpretedOption instance using the specified properties. + * Creates a new CustomHttpPattern instance using the specified properties. * @function create - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static - * @param {google.protobuf.IUninterpretedOption=} [properties] Properties to set - * @returns {google.protobuf.UninterpretedOption} UninterpretedOption instance + * @param {google.api.ICustomHttpPattern=} [properties] Properties to set + * @returns {google.api.CustomHttpPattern} CustomHttpPattern instance */ - UninterpretedOption.create = function create(properties) { - return new UninterpretedOption(properties); + CustomHttpPattern.create = function create(properties) { + return new CustomHttpPattern(properties); }; /** - * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. * @function encode - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static - * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UninterpretedOption.encode = function encode(message, writer) { + CustomHttpPattern.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && message.name.length) - for (var i = 0; i < message.name.length; ++i) - $root.google.protobuf.UninterpretedOption.NamePart.encode(message.name[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.identifierValue != null && Object.hasOwnProperty.call(message, "identifierValue")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.identifierValue); - if (message.positiveIntValue != null && Object.hasOwnProperty.call(message, "positiveIntValue")) - writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.positiveIntValue); - if (message.negativeIntValue != null && Object.hasOwnProperty.call(message, "negativeIntValue")) - writer.uint32(/* id 5, wireType 0 =*/40).int64(message.negativeIntValue); - if (message.doubleValue != null && Object.hasOwnProperty.call(message, "doubleValue")) - writer.uint32(/* id 6, wireType 1 =*/49).double(message.doubleValue); - if (message.stringValue != null && Object.hasOwnProperty.call(message, "stringValue")) - writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.stringValue); - if (message.aggregateValue != null && Object.hasOwnProperty.call(message, "aggregateValue")) - writer.uint32(/* id 8, wireType 2 =*/66).string(message.aggregateValue); + if (message.kind != null && Object.hasOwnProperty.call(message, "kind")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.kind); + if (message.path != null && Object.hasOwnProperty.call(message, "path")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.path); return writer; }; /** - * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages. + * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. * @function encodeDelimited - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static - * @param {google.protobuf.IUninterpretedOption} message UninterpretedOption message or plain object to encode + * @param {google.api.ICustomHttpPattern} message CustomHttpPattern message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - UninterpretedOption.encodeDelimited = function encodeDelimited(message, writer) { + CustomHttpPattern.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an UninterpretedOption message from the specified reader or buffer. + * Decodes a CustomHttpPattern message from the specified reader or buffer. * @function decode - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @returns {google.api.CustomHttpPattern} CustomHttpPattern * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UninterpretedOption.decode = function decode(reader, length) { + CustomHttpPattern.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.CustomHttpPattern(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: - if (!(message.name && message.name.length)) - message.name = []; - message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader, reader.uint32())); - break; - case 3: - message.identifierValue = reader.string(); - break; - case 4: - message.positiveIntValue = reader.uint64(); - break; - case 5: - message.negativeIntValue = reader.int64(); - break; - case 6: - message.doubleValue = reader.double(); - break; - case 7: - message.stringValue = reader.bytes(); + case 1: + message.kind = reader.string(); break; - case 8: - message.aggregateValue = reader.string(); + case 2: + message.path = reader.string(); break; default: reader.skipType(tag & 7); @@ -38932,422 +41670,150 @@ }; /** - * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited. + * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.UninterpretedOption} UninterpretedOption + * @returns {google.api.CustomHttpPattern} CustomHttpPattern * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UninterpretedOption.decodeDelimited = function decodeDelimited(reader) { + CustomHttpPattern.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an UninterpretedOption message. - * @function verify - * @memberof google.protobuf.UninterpretedOption - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - UninterpretedOption.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) { - if (!Array.isArray(message.name)) - return "name: array expected"; - for (var i = 0; i < message.name.length; ++i) { - var error = $root.google.protobuf.UninterpretedOption.NamePart.verify(message.name[i]); - if (error) - return "name." + error; - } - } - if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) - if (!$util.isString(message.identifierValue)) - return "identifierValue: string expected"; - if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) - if (!$util.isInteger(message.positiveIntValue) && !(message.positiveIntValue && $util.isInteger(message.positiveIntValue.low) && $util.isInteger(message.positiveIntValue.high))) - return "positiveIntValue: integer|Long expected"; - if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) - if (!$util.isInteger(message.negativeIntValue) && !(message.negativeIntValue && $util.isInteger(message.negativeIntValue.low) && $util.isInteger(message.negativeIntValue.high))) - return "negativeIntValue: integer|Long expected"; - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) - if (typeof message.doubleValue !== "number") - return "doubleValue: number expected"; - if (message.stringValue != null && message.hasOwnProperty("stringValue")) - if (!(message.stringValue && typeof message.stringValue.length === "number" || $util.isString(message.stringValue))) - return "stringValue: buffer expected"; - if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) - if (!$util.isString(message.aggregateValue)) - return "aggregateValue: string expected"; - return null; - }; - - /** - * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.UninterpretedOption - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.UninterpretedOption} UninterpretedOption - */ - UninterpretedOption.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.UninterpretedOption) - return object; - var message = new $root.google.protobuf.UninterpretedOption(); - if (object.name) { - if (!Array.isArray(object.name)) - throw TypeError(".google.protobuf.UninterpretedOption.name: array expected"); - message.name = []; - for (var i = 0; i < object.name.length; ++i) { - if (typeof object.name[i] !== "object") - throw TypeError(".google.protobuf.UninterpretedOption.name: object expected"); - message.name[i] = $root.google.protobuf.UninterpretedOption.NamePart.fromObject(object.name[i]); - } - } - if (object.identifierValue != null) - message.identifierValue = String(object.identifierValue); - if (object.positiveIntValue != null) - if ($util.Long) - (message.positiveIntValue = $util.Long.fromValue(object.positiveIntValue)).unsigned = true; - else if (typeof object.positiveIntValue === "string") - message.positiveIntValue = parseInt(object.positiveIntValue, 10); - else if (typeof object.positiveIntValue === "number") - message.positiveIntValue = object.positiveIntValue; - else if (typeof object.positiveIntValue === "object") - message.positiveIntValue = new $util.LongBits(object.positiveIntValue.low >>> 0, object.positiveIntValue.high >>> 0).toNumber(true); - if (object.negativeIntValue != null) - if ($util.Long) - (message.negativeIntValue = $util.Long.fromValue(object.negativeIntValue)).unsigned = false; - else if (typeof object.negativeIntValue === "string") - message.negativeIntValue = parseInt(object.negativeIntValue, 10); - else if (typeof object.negativeIntValue === "number") - message.negativeIntValue = object.negativeIntValue; - else if (typeof object.negativeIntValue === "object") - message.negativeIntValue = new $util.LongBits(object.negativeIntValue.low >>> 0, object.negativeIntValue.high >>> 0).toNumber(); - if (object.doubleValue != null) - message.doubleValue = Number(object.doubleValue); - if (object.stringValue != null) - if (typeof object.stringValue === "string") - $util.base64.decode(object.stringValue, message.stringValue = $util.newBuffer($util.base64.length(object.stringValue)), 0); - else if (object.stringValue.length) - message.stringValue = object.stringValue; - if (object.aggregateValue != null) - message.aggregateValue = String(object.aggregateValue); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CustomHttpPattern message. + * @function verify + * @memberof google.api.CustomHttpPattern + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CustomHttpPattern.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.kind != null && message.hasOwnProperty("kind")) + if (!$util.isString(message.kind)) + return "kind: string expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + return null; + }; + + /** + * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.CustomHttpPattern + * @static + * @param {Object.} object Plain object + * @returns {google.api.CustomHttpPattern} CustomHttpPattern + */ + CustomHttpPattern.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.CustomHttpPattern) + return object; + var message = new $root.google.api.CustomHttpPattern(); + if (object.kind != null) + message.kind = String(object.kind); + if (object.path != null) + message.path = String(object.path); return message; }; /** - * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified. + * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @static - * @param {google.protobuf.UninterpretedOption} message UninterpretedOption + * @param {google.api.CustomHttpPattern} message CustomHttpPattern * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - UninterpretedOption.toObject = function toObject(message, options) { + CustomHttpPattern.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.name = []; if (options.defaults) { - object.identifierValue = ""; - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.positiveIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.positiveIntValue = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.negativeIntValue = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.negativeIntValue = options.longs === String ? "0" : 0; - object.doubleValue = 0; - if (options.bytes === String) - object.stringValue = ""; - else { - object.stringValue = []; - if (options.bytes !== Array) - object.stringValue = $util.newBuffer(object.stringValue); - } - object.aggregateValue = ""; - } - if (message.name && message.name.length) { - object.name = []; - for (var j = 0; j < message.name.length; ++j) - object.name[j] = $root.google.protobuf.UninterpretedOption.NamePart.toObject(message.name[j], options); + object.kind = ""; + object.path = ""; } - if (message.identifierValue != null && message.hasOwnProperty("identifierValue")) - object.identifierValue = message.identifierValue; - if (message.positiveIntValue != null && message.hasOwnProperty("positiveIntValue")) - if (typeof message.positiveIntValue === "number") - object.positiveIntValue = options.longs === String ? String(message.positiveIntValue) : message.positiveIntValue; - else - object.positiveIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.positiveIntValue) : options.longs === Number ? new $util.LongBits(message.positiveIntValue.low >>> 0, message.positiveIntValue.high >>> 0).toNumber(true) : message.positiveIntValue; - if (message.negativeIntValue != null && message.hasOwnProperty("negativeIntValue")) - if (typeof message.negativeIntValue === "number") - object.negativeIntValue = options.longs === String ? String(message.negativeIntValue) : message.negativeIntValue; - else - object.negativeIntValue = options.longs === String ? $util.Long.prototype.toString.call(message.negativeIntValue) : options.longs === Number ? new $util.LongBits(message.negativeIntValue.low >>> 0, message.negativeIntValue.high >>> 0).toNumber() : message.negativeIntValue; - if (message.doubleValue != null && message.hasOwnProperty("doubleValue")) - object.doubleValue = options.json && !isFinite(message.doubleValue) ? String(message.doubleValue) : message.doubleValue; - if (message.stringValue != null && message.hasOwnProperty("stringValue")) - object.stringValue = options.bytes === String ? $util.base64.encode(message.stringValue, 0, message.stringValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.stringValue) : message.stringValue; - if (message.aggregateValue != null && message.hasOwnProperty("aggregateValue")) - object.aggregateValue = message.aggregateValue; + if (message.kind != null && message.hasOwnProperty("kind")) + object.kind = message.kind; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; return object; }; /** - * Converts this UninterpretedOption to JSON. + * Converts this CustomHttpPattern to JSON. * @function toJSON - * @memberof google.protobuf.UninterpretedOption + * @memberof google.api.CustomHttpPattern * @instance * @returns {Object.} JSON object */ - UninterpretedOption.prototype.toJSON = function toJSON() { + CustomHttpPattern.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - UninterpretedOption.NamePart = (function() { - - /** - * Properties of a NamePart. - * @memberof google.protobuf.UninterpretedOption - * @interface INamePart - * @property {string} namePart NamePart namePart - * @property {boolean} isExtension NamePart isExtension - */ - - /** - * Constructs a new NamePart. - * @memberof google.protobuf.UninterpretedOption - * @classdesc Represents a NamePart. - * @implements INamePart - * @constructor - * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set - */ - function NamePart(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * NamePart namePart. - * @member {string} namePart - * @memberof google.protobuf.UninterpretedOption.NamePart - * @instance - */ - NamePart.prototype.namePart = ""; - - /** - * NamePart isExtension. - * @member {boolean} isExtension - * @memberof google.protobuf.UninterpretedOption.NamePart - * @instance - */ - NamePart.prototype.isExtension = false; - - /** - * Creates a new NamePart instance using the specified properties. - * @function create - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {google.protobuf.UninterpretedOption.INamePart=} [properties] Properties to set - * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart instance - */ - NamePart.create = function create(properties) { - return new NamePart(properties); - }; - - /** - * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. - * @function encode - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NamePart.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - writer.uint32(/* id 1, wireType 2 =*/10).string(message.namePart); - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isExtension); - return writer; - }; - - /** - * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {google.protobuf.UninterpretedOption.INamePart} message NamePart message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - NamePart.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a NamePart message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NamePart.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.UninterpretedOption.NamePart(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.namePart = reader.string(); - break; - case 2: - message.isExtension = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - if (!message.hasOwnProperty("namePart")) - throw $util.ProtocolError("missing required 'namePart'", { instance: message }); - if (!message.hasOwnProperty("isExtension")) - throw $util.ProtocolError("missing required 'isExtension'", { instance: message }); - return message; - }; - - /** - * Decodes a NamePart message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - NamePart.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a NamePart message. - * @function verify - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - NamePart.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (!$util.isString(message.namePart)) - return "namePart: string expected"; - if (typeof message.isExtension !== "boolean") - return "isExtension: boolean expected"; - return null; - }; - - /** - * Creates a NamePart message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.UninterpretedOption.NamePart} NamePart - */ - NamePart.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.UninterpretedOption.NamePart) - return object; - var message = new $root.google.protobuf.UninterpretedOption.NamePart(); - if (object.namePart != null) - message.namePart = String(object.namePart); - if (object.isExtension != null) - message.isExtension = Boolean(object.isExtension); - return message; - }; - - /** - * Creates a plain object from a NamePart message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.UninterpretedOption.NamePart - * @static - * @param {google.protobuf.UninterpretedOption.NamePart} message NamePart - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - NamePart.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.namePart = ""; - object.isExtension = false; - } - if (message.namePart != null && message.hasOwnProperty("namePart")) - object.namePart = message.namePart; - if (message.isExtension != null && message.hasOwnProperty("isExtension")) - object.isExtension = message.isExtension; - return object; - }; - - /** - * Converts this NamePart to JSON. - * @function toJSON - * @memberof google.protobuf.UninterpretedOption.NamePart - * @instance - * @returns {Object.} JSON object - */ - NamePart.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return NamePart; - })(); + return CustomHttpPattern; + })(); - return UninterpretedOption; + /** + * FieldBehavior enum. + * @name google.api.FieldBehavior + * @enum {number} + * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value + * @property {number} OPTIONAL=1 OPTIONAL value + * @property {number} REQUIRED=2 REQUIRED value + * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value + * @property {number} INPUT_ONLY=4 INPUT_ONLY value + * @property {number} IMMUTABLE=5 IMMUTABLE value + * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value + * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value + */ + api.FieldBehavior = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0; + values[valuesById[1] = "OPTIONAL"] = 1; + values[valuesById[2] = "REQUIRED"] = 2; + values[valuesById[3] = "OUTPUT_ONLY"] = 3; + values[valuesById[4] = "INPUT_ONLY"] = 4; + values[valuesById[5] = "IMMUTABLE"] = 5; + values[valuesById[6] = "UNORDERED_LIST"] = 6; + values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7; + return values; })(); - protobuf.SourceCodeInfo = (function() { + api.ResourceDescriptor = (function() { /** - * Properties of a SourceCodeInfo. - * @memberof google.protobuf - * @interface ISourceCodeInfo - * @property {Array.|null} [location] SourceCodeInfo location + * Properties of a ResourceDescriptor. + * @memberof google.api + * @interface IResourceDescriptor + * @property {string|null} [type] ResourceDescriptor type + * @property {Array.|null} [pattern] ResourceDescriptor pattern + * @property {string|null} [nameField] ResourceDescriptor nameField + * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history + * @property {string|null} [plural] ResourceDescriptor plural + * @property {string|null} [singular] ResourceDescriptor singular + * @property {Array.|null} [style] ResourceDescriptor style */ /** - * Constructs a new SourceCodeInfo. - * @memberof google.protobuf - * @classdesc Represents a SourceCodeInfo. - * @implements ISourceCodeInfo + * Constructs a new ResourceDescriptor. + * @memberof google.api + * @classdesc Represents a ResourceDescriptor. + * @implements IResourceDescriptor * @constructor - * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set + * @param {google.api.IResourceDescriptor=} [properties] Properties to set */ - function SourceCodeInfo(properties) { - this.location = []; + function ResourceDescriptor(properties) { + this.pattern = []; + this.style = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39355,78 +41821,167 @@ } /** - * SourceCodeInfo location. - * @member {Array.} location - * @memberof google.protobuf.SourceCodeInfo + * ResourceDescriptor type. + * @member {string} type + * @memberof google.api.ResourceDescriptor * @instance */ - SourceCodeInfo.prototype.location = $util.emptyArray; + ResourceDescriptor.prototype.type = ""; /** - * Creates a new SourceCodeInfo instance using the specified properties. + * ResourceDescriptor pattern. + * @member {Array.} pattern + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.pattern = $util.emptyArray; + + /** + * ResourceDescriptor nameField. + * @member {string} nameField + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.nameField = ""; + + /** + * ResourceDescriptor history. + * @member {google.api.ResourceDescriptor.History} history + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.history = 0; + + /** + * ResourceDescriptor plural. + * @member {string} plural + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.plural = ""; + + /** + * ResourceDescriptor singular. + * @member {string} singular + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.singular = ""; + + /** + * ResourceDescriptor style. + * @member {Array.} style + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.style = $util.emptyArray; + + /** + * Creates a new ResourceDescriptor instance using the specified properties. * @function create - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static - * @param {google.protobuf.ISourceCodeInfo=} [properties] Properties to set - * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo instance + * @param {google.api.IResourceDescriptor=} [properties] Properties to set + * @returns {google.api.ResourceDescriptor} ResourceDescriptor instance */ - SourceCodeInfo.create = function create(properties) { - return new SourceCodeInfo(properties); + ResourceDescriptor.create = function create(properties) { + return new ResourceDescriptor(properties); }; /** - * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. * @function encode - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static - * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SourceCodeInfo.encode = function encode(message, writer) { + ResourceDescriptor.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.location != null && message.location.length) - for (var i = 0; i < message.location.length; ++i) - $root.google.protobuf.SourceCodeInfo.Location.encode(message.location[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); + if (message.pattern != null && message.pattern.length) + for (var i = 0; i < message.pattern.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.pattern[i]); + if (message.nameField != null && Object.hasOwnProperty.call(message, "nameField")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.nameField); + if (message.history != null && Object.hasOwnProperty.call(message, "history")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.history); + if (message.plural != null && Object.hasOwnProperty.call(message, "plural")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.plural); + if (message.singular != null && Object.hasOwnProperty.call(message, "singular")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.singular); + if (message.style != null && message.style.length) { + writer.uint32(/* id 10, wireType 2 =*/82).fork(); + for (var i = 0; i < message.style.length; ++i) + writer.int32(message.style[i]); + writer.ldelim(); + } return writer; }; /** - * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages. + * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. * @function encodeDelimited - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static - * @param {google.protobuf.ISourceCodeInfo} message SourceCodeInfo message or plain object to encode + * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SourceCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + ResourceDescriptor.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SourceCodeInfo message from the specified reader or buffer. + * Decodes a ResourceDescriptor message from the specified reader or buffer. * @function decode - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @returns {google.api.ResourceDescriptor} ResourceDescriptor * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceCodeInfo.decode = function decode(reader, length) { + ResourceDescriptor.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceDescriptor(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.location && message.location.length)) - message.location = []; - message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader, reader.uint32())); + message.type = reader.string(); + break; + case 2: + if (!(message.pattern && message.pattern.length)) + message.pattern = []; + message.pattern.push(reader.string()); + break; + case 3: + message.nameField = reader.string(); + break; + case 4: + message.history = reader.int32(); + break; + case 5: + message.plural = reader.string(); + break; + case 6: + message.singular = reader.string(); + break; + case 10: + if (!(message.style && message.style.length)) + message.style = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.style.push(reader.int32()); + } else + message.style.push(reader.int32()); break; default: reader.skipType(tag & 7); @@ -39437,467 +41992,246 @@ }; /** - * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited. + * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @returns {google.api.ResourceDescriptor} ResourceDescriptor * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceCodeInfo.decodeDelimited = function decodeDelimited(reader) { + ResourceDescriptor.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SourceCodeInfo message. + * Verifies a ResourceDescriptor message. * @function verify - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SourceCodeInfo.verify = function verify(message) { + ResourceDescriptor.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.location != null && message.hasOwnProperty("location")) { - if (!Array.isArray(message.location)) - return "location: array expected"; - for (var i = 0; i < message.location.length; ++i) { - var error = $root.google.protobuf.SourceCodeInfo.Location.verify(message.location[i]); - if (error) - return "location." + error; + if (message.type != null && message.hasOwnProperty("type")) + if (!$util.isString(message.type)) + return "type: string expected"; + if (message.pattern != null && message.hasOwnProperty("pattern")) { + if (!Array.isArray(message.pattern)) + return "pattern: array expected"; + for (var i = 0; i < message.pattern.length; ++i) + if (!$util.isString(message.pattern[i])) + return "pattern: string[] expected"; + } + if (message.nameField != null && message.hasOwnProperty("nameField")) + if (!$util.isString(message.nameField)) + return "nameField: string expected"; + if (message.history != null && message.hasOwnProperty("history")) + switch (message.history) { + default: + return "history: enum value expected"; + case 0: + case 1: + case 2: + break; } + if (message.plural != null && message.hasOwnProperty("plural")) + if (!$util.isString(message.plural)) + return "plural: string expected"; + if (message.singular != null && message.hasOwnProperty("singular")) + if (!$util.isString(message.singular)) + return "singular: string expected"; + if (message.style != null && message.hasOwnProperty("style")) { + if (!Array.isArray(message.style)) + return "style: array expected"; + for (var i = 0; i < message.style.length; ++i) + switch (message.style[i]) { + default: + return "style: enum value[] expected"; + case 0: + case 1: + break; + } } return null; }; /** - * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types. + * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static * @param {Object.} object Plain object - * @returns {google.protobuf.SourceCodeInfo} SourceCodeInfo + * @returns {google.api.ResourceDescriptor} ResourceDescriptor */ - SourceCodeInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.SourceCodeInfo) + ResourceDescriptor.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.ResourceDescriptor) return object; - var message = new $root.google.protobuf.SourceCodeInfo(); - if (object.location) { - if (!Array.isArray(object.location)) - throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected"); - message.location = []; - for (var i = 0; i < object.location.length; ++i) { - if (typeof object.location[i] !== "object") - throw TypeError(".google.protobuf.SourceCodeInfo.location: object expected"); - message.location[i] = $root.google.protobuf.SourceCodeInfo.Location.fromObject(object.location[i]); - } + var message = new $root.google.api.ResourceDescriptor(); + if (object.type != null) + message.type = String(object.type); + if (object.pattern) { + if (!Array.isArray(object.pattern)) + throw TypeError(".google.api.ResourceDescriptor.pattern: array expected"); + message.pattern = []; + for (var i = 0; i < object.pattern.length; ++i) + message.pattern[i] = String(object.pattern[i]); + } + if (object.nameField != null) + message.nameField = String(object.nameField); + switch (object.history) { + case "HISTORY_UNSPECIFIED": + case 0: + message.history = 0; + break; + case "ORIGINALLY_SINGLE_PATTERN": + case 1: + message.history = 1; + break; + case "FUTURE_MULTI_PATTERN": + case 2: + message.history = 2; + break; + } + if (object.plural != null) + message.plural = String(object.plural); + if (object.singular != null) + message.singular = String(object.singular); + if (object.style) { + if (!Array.isArray(object.style)) + throw TypeError(".google.api.ResourceDescriptor.style: array expected"); + message.style = []; + for (var i = 0; i < object.style.length; ++i) + switch (object.style[i]) { + default: + case "STYLE_UNSPECIFIED": + case 0: + message.style[i] = 0; + break; + case "DECLARATIVE_FRIENDLY": + case 1: + message.style[i] = 1; + break; + } } return message; }; /** - * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified. + * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.SourceCodeInfo + * @memberof google.api.ResourceDescriptor * @static - * @param {google.protobuf.SourceCodeInfo} message SourceCodeInfo + * @param {google.api.ResourceDescriptor} message ResourceDescriptor * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SourceCodeInfo.toObject = function toObject(message, options) { + ResourceDescriptor.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.location = []; - if (message.location && message.location.length) { - object.location = []; - for (var j = 0; j < message.location.length; ++j) - object.location[j] = $root.google.protobuf.SourceCodeInfo.Location.toObject(message.location[j], options); + if (options.arrays || options.defaults) { + object.pattern = []; + object.style = []; } - return object; - }; - - /** - * Converts this SourceCodeInfo to JSON. - * @function toJSON - * @memberof google.protobuf.SourceCodeInfo - * @instance - * @returns {Object.} JSON object - */ - SourceCodeInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - SourceCodeInfo.Location = (function() { - - /** - * Properties of a Location. - * @memberof google.protobuf.SourceCodeInfo - * @interface ILocation - * @property {Array.|null} [path] Location path - * @property {Array.|null} [span] Location span - * @property {string|null} [leadingComments] Location leadingComments - * @property {string|null} [trailingComments] Location trailingComments - * @property {Array.|null} [leadingDetachedComments] Location leadingDetachedComments - */ - - /** - * Constructs a new Location. - * @memberof google.protobuf.SourceCodeInfo - * @classdesc Represents a Location. - * @implements ILocation - * @constructor - * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set - */ - function Location(properties) { - this.path = []; - this.span = []; - this.leadingDetachedComments = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + if (options.defaults) { + object.type = ""; + object.nameField = ""; + object.history = options.enums === String ? "HISTORY_UNSPECIFIED" : 0; + object.plural = ""; + object.singular = ""; } + if (message.type != null && message.hasOwnProperty("type")) + object.type = message.type; + if (message.pattern && message.pattern.length) { + object.pattern = []; + for (var j = 0; j < message.pattern.length; ++j) + object.pattern[j] = message.pattern[j]; + } + if (message.nameField != null && message.hasOwnProperty("nameField")) + object.nameField = message.nameField; + if (message.history != null && message.hasOwnProperty("history")) + object.history = options.enums === String ? $root.google.api.ResourceDescriptor.History[message.history] : message.history; + if (message.plural != null && message.hasOwnProperty("plural")) + object.plural = message.plural; + if (message.singular != null && message.hasOwnProperty("singular")) + object.singular = message.singular; + if (message.style && message.style.length) { + object.style = []; + for (var j = 0; j < message.style.length; ++j) + object.style[j] = options.enums === String ? $root.google.api.ResourceDescriptor.Style[message.style[j]] : message.style[j]; + } + return object; + }; - /** - * Location path. - * @member {Array.} path - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - */ - Location.prototype.path = $util.emptyArray; - - /** - * Location span. - * @member {Array.} span - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - */ - Location.prototype.span = $util.emptyArray; - - /** - * Location leadingComments. - * @member {string} leadingComments - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - */ - Location.prototype.leadingComments = ""; - - /** - * Location trailingComments. - * @member {string} trailingComments - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - */ - Location.prototype.trailingComments = ""; - - /** - * Location leadingDetachedComments. - * @member {Array.} leadingDetachedComments - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - */ - Location.prototype.leadingDetachedComments = $util.emptyArray; - - /** - * Creates a new Location instance using the specified properties. - * @function create - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {google.protobuf.SourceCodeInfo.ILocation=} [properties] Properties to set - * @returns {google.protobuf.SourceCodeInfo.Location} Location instance - */ - Location.create = function create(properties) { - return new Location(properties); - }; - - /** - * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. - * @function encode - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Location.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.path != null && message.path.length) { - writer.uint32(/* id 1, wireType 2 =*/10).fork(); - for (var i = 0; i < message.path.length; ++i) - writer.int32(message.path[i]); - writer.ldelim(); - } - if (message.span != null && message.span.length) { - writer.uint32(/* id 2, wireType 2 =*/18).fork(); - for (var i = 0; i < message.span.length; ++i) - writer.int32(message.span[i]); - writer.ldelim(); - } - if (message.leadingComments != null && Object.hasOwnProperty.call(message, "leadingComments")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.leadingComments); - if (message.trailingComments != null && Object.hasOwnProperty.call(message, "trailingComments")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.trailingComments); - if (message.leadingDetachedComments != null && message.leadingDetachedComments.length) - for (var i = 0; i < message.leadingDetachedComments.length; ++i) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.leadingDetachedComments[i]); - return writer; - }; - - /** - * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {google.protobuf.SourceCodeInfo.ILocation} message Location message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Location.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a Location message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.SourceCodeInfo.Location} Location - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Location.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.SourceCodeInfo.Location(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.path && message.path.length)) - message.path = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.path.push(reader.int32()); - } else - message.path.push(reader.int32()); - break; - case 2: - if (!(message.span && message.span.length)) - message.span = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.span.push(reader.int32()); - } else - message.span.push(reader.int32()); - break; - case 3: - message.leadingComments = reader.string(); - break; - case 4: - message.trailingComments = reader.string(); - break; - case 6: - if (!(message.leadingDetachedComments && message.leadingDetachedComments.length)) - message.leadingDetachedComments = []; - message.leadingDetachedComments.push(reader.string()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a Location message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.SourceCodeInfo.Location} Location - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Location.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a Location message. - * @function verify - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Location.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) { - if (!Array.isArray(message.path)) - return "path: array expected"; - for (var i = 0; i < message.path.length; ++i) - if (!$util.isInteger(message.path[i])) - return "path: integer[] expected"; - } - if (message.span != null && message.hasOwnProperty("span")) { - if (!Array.isArray(message.span)) - return "span: array expected"; - for (var i = 0; i < message.span.length; ++i) - if (!$util.isInteger(message.span[i])) - return "span: integer[] expected"; - } - if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) - if (!$util.isString(message.leadingComments)) - return "leadingComments: string expected"; - if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) - if (!$util.isString(message.trailingComments)) - return "trailingComments: string expected"; - if (message.leadingDetachedComments != null && message.hasOwnProperty("leadingDetachedComments")) { - if (!Array.isArray(message.leadingDetachedComments)) - return "leadingDetachedComments: array expected"; - for (var i = 0; i < message.leadingDetachedComments.length; ++i) - if (!$util.isString(message.leadingDetachedComments[i])) - return "leadingDetachedComments: string[] expected"; - } - return null; - }; - - /** - * Creates a Location message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.SourceCodeInfo.Location} Location - */ - Location.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.SourceCodeInfo.Location) - return object; - var message = new $root.google.protobuf.SourceCodeInfo.Location(); - if (object.path) { - if (!Array.isArray(object.path)) - throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected"); - message.path = []; - for (var i = 0; i < object.path.length; ++i) - message.path[i] = object.path[i] | 0; - } - if (object.span) { - if (!Array.isArray(object.span)) - throw TypeError(".google.protobuf.SourceCodeInfo.Location.span: array expected"); - message.span = []; - for (var i = 0; i < object.span.length; ++i) - message.span[i] = object.span[i] | 0; - } - if (object.leadingComments != null) - message.leadingComments = String(object.leadingComments); - if (object.trailingComments != null) - message.trailingComments = String(object.trailingComments); - if (object.leadingDetachedComments) { - if (!Array.isArray(object.leadingDetachedComments)) - throw TypeError(".google.protobuf.SourceCodeInfo.Location.leadingDetachedComments: array expected"); - message.leadingDetachedComments = []; - for (var i = 0; i < object.leadingDetachedComments.length; ++i) - message.leadingDetachedComments[i] = String(object.leadingDetachedComments[i]); - } - return message; - }; - - /** - * Creates a plain object from a Location message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.SourceCodeInfo.Location - * @static - * @param {google.protobuf.SourceCodeInfo.Location} message Location - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Location.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.path = []; - object.span = []; - object.leadingDetachedComments = []; - } - if (options.defaults) { - object.leadingComments = ""; - object.trailingComments = ""; - } - if (message.path && message.path.length) { - object.path = []; - for (var j = 0; j < message.path.length; ++j) - object.path[j] = message.path[j]; - } - if (message.span && message.span.length) { - object.span = []; - for (var j = 0; j < message.span.length; ++j) - object.span[j] = message.span[j]; - } - if (message.leadingComments != null && message.hasOwnProperty("leadingComments")) - object.leadingComments = message.leadingComments; - if (message.trailingComments != null && message.hasOwnProperty("trailingComments")) - object.trailingComments = message.trailingComments; - if (message.leadingDetachedComments && message.leadingDetachedComments.length) { - object.leadingDetachedComments = []; - for (var j = 0; j < message.leadingDetachedComments.length; ++j) - object.leadingDetachedComments[j] = message.leadingDetachedComments[j]; - } - return object; - }; - - /** - * Converts this Location to JSON. - * @function toJSON - * @memberof google.protobuf.SourceCodeInfo.Location - * @instance - * @returns {Object.} JSON object - */ - Location.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this ResourceDescriptor to JSON. + * @function toJSON + * @memberof google.api.ResourceDescriptor + * @instance + * @returns {Object.} JSON object + */ + ResourceDescriptor.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return Location; + /** + * History enum. + * @name google.api.ResourceDescriptor.History + * @enum {number} + * @property {number} HISTORY_UNSPECIFIED=0 HISTORY_UNSPECIFIED value + * @property {number} ORIGINALLY_SINGLE_PATTERN=1 ORIGINALLY_SINGLE_PATTERN value + * @property {number} FUTURE_MULTI_PATTERN=2 FUTURE_MULTI_PATTERN value + */ + ResourceDescriptor.History = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "HISTORY_UNSPECIFIED"] = 0; + values[valuesById[1] = "ORIGINALLY_SINGLE_PATTERN"] = 1; + values[valuesById[2] = "FUTURE_MULTI_PATTERN"] = 2; + return values; })(); - return SourceCodeInfo; + /** + * Style enum. + * @name google.api.ResourceDescriptor.Style + * @enum {number} + * @property {number} STYLE_UNSPECIFIED=0 STYLE_UNSPECIFIED value + * @property {number} DECLARATIVE_FRIENDLY=1 DECLARATIVE_FRIENDLY value + */ + ResourceDescriptor.Style = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STYLE_UNSPECIFIED"] = 0; + values[valuesById[1] = "DECLARATIVE_FRIENDLY"] = 1; + return values; + })(); + + return ResourceDescriptor; })(); - protobuf.GeneratedCodeInfo = (function() { + api.ResourceReference = (function() { /** - * Properties of a GeneratedCodeInfo. - * @memberof google.protobuf - * @interface IGeneratedCodeInfo - * @property {Array.|null} [annotation] GeneratedCodeInfo annotation + * Properties of a ResourceReference. + * @memberof google.api + * @interface IResourceReference + * @property {string|null} [type] ResourceReference type + * @property {string|null} [childType] ResourceReference childType */ /** - * Constructs a new GeneratedCodeInfo. - * @memberof google.protobuf - * @classdesc Represents a GeneratedCodeInfo. - * @implements IGeneratedCodeInfo + * Constructs a new ResourceReference. + * @memberof google.api + * @classdesc Represents a ResourceReference. + * @implements IResourceReference * @constructor - * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set + * @param {google.api.IResourceReference=} [properties] Properties to set */ - function GeneratedCodeInfo(properties) { - this.annotation = []; + function ResourceReference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39905,78 +42239,88 @@ } /** - * GeneratedCodeInfo annotation. - * @member {Array.} annotation - * @memberof google.protobuf.GeneratedCodeInfo + * ResourceReference type. + * @member {string} type + * @memberof google.api.ResourceReference * @instance */ - GeneratedCodeInfo.prototype.annotation = $util.emptyArray; + ResourceReference.prototype.type = ""; /** - * Creates a new GeneratedCodeInfo instance using the specified properties. + * ResourceReference childType. + * @member {string} childType + * @memberof google.api.ResourceReference + * @instance + */ + ResourceReference.prototype.childType = ""; + + /** + * Creates a new ResourceReference instance using the specified properties. * @function create - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static - * @param {google.protobuf.IGeneratedCodeInfo=} [properties] Properties to set - * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo instance + * @param {google.api.IResourceReference=} [properties] Properties to set + * @returns {google.api.ResourceReference} ResourceReference instance */ - GeneratedCodeInfo.create = function create(properties) { - return new GeneratedCodeInfo(properties); + ResourceReference.create = function create(properties) { + return new ResourceReference(properties); }; /** - * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. * @function encode - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static - * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GeneratedCodeInfo.encode = function encode(message, writer) { + ResourceReference.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.annotation != null && message.annotation.length) - for (var i = 0; i < message.annotation.length; ++i) - $root.google.protobuf.GeneratedCodeInfo.Annotation.encode(message.annotation[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.type); + if (message.childType != null && Object.hasOwnProperty.call(message, "childType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.childType); return writer; }; /** - * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages. + * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. * @function encodeDelimited - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static - * @param {google.protobuf.IGeneratedCodeInfo} message GeneratedCodeInfo message or plain object to encode + * @param {google.api.IResourceReference} message ResourceReference message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GeneratedCodeInfo.encodeDelimited = function encodeDelimited(message, writer) { + ResourceReference.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GeneratedCodeInfo message from the specified reader or buffer. + * Decodes a ResourceReference message from the specified reader or buffer. * @function decode - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @returns {google.api.ResourceReference} ResourceReference * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeneratedCodeInfo.decode = function decode(reader, length) { + ResourceReference.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.api.ResourceReference(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.annotation && message.annotation.length)) - message.annotation = []; - message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader, reader.uint32())); + message.type = reader.string(); + break; + case 2: + message.childType = reader.string(); break; default: reader.skipType(tag & 7); @@ -39987,386 +42331,99 @@ }; /** - * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited. + * Decodes a ResourceReference message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @returns {google.api.ResourceReference} ResourceReference * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GeneratedCodeInfo.decodeDelimited = function decodeDelimited(reader) { + ResourceReference.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GeneratedCodeInfo message. + * Verifies a ResourceReference message. * @function verify - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GeneratedCodeInfo.verify = function verify(message) { + ResourceReference.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.annotation != null && message.hasOwnProperty("annotation")) { - if (!Array.isArray(message.annotation)) - return "annotation: array expected"; - for (var i = 0; i < message.annotation.length; ++i) { - var error = $root.google.protobuf.GeneratedCodeInfo.Annotation.verify(message.annotation[i]); - if (error) - return "annotation." + error; - } - } + if (message.type != null && message.hasOwnProperty("type")) + if (!$util.isString(message.type)) + return "type: string expected"; + if (message.childType != null && message.hasOwnProperty("childType")) + if (!$util.isString(message.childType)) + return "childType: string expected"; return null; }; /** - * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types. + * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static * @param {Object.} object Plain object - * @returns {google.protobuf.GeneratedCodeInfo} GeneratedCodeInfo + * @returns {google.api.ResourceReference} ResourceReference */ - GeneratedCodeInfo.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.GeneratedCodeInfo) + ResourceReference.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.ResourceReference) return object; - var message = new $root.google.protobuf.GeneratedCodeInfo(); - if (object.annotation) { - if (!Array.isArray(object.annotation)) - throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected"); - message.annotation = []; - for (var i = 0; i < object.annotation.length; ++i) { - if (typeof object.annotation[i] !== "object") - throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: object expected"); - message.annotation[i] = $root.google.protobuf.GeneratedCodeInfo.Annotation.fromObject(object.annotation[i]); - } - } + var message = new $root.google.api.ResourceReference(); + if (object.type != null) + message.type = String(object.type); + if (object.childType != null) + message.childType = String(object.childType); return message; }; /** - * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified. + * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @static - * @param {google.protobuf.GeneratedCodeInfo} message GeneratedCodeInfo + * @param {google.api.ResourceReference} message ResourceReference * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GeneratedCodeInfo.toObject = function toObject(message, options) { + ResourceReference.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.annotation = []; - if (message.annotation && message.annotation.length) { - object.annotation = []; - for (var j = 0; j < message.annotation.length; ++j) - object.annotation[j] = $root.google.protobuf.GeneratedCodeInfo.Annotation.toObject(message.annotation[j], options); + if (options.defaults) { + object.type = ""; + object.childType = ""; } + if (message.type != null && message.hasOwnProperty("type")) + object.type = message.type; + if (message.childType != null && message.hasOwnProperty("childType")) + object.childType = message.childType; return object; }; /** - * Converts this GeneratedCodeInfo to JSON. + * Converts this ResourceReference to JSON. * @function toJSON - * @memberof google.protobuf.GeneratedCodeInfo + * @memberof google.api.ResourceReference * @instance * @returns {Object.} JSON object */ - GeneratedCodeInfo.prototype.toJSON = function toJSON() { + ResourceReference.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GeneratedCodeInfo.Annotation = (function() { - - /** - * Properties of an Annotation. - * @memberof google.protobuf.GeneratedCodeInfo - * @interface IAnnotation - * @property {Array.|null} [path] Annotation path - * @property {string|null} [sourceFile] Annotation sourceFile - * @property {number|null} [begin] Annotation begin - * @property {number|null} [end] Annotation end - */ - - /** - * Constructs a new Annotation. - * @memberof google.protobuf.GeneratedCodeInfo - * @classdesc Represents an Annotation. - * @implements IAnnotation - * @constructor - * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set - */ - function Annotation(properties) { - this.path = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * Annotation path. - * @member {Array.} path - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @instance - */ - Annotation.prototype.path = $util.emptyArray; - - /** - * Annotation sourceFile. - * @member {string} sourceFile - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @instance - */ - Annotation.prototype.sourceFile = ""; - - /** - * Annotation begin. - * @member {number} begin - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @instance - */ - Annotation.prototype.begin = 0; - - /** - * Annotation end. - * @member {number} end - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @instance - */ - Annotation.prototype.end = 0; - - /** - * Creates a new Annotation instance using the specified properties. - * @function create - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {google.protobuf.GeneratedCodeInfo.IAnnotation=} [properties] Properties to set - * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation instance - */ - Annotation.create = function create(properties) { - return new Annotation(properties); - }; - - /** - * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. - * @function encode - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Annotation.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.path != null && message.path.length) { - writer.uint32(/* id 1, wireType 2 =*/10).fork(); - for (var i = 0; i < message.path.length; ++i) - writer.int32(message.path[i]); - writer.ldelim(); - } - if (message.sourceFile != null && Object.hasOwnProperty.call(message, "sourceFile")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceFile); - if (message.begin != null && Object.hasOwnProperty.call(message, "begin")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.begin); - if (message.end != null && Object.hasOwnProperty.call(message, "end")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.end); - return writer; - }; - - /** - * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages. - * @function encodeDelimited - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {google.protobuf.GeneratedCodeInfo.IAnnotation} message Annotation message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Annotation.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an Annotation message from the specified reader or buffer. - * @function decode - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Annotation.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.path && message.path.length)) - message.path = []; - if ((tag & 7) === 2) { - var end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) - message.path.push(reader.int32()); - } else - message.path.push(reader.int32()); - break; - case 2: - message.sourceFile = reader.string(); - break; - case 3: - message.begin = reader.int32(); - break; - case 4: - message.end = reader.int32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an Annotation message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Annotation.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an Annotation message. - * @function verify - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Annotation.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) { - if (!Array.isArray(message.path)) - return "path: array expected"; - for (var i = 0; i < message.path.length; ++i) - if (!$util.isInteger(message.path[i])) - return "path: integer[] expected"; - } - if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) - if (!$util.isString(message.sourceFile)) - return "sourceFile: string expected"; - if (message.begin != null && message.hasOwnProperty("begin")) - if (!$util.isInteger(message.begin)) - return "begin: integer expected"; - if (message.end != null && message.hasOwnProperty("end")) - if (!$util.isInteger(message.end)) - return "end: integer expected"; - return null; - }; - - /** - * Creates an Annotation message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {Object.} object Plain object - * @returns {google.protobuf.GeneratedCodeInfo.Annotation} Annotation - */ - Annotation.fromObject = function fromObject(object) { - if (object instanceof $root.google.protobuf.GeneratedCodeInfo.Annotation) - return object; - var message = new $root.google.protobuf.GeneratedCodeInfo.Annotation(); - if (object.path) { - if (!Array.isArray(object.path)) - throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected"); - message.path = []; - for (var i = 0; i < object.path.length; ++i) - message.path[i] = object.path[i] | 0; - } - if (object.sourceFile != null) - message.sourceFile = String(object.sourceFile); - if (object.begin != null) - message.begin = object.begin | 0; - if (object.end != null) - message.end = object.end | 0; - return message; - }; - - /** - * Creates a plain object from an Annotation message. Also converts values to other types if specified. - * @function toObject - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @static - * @param {google.protobuf.GeneratedCodeInfo.Annotation} message Annotation - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Annotation.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.path = []; - if (options.defaults) { - object.sourceFile = ""; - object.begin = 0; - object.end = 0; - } - if (message.path && message.path.length) { - object.path = []; - for (var j = 0; j < message.path.length; ++j) - object.path[j] = message.path[j]; - } - if (message.sourceFile != null && message.hasOwnProperty("sourceFile")) - object.sourceFile = message.sourceFile; - if (message.begin != null && message.hasOwnProperty("begin")) - object.begin = message.begin; - if (message.end != null && message.hasOwnProperty("end")) - object.end = message.end; - return object; - }; - - /** - * Converts this Annotation to JSON. - * @function toJSON - * @memberof google.protobuf.GeneratedCodeInfo.Annotation - * @instance - * @returns {Object.} JSON object - */ - Annotation.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return Annotation; - })(); - - return GeneratedCodeInfo; + return ResourceReference; })(); - return protobuf; + return api; })(); return google; diff --git a/packages/google-analytics-data/protos/protos.json b/packages/google-analytics-data/protos/protos.json index fbeb491bfdc..5c7d158d792 100644 --- a/packages/google-analytics-data/protos/protos.json +++ b/packages/google-analytics-data/protos/protos.json @@ -2,3121 +2,323 @@ "nested": { "google": { "nested": { - "analytics": { + "protobuf": { + "options": { + "go_package": "google.golang.org/protobuf/types/descriptorpb", + "java_package": "com.google.protobuf", + "java_outer_classname": "DescriptorProtos", + "csharp_namespace": "Google.Protobuf.Reflection", + "objc_class_prefix": "GPB", + "cc_enable_arenas": true, + "optimize_for": "SPEED" + }, "nested": { - "data": { - "nested": { - "v1alpha": { + "Duration": { + "fields": { + "seconds": { + "type": "int64", + "id": 1 + }, + "nanos": { + "type": "int32", + "id": 2 + } + } + }, + "FileDescriptorSet": { + "fields": { + "file": { + "rule": "repeated", + "type": "FileDescriptorProto", + "id": 1 + } + } + }, + "FileDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "package": { + "type": "string", + "id": 2 + }, + "dependency": { + "rule": "repeated", + "type": "string", + "id": 3 + }, + "publicDependency": { + "rule": "repeated", + "type": "int32", + "id": 10, "options": { - "go_package": "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data", - "java_multiple_files": true, - "java_outer_classname": "ReportingApiProto", - "java_package": "com.google.analytics.data.v1alpha" - }, - "nested": { - "AlphaAnalyticsData": { - "options": { - "(google.api.default_host)": "analyticsdata.googleapis.com", - "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly" - }, - "methods": { - "RunReport": { - "requestType": "RunReportRequest", - "responseType": "RunReportResponse", - "options": { - "(google.api.http).post": "/v1alpha:runReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha:runReport", - "body": "*" - } - } - ] - }, - "RunPivotReport": { - "requestType": "RunPivotReportRequest", - "responseType": "RunPivotReportResponse", - "options": { - "(google.api.http).post": "/v1alpha:runPivotReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha:runPivotReport", - "body": "*" - } - } - ] - }, - "BatchRunReports": { - "requestType": "BatchRunReportsRequest", - "responseType": "BatchRunReportsResponse", - "options": { - "(google.api.http).post": "/v1alpha:batchRunReports", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha:batchRunReports", - "body": "*" - } - } - ] - }, - "BatchRunPivotReports": { - "requestType": "BatchRunPivotReportsRequest", - "responseType": "BatchRunPivotReportsResponse", - "options": { - "(google.api.http).post": "/v1alpha:batchRunPivotReports", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha:batchRunPivotReports", - "body": "*" - } - } - ] - }, - "GetMetadata": { - "requestType": "GetMetadataRequest", - "responseType": "Metadata", - "options": { - "(google.api.http).get": "/v1alpha/{name=properties/*/metadata}", - "(google.api.method_signature)": "name" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "get": "/v1alpha/{name=properties/*/metadata}" - } - }, - { - "(google.api.method_signature)": "name" - } - ] - }, - "RunRealtimeReport": { - "requestType": "RunRealtimeReportRequest", - "responseType": "RunRealtimeReportResponse", - "options": { - "(google.api.http).post": "/v1alpha/{property=properties/*}:runRealtimeReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1alpha/{property=properties/*}:runRealtimeReport", - "body": "*" - } - } - ] - } - } + "packed": false + } + }, + "weakDependency": { + "rule": "repeated", + "type": "int32", + "id": 11, + "options": { + "packed": false + } + }, + "messageType": { + "rule": "repeated", + "type": "DescriptorProto", + "id": 4 + }, + "enumType": { + "rule": "repeated", + "type": "EnumDescriptorProto", + "id": 5 + }, + "service": { + "rule": "repeated", + "type": "ServiceDescriptorProto", + "id": 6 + }, + "extension": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 7 + }, + "options": { + "type": "FileOptions", + "id": 8 + }, + "sourceCodeInfo": { + "type": "SourceCodeInfo", + "id": 9 + }, + "syntax": { + "type": "string", + "id": 12 + } + } + }, + "DescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "field": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 2 + }, + "extension": { + "rule": "repeated", + "type": "FieldDescriptorProto", + "id": 6 + }, + "nestedType": { + "rule": "repeated", + "type": "DescriptorProto", + "id": 3 + }, + "enumType": { + "rule": "repeated", + "type": "EnumDescriptorProto", + "id": 4 + }, + "extensionRange": { + "rule": "repeated", + "type": "ExtensionRange", + "id": 5 + }, + "oneofDecl": { + "rule": "repeated", + "type": "OneofDescriptorProto", + "id": 8 + }, + "options": { + "type": "MessageOptions", + "id": 7 + }, + "reservedRange": { + "rule": "repeated", + "type": "ReservedRange", + "id": 9 + }, + "reservedName": { + "rule": "repeated", + "type": "string", + "id": 10 + } + }, + "nested": { + "ExtensionRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 }, - "Metadata": { - "options": { - "(google.api.resource).type": "analyticsdata.googleapis.com/Metadata", - "(google.api.resource).pattern": "properties/{property}/metadata" - }, - "fields": { - "name": { - "type": "string", - "id": 3 - }, - "dimensions": { - "rule": "repeated", - "type": "DimensionMetadata", - "id": 1 - }, - "metrics": { - "rule": "repeated", - "type": "MetricMetadata", - "id": 2 - } - } - }, - "RunReportRequest": { - "fields": { - "entity": { - "type": "Entity", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dateRanges": { - "rule": "repeated", - "type": "DateRange", - "id": 4 - }, - "offset": { - "type": "int64", - "id": 5 - }, - "limit": { - "type": "int64", - "id": 6 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 7 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 8 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 9 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 10 - }, - "currencyCode": { - "type": "string", - "id": 11 - }, - "cohortSpec": { - "type": "CohortSpec", - "id": 12 - }, - "keepEmptyRows": { - "type": "bool", - "id": 13 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 14 - } - } - }, - "RunReportResponse": { - "fields": { - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 11 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 1 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 2 - }, - "totals": { - "rule": "repeated", - "type": "Row", - "id": 8 - }, - "maximums": { - "rule": "repeated", - "type": "Row", - "id": 9 - }, - "minimums": { - "rule": "repeated", - "type": "Row", - "id": 10 - }, - "rowCount": { - "type": "int32", - "id": 12 - }, - "metadata": { - "type": "ResponseMetaData", - "id": 6 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 7 - } - } - }, - "RunPivotReportRequest": { - "fields": { - "entity": { - "type": "Entity", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 4 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 5 - }, - "pivots": { - "rule": "repeated", - "type": "Pivot", - "id": 6 - }, - "dateRanges": { - "rule": "repeated", - "type": "DateRange", - "id": 7 - }, - "currencyCode": { - "type": "string", - "id": 8 - }, - "cohortSpec": { - "type": "CohortSpec", - "id": 9 - }, - "keepEmptyRows": { - "type": "bool", - "id": 10 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 11 - } - } - }, - "RunPivotReportResponse": { - "fields": { - "pivotHeaders": { - "rule": "repeated", - "type": "PivotHeader", - "id": 1 - }, - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 7 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 2 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 3 - }, - "aggregates": { - "rule": "repeated", - "type": "Row", - "id": 4 - }, - "metadata": { - "type": "ResponseMetaData", - "id": 5 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 6 - } - } - }, - "BatchRunReportsRequest": { - "fields": { - "entity": { - "type": "Entity", - "id": 1 - }, - "requests": { - "rule": "repeated", - "type": "RunReportRequest", - "id": 2 - } - } + "end": { + "type": "int32", + "id": 2 }, - "BatchRunReportsResponse": { - "fields": { - "reports": { - "rule": "repeated", - "type": "RunReportResponse", - "id": 1 - } - } + "options": { + "type": "ExtensionRangeOptions", + "id": 3 + } + } + }, + "ReservedRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 }, - "BatchRunPivotReportsRequest": { - "fields": { - "entity": { - "type": "Entity", - "id": 1 - }, - "requests": { - "rule": "repeated", - "type": "RunPivotReportRequest", - "id": 2 - } - } - }, - "BatchRunPivotReportsResponse": { - "fields": { - "pivotReports": { - "rule": "repeated", - "type": "RunPivotReportResponse", - "id": 1 - } - } - }, - "GetMetadataRequest": { - "fields": { - "name": { - "type": "string", - "id": 1, - "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "analyticsdata.googleapis.com/Metadata" - } - } - } - }, - "RunRealtimeReportRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "limit": { - "type": "int64", - "id": 4 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 5 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 6 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 7 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 8 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 9 - } - } - }, - "RunRealtimeReportResponse": { - "fields": { - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 1 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 2 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 3 - }, - "totals": { - "rule": "repeated", - "type": "Row", - "id": 4 - }, - "maximums": { - "rule": "repeated", - "type": "Row", - "id": 5 - }, - "minimums": { - "rule": "repeated", - "type": "Row", - "id": 6 - }, - "rowCount": { - "type": "int32", - "id": 7 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 8 - } - } - }, - "DateRange": { - "fields": { - "startDate": { - "type": "string", - "id": 1 - }, - "endDate": { - "type": "string", - "id": 2 - }, - "name": { - "type": "string", - "id": 3 - } - } - }, - "Entity": { - "fields": { - "propertyId": { - "type": "string", - "id": 1 - } - } - }, - "Dimension": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "dimensionExpression": { - "type": "DimensionExpression", - "id": 2 - } - } - }, - "DimensionExpression": { - "oneofs": { - "oneExpression": { - "oneof": [ - "lowerCase", - "upperCase", - "concatenate" - ] - } - }, - "fields": { - "lowerCase": { - "type": "CaseExpression", - "id": 4 - }, - "upperCase": { - "type": "CaseExpression", - "id": 5 - }, - "concatenate": { - "type": "ConcatenateExpression", - "id": 6 - } - }, - "nested": { - "CaseExpression": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - } - } - }, - "ConcatenateExpression": { - "fields": { - "dimensionNames": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "delimiter": { - "type": "string", - "id": 2 - } - } - } - } - }, - "Metric": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "expression": { - "type": "string", - "id": 2 - }, - "invisible": { - "type": "bool", - "id": 3 - } - } - }, - "FilterExpression": { - "oneofs": { - "expr": { - "oneof": [ - "andGroup", - "orGroup", - "notExpression", - "filter" - ] - } - }, - "fields": { - "andGroup": { - "type": "FilterExpressionList", - "id": 1 - }, - "orGroup": { - "type": "FilterExpressionList", - "id": 2 - }, - "notExpression": { - "type": "FilterExpression", - "id": 3 - }, - "filter": { - "type": "Filter", - "id": 4 - } - } - }, - "FilterExpressionList": { - "fields": { - "expressions": { - "rule": "repeated", - "type": "FilterExpression", - "id": 1 - } - } - }, - "Filter": { - "oneofs": { - "oneFilter": { - "oneof": [ - "nullFilter", - "stringFilter", - "inListFilter", - "numericFilter", - "betweenFilter" - ] - } - }, - "fields": { - "fieldName": { - "type": "string", - "id": 1 - }, - "nullFilter": { - "type": "bool", - "id": 2 - }, - "stringFilter": { - "type": "StringFilter", - "id": 3 - }, - "inListFilter": { - "type": "InListFilter", - "id": 4 - }, - "numericFilter": { - "type": "NumericFilter", - "id": 5 - }, - "betweenFilter": { - "type": "BetweenFilter", - "id": 6 - } - }, - "nested": { - "StringFilter": { - "fields": { - "matchType": { - "type": "MatchType", - "id": 1 - }, - "value": { - "type": "string", - "id": 2 - }, - "caseSensitive": { - "type": "bool", - "id": 3 - } - }, - "nested": { - "MatchType": { - "values": { - "MATCH_TYPE_UNSPECIFIED": 0, - "EXACT": 1, - "BEGINS_WITH": 2, - "ENDS_WITH": 3, - "CONTAINS": 4, - "FULL_REGEXP": 5, - "PARTIAL_REGEXP": 6 - } - } - } - }, - "InListFilter": { - "fields": { - "values": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "caseSensitive": { - "type": "bool", - "id": 2 - } - } - }, - "NumericFilter": { - "fields": { - "operation": { - "type": "Operation", - "id": 1 - }, - "value": { - "type": "NumericValue", - "id": 2 - } - }, - "nested": { - "Operation": { - "values": { - "OPERATION_UNSPECIFIED": 0, - "EQUAL": 1, - "LESS_THAN": 2, - "LESS_THAN_OR_EQUAL": 3, - "GREATER_THAN": 4, - "GREATER_THAN_OR_EQUAL": 5 - } - } - } - }, - "BetweenFilter": { - "fields": { - "fromValue": { - "type": "NumericValue", - "id": 1 - }, - "toValue": { - "type": "NumericValue", - "id": 2 - } - } - } - } - }, - "OrderBy": { - "oneofs": { - "oneOrderBy": { - "oneof": [ - "metric", - "dimension", - "pivot" - ] - } - }, - "fields": { - "metric": { - "type": "MetricOrderBy", - "id": 1 - }, - "dimension": { - "type": "DimensionOrderBy", - "id": 2 - }, - "pivot": { - "type": "PivotOrderBy", - "id": 3 - }, - "desc": { - "type": "bool", - "id": 4 - } - }, - "nested": { - "MetricOrderBy": { - "fields": { - "metricName": { - "type": "string", - "id": 1 - } - } - }, - "DimensionOrderBy": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - }, - "orderType": { - "type": "OrderType", - "id": 2 - } - }, - "nested": { - "OrderType": { - "values": { - "ORDER_TYPE_UNSPECIFIED": 0, - "ALPHANUMERIC": 1, - "CASE_INSENSITIVE_ALPHANUMERIC": 2, - "NUMERIC": 3 - } - } - } - }, - "PivotOrderBy": { - "fields": { - "metricName": { - "type": "string", - "id": 1 - }, - "pivotSelections": { - "rule": "repeated", - "type": "PivotSelection", - "id": 2 - } - }, - "nested": { - "PivotSelection": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - }, - "dimensionValue": { - "type": "string", - "id": 2 - } - } - } - } - } - } - }, - "Pivot": { - "fields": { - "fieldNames": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 2 - }, - "offset": { - "type": "int64", - "id": 3 - }, - "limit": { - "type": "int64", - "id": 4 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 5 - } - } - }, - "CohortSpec": { - "fields": { - "cohorts": { - "rule": "repeated", - "type": "Cohort", - "id": 1 - }, - "cohortsRange": { - "type": "CohortsRange", - "id": 2 - }, - "cohortReportSettings": { - "type": "CohortReportSettings", - "id": 3 - } - } - }, - "Cohort": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "dimension": { - "type": "string", - "id": 2 - }, - "dateRange": { - "type": "DateRange", - "id": 3 - } - } - }, - "CohortsRange": { - "fields": { - "granularity": { - "type": "Granularity", - "id": 1 - }, - "startOffset": { - "type": "int32", - "id": 2 - }, - "endOffset": { - "type": "int32", - "id": 3 - } - }, - "nested": { - "Granularity": { - "values": { - "GRANULARITY_UNSPECIFIED": 0, - "DAILY": 1, - "WEEKLY": 2, - "MONTHLY": 3 - } - } - } - }, - "CohortReportSettings": { - "fields": { - "accumulate": { - "type": "bool", - "id": 1 - } - } - }, - "ResponseMetaData": { - "fields": { - "dataLossFromOtherRow": { - "type": "bool", - "id": 3 - } - } - }, - "DimensionHeader": { - "fields": { - "name": { - "type": "string", - "id": 1 - } - } - }, - "MetricHeader": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "type": { - "type": "MetricType", - "id": 2 - } - } - }, - "PivotHeader": { - "fields": { - "pivotDimensionHeaders": { - "rule": "repeated", - "type": "PivotDimensionHeader", - "id": 1 - }, - "rowCount": { - "type": "int32", - "id": 2 - } - } - }, - "PivotDimensionHeader": { - "fields": { - "dimensionValues": { - "rule": "repeated", - "type": "DimensionValue", - "id": 1 - } - } - }, - "Row": { - "fields": { - "dimensionValues": { - "rule": "repeated", - "type": "DimensionValue", - "id": 1 - }, - "metricValues": { - "rule": "repeated", - "type": "MetricValue", - "id": 2 - } - } - }, - "DimensionValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "value" - ] - } - }, - "fields": { - "value": { - "type": "string", - "id": 1 - } - } - }, - "MetricValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "value" - ] - } - }, - "fields": { - "value": { - "type": "string", - "id": 4 - } - } - }, - "NumericValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "int64Value", - "doubleValue" - ] - } - }, - "fields": { - "int64Value": { - "type": "int64", - "id": 1 - }, - "doubleValue": { - "type": "double", - "id": 2 - } - } - }, - "PropertyQuota": { - "fields": { - "tokensPerDay": { - "type": "QuotaStatus", - "id": 1 - }, - "tokensPerHour": { - "type": "QuotaStatus", - "id": 2 - }, - "concurrentRequests": { - "type": "QuotaStatus", - "id": 3 - }, - "serverErrorsPerProjectPerHour": { - "type": "QuotaStatus", - "id": 4 - } - } - }, - "QuotaStatus": { - "fields": { - "consumed": { - "type": "int32", - "id": 1 - }, - "remaining": { - "type": "int32", - "id": 2 - } - } - }, - "DimensionMetadata": { - "fields": { - "apiName": { - "type": "string", - "id": 1 - }, - "uiName": { - "type": "string", - "id": 2 - }, - "description": { - "type": "string", - "id": 3 - }, - "deprecatedApiNames": { - "rule": "repeated", - "type": "string", - "id": 4 - }, - "customDefinition": { - "type": "bool", - "id": 5 - } - } - }, - "MetricMetadata": { - "fields": { - "apiName": { - "type": "string", - "id": 1 - }, - "uiName": { - "type": "string", - "id": 2 - }, - "description": { - "type": "string", - "id": 3 - }, - "deprecatedApiNames": { - "rule": "repeated", - "type": "string", - "id": 4 - }, - "type": { - "type": "MetricType", - "id": 5 - }, - "expression": { - "type": "string", - "id": 6 - }, - "customDefinition": { - "type": "bool", - "id": 7 - } - } - }, - "MetricAggregation": { - "values": { - "METRIC_AGGREGATION_UNSPECIFIED": 0, - "TOTAL": 1, - "MINIMUM": 5, - "MAXIMUM": 6, - "COUNT": 4 - } - }, - "MetricType": { - "values": { - "METRIC_TYPE_UNSPECIFIED": 0, - "TYPE_INTEGER": 1, - "TYPE_FLOAT": 2, - "TYPE_SECONDS": 4, - "TYPE_MILLISECONDS": 5, - "TYPE_MINUTES": 6, - "TYPE_HOURS": 7, - "TYPE_STANDARD": 8, - "TYPE_CURRENCY": 9, - "TYPE_FEET": 10, - "TYPE_MILES": 11, - "TYPE_METERS": 12, - "TYPE_KILOMETERS": 13 - } - } - } - }, - "v1beta": { - "options": { - "go_package": "google.golang.org/genproto/googleapis/analytics/data/v1beta;data", - "java_multiple_files": true, - "java_outer_classname": "ReportingApiProto", - "java_package": "com.google.analytics.data.v1beta" - }, - "nested": { - "BetaAnalyticsData": { - "options": { - "(google.api.default_host)": "analyticsdata.googleapis.com", - "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly" - }, - "methods": { - "RunReport": { - "requestType": "RunReportRequest", - "responseType": "RunReportResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:runReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:runReport", - "body": "*" - } - } - ] - }, - "RunPivotReport": { - "requestType": "RunPivotReportRequest", - "responseType": "RunPivotReportResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:runPivotReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:runPivotReport", - "body": "*" - } - } - ] - }, - "BatchRunReports": { - "requestType": "BatchRunReportsRequest", - "responseType": "BatchRunReportsResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:batchRunReports", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:batchRunReports", - "body": "*" - } - } - ] - }, - "BatchRunPivotReports": { - "requestType": "BatchRunPivotReportsRequest", - "responseType": "BatchRunPivotReportsResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:batchRunPivotReports", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:batchRunPivotReports", - "body": "*" - } - } - ] - }, - "GetMetadata": { - "requestType": "GetMetadataRequest", - "responseType": "Metadata", - "options": { - "(google.api.http).get": "/v1beta/{name=properties/*/metadata}", - "(google.api.method_signature)": "name" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "get": "/v1beta/{name=properties/*/metadata}" - } - }, - { - "(google.api.method_signature)": "name" - } - ] - }, - "RunRealtimeReport": { - "requestType": "RunRealtimeReportRequest", - "responseType": "RunRealtimeReportResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:runRealtimeReport", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:runRealtimeReport", - "body": "*" - } - } - ] - }, - "CheckCompatibility": { - "requestType": "CheckCompatibilityRequest", - "responseType": "CheckCompatibilityResponse", - "options": { - "(google.api.http).post": "/v1beta/{property=properties/*}:checkCompatibility", - "(google.api.http).body": "*" - }, - "parsedOptions": [ - { - "(google.api.http)": { - "post": "/v1beta/{property=properties/*}:checkCompatibility", - "body": "*" - } - } - ] - } - } - }, - "CheckCompatibilityRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 4 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 5 - }, - "compatibilityFilter": { - "type": "Compatibility", - "id": 6 - } - } - }, - "CheckCompatibilityResponse": { - "fields": { - "dimensionCompatibilities": { - "rule": "repeated", - "type": "DimensionCompatibility", - "id": 1 - }, - "metricCompatibilities": { - "rule": "repeated", - "type": "MetricCompatibility", - "id": 2 - } - } - }, - "Metadata": { - "options": { - "(google.api.resource).type": "analyticsdata.googleapis.com/Metadata", - "(google.api.resource).pattern": "properties/{property}/metadata" - }, - "fields": { - "name": { - "type": "string", - "id": 3 - }, - "dimensions": { - "rule": "repeated", - "type": "DimensionMetadata", - "id": 1 - }, - "metrics": { - "rule": "repeated", - "type": "MetricMetadata", - "id": 2 - } - } - }, - "RunReportRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dateRanges": { - "rule": "repeated", - "type": "DateRange", - "id": 4 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 5 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 6 - }, - "offset": { - "type": "int64", - "id": 7 - }, - "limit": { - "type": "int64", - "id": 8 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 9 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 10 - }, - "currencyCode": { - "type": "string", - "id": 11 - }, - "cohortSpec": { - "type": "CohortSpec", - "id": 12 - }, - "keepEmptyRows": { - "type": "bool", - "id": 13 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 14 - } - } - }, - "RunReportResponse": { - "fields": { - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 1 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 2 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 3 - }, - "totals": { - "rule": "repeated", - "type": "Row", - "id": 4 - }, - "maximums": { - "rule": "repeated", - "type": "Row", - "id": 5 - }, - "minimums": { - "rule": "repeated", - "type": "Row", - "id": 6 - }, - "rowCount": { - "type": "int32", - "id": 7 - }, - "metadata": { - "type": "ResponseMetaData", - "id": 8 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 9 - }, - "kind": { - "type": "string", - "id": 10 - } - } - }, - "RunPivotReportRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dateRanges": { - "rule": "repeated", - "type": "DateRange", - "id": 4 - }, - "pivots": { - "rule": "repeated", - "type": "Pivot", - "id": 5 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 6 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 7 - }, - "currencyCode": { - "type": "string", - "id": 8 - }, - "cohortSpec": { - "type": "CohortSpec", - "id": 9 - }, - "keepEmptyRows": { - "type": "bool", - "id": 10 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 11 - } - } - }, - "RunPivotReportResponse": { - "fields": { - "pivotHeaders": { - "rule": "repeated", - "type": "PivotHeader", - "id": 1 - }, - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 2 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 3 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 4 - }, - "aggregates": { - "rule": "repeated", - "type": "Row", - "id": 5 - }, - "metadata": { - "type": "ResponseMetaData", - "id": 6 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 7 - }, - "kind": { - "type": "string", - "id": 8 - } - } - }, - "BatchRunReportsRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "requests": { - "rule": "repeated", - "type": "RunReportRequest", - "id": 2 - } - } - }, - "BatchRunReportsResponse": { - "fields": { - "reports": { - "rule": "repeated", - "type": "RunReportResponse", - "id": 1 - }, - "kind": { - "type": "string", - "id": 2 - } - } - }, - "BatchRunPivotReportsRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "requests": { - "rule": "repeated", - "type": "RunPivotReportRequest", - "id": 2 - } - } - }, - "BatchRunPivotReportsResponse": { - "fields": { - "pivotReports": { - "rule": "repeated", - "type": "RunPivotReportResponse", - "id": 1 - }, - "kind": { - "type": "string", - "id": 2 - } - } - }, - "GetMetadataRequest": { - "fields": { - "name": { - "type": "string", - "id": 1, - "options": { - "(google.api.field_behavior)": "REQUIRED", - "(google.api.resource_reference).type": "analyticsdata.googleapis.com/Metadata" - } - } - } - }, - "RunRealtimeReportRequest": { - "fields": { - "property": { - "type": "string", - "id": 1 - }, - "dimensions": { - "rule": "repeated", - "type": "Dimension", - "id": 2 - }, - "metrics": { - "rule": "repeated", - "type": "Metric", - "id": 3 - }, - "dimensionFilter": { - "type": "FilterExpression", - "id": 4 - }, - "metricFilter": { - "type": "FilterExpression", - "id": 5 - }, - "limit": { - "type": "int64", - "id": 6 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 7 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 8 - }, - "returnPropertyQuota": { - "type": "bool", - "id": 9 - }, - "minuteRanges": { - "rule": "repeated", - "type": "MinuteRange", - "id": 10 - } - } - }, - "RunRealtimeReportResponse": { - "fields": { - "dimensionHeaders": { - "rule": "repeated", - "type": "DimensionHeader", - "id": 1 - }, - "metricHeaders": { - "rule": "repeated", - "type": "MetricHeader", - "id": 2 - }, - "rows": { - "rule": "repeated", - "type": "Row", - "id": 3 - }, - "totals": { - "rule": "repeated", - "type": "Row", - "id": 4 - }, - "maximums": { - "rule": "repeated", - "type": "Row", - "id": 5 - }, - "minimums": { - "rule": "repeated", - "type": "Row", - "id": 6 - }, - "rowCount": { - "type": "int32", - "id": 7 - }, - "propertyQuota": { - "type": "PropertyQuota", - "id": 8 - }, - "kind": { - "type": "string", - "id": 9 - } - } - }, - "DateRange": { - "fields": { - "startDate": { - "type": "string", - "id": 1 - }, - "endDate": { - "type": "string", - "id": 2 - }, - "name": { - "type": "string", - "id": 3 - } - } - }, - "MinuteRange": { - "oneofs": { - "_startMinutesAgo": { - "oneof": [ - "startMinutesAgo" - ] - }, - "_endMinutesAgo": { - "oneof": [ - "endMinutesAgo" - ] - } - }, - "fields": { - "startMinutesAgo": { - "type": "int32", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "endMinutesAgo": { - "type": "int32", - "id": 2, - "options": { - "proto3_optional": true - } - }, - "name": { - "type": "string", - "id": 3 - } - } - }, - "Dimension": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "dimensionExpression": { - "type": "DimensionExpression", - "id": 2 - } - } - }, - "DimensionExpression": { - "oneofs": { - "oneExpression": { - "oneof": [ - "lowerCase", - "upperCase", - "concatenate" - ] - } - }, - "fields": { - "lowerCase": { - "type": "CaseExpression", - "id": 4 - }, - "upperCase": { - "type": "CaseExpression", - "id": 5 - }, - "concatenate": { - "type": "ConcatenateExpression", - "id": 6 - } - }, - "nested": { - "CaseExpression": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - } - } - }, - "ConcatenateExpression": { - "fields": { - "dimensionNames": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "delimiter": { - "type": "string", - "id": 2 - } - } - } - } - }, - "Metric": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "expression": { - "type": "string", - "id": 2 - }, - "invisible": { - "type": "bool", - "id": 3 - } - } - }, - "FilterExpression": { - "oneofs": { - "expr": { - "oneof": [ - "andGroup", - "orGroup", - "notExpression", - "filter" - ] - } - }, - "fields": { - "andGroup": { - "type": "FilterExpressionList", - "id": 1 - }, - "orGroup": { - "type": "FilterExpressionList", - "id": 2 - }, - "notExpression": { - "type": "FilterExpression", - "id": 3 - }, - "filter": { - "type": "Filter", - "id": 4 - } - } - }, - "FilterExpressionList": { - "fields": { - "expressions": { - "rule": "repeated", - "type": "FilterExpression", - "id": 1 - } - } - }, - "Filter": { - "oneofs": { - "oneFilter": { - "oneof": [ - "stringFilter", - "inListFilter", - "numericFilter", - "betweenFilter" - ] - } - }, - "fields": { - "fieldName": { - "type": "string", - "id": 1 - }, - "stringFilter": { - "type": "StringFilter", - "id": 3 - }, - "inListFilter": { - "type": "InListFilter", - "id": 4 - }, - "numericFilter": { - "type": "NumericFilter", - "id": 5 - }, - "betweenFilter": { - "type": "BetweenFilter", - "id": 6 - } - }, - "nested": { - "StringFilter": { - "fields": { - "matchType": { - "type": "MatchType", - "id": 1 - }, - "value": { - "type": "string", - "id": 2 - }, - "caseSensitive": { - "type": "bool", - "id": 3 - } - }, - "nested": { - "MatchType": { - "values": { - "MATCH_TYPE_UNSPECIFIED": 0, - "EXACT": 1, - "BEGINS_WITH": 2, - "ENDS_WITH": 3, - "CONTAINS": 4, - "FULL_REGEXP": 5, - "PARTIAL_REGEXP": 6 - } - } - } - }, - "InListFilter": { - "fields": { - "values": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "caseSensitive": { - "type": "bool", - "id": 2 - } - } - }, - "NumericFilter": { - "fields": { - "operation": { - "type": "Operation", - "id": 1 - }, - "value": { - "type": "NumericValue", - "id": 2 - } - }, - "nested": { - "Operation": { - "values": { - "OPERATION_UNSPECIFIED": 0, - "EQUAL": 1, - "LESS_THAN": 2, - "LESS_THAN_OR_EQUAL": 3, - "GREATER_THAN": 4, - "GREATER_THAN_OR_EQUAL": 5 - } - } - } - }, - "BetweenFilter": { - "fields": { - "fromValue": { - "type": "NumericValue", - "id": 1 - }, - "toValue": { - "type": "NumericValue", - "id": 2 - } - } - } - } - }, - "OrderBy": { - "oneofs": { - "oneOrderBy": { - "oneof": [ - "metric", - "dimension", - "pivot" - ] - } - }, - "fields": { - "metric": { - "type": "MetricOrderBy", - "id": 1 - }, - "dimension": { - "type": "DimensionOrderBy", - "id": 2 - }, - "pivot": { - "type": "PivotOrderBy", - "id": 3 - }, - "desc": { - "type": "bool", - "id": 4 - } - }, - "nested": { - "MetricOrderBy": { - "fields": { - "metricName": { - "type": "string", - "id": 1 - } - } - }, - "DimensionOrderBy": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - }, - "orderType": { - "type": "OrderType", - "id": 2 - } - }, - "nested": { - "OrderType": { - "values": { - "ORDER_TYPE_UNSPECIFIED": 0, - "ALPHANUMERIC": 1, - "CASE_INSENSITIVE_ALPHANUMERIC": 2, - "NUMERIC": 3 - } - } - } - }, - "PivotOrderBy": { - "fields": { - "metricName": { - "type": "string", - "id": 1 - }, - "pivotSelections": { - "rule": "repeated", - "type": "PivotSelection", - "id": 2 - } - }, - "nested": { - "PivotSelection": { - "fields": { - "dimensionName": { - "type": "string", - "id": 1 - }, - "dimensionValue": { - "type": "string", - "id": 2 - } - } - } - } - } - } - }, - "Pivot": { - "fields": { - "fieldNames": { - "rule": "repeated", - "type": "string", - "id": 1 - }, - "orderBys": { - "rule": "repeated", - "type": "OrderBy", - "id": 2 - }, - "offset": { - "type": "int64", - "id": 3 - }, - "limit": { - "type": "int64", - "id": 4 - }, - "metricAggregations": { - "rule": "repeated", - "type": "MetricAggregation", - "id": 5 - } - } - }, - "CohortSpec": { - "fields": { - "cohorts": { - "rule": "repeated", - "type": "Cohort", - "id": 1 - }, - "cohortsRange": { - "type": "CohortsRange", - "id": 2 - }, - "cohortReportSettings": { - "type": "CohortReportSettings", - "id": 3 - } - } - }, - "Cohort": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "dimension": { - "type": "string", - "id": 2 - }, - "dateRange": { - "type": "DateRange", - "id": 3 - } - } - }, - "CohortsRange": { - "fields": { - "granularity": { - "type": "Granularity", - "id": 1 - }, - "startOffset": { - "type": "int32", - "id": 2 - }, - "endOffset": { - "type": "int32", - "id": 3 - } - }, - "nested": { - "Granularity": { - "values": { - "GRANULARITY_UNSPECIFIED": 0, - "DAILY": 1, - "WEEKLY": 2, - "MONTHLY": 3 - } - } - } - }, - "CohortReportSettings": { - "fields": { - "accumulate": { - "type": "bool", - "id": 1 - } - } - }, - "ResponseMetaData": { - "oneofs": { - "_schemaRestrictionResponse": { - "oneof": [ - "schemaRestrictionResponse" - ] - }, - "_currencyCode": { - "oneof": [ - "currencyCode" - ] - }, - "_timeZone": { - "oneof": [ - "timeZone" - ] - }, - "_emptyReason": { - "oneof": [ - "emptyReason" - ] - } - }, - "fields": { - "dataLossFromOtherRow": { - "type": "bool", - "id": 3 - }, - "schemaRestrictionResponse": { - "type": "SchemaRestrictionResponse", - "id": 4, - "options": { - "proto3_optional": true - } - }, - "currencyCode": { - "type": "string", - "id": 5, - "options": { - "proto3_optional": true - } - }, - "timeZone": { - "type": "string", - "id": 6, - "options": { - "proto3_optional": true - } - }, - "emptyReason": { - "type": "string", - "id": 7, - "options": { - "proto3_optional": true - } - } - }, - "nested": { - "SchemaRestrictionResponse": { - "fields": { - "activeMetricRestrictions": { - "rule": "repeated", - "type": "ActiveMetricRestriction", - "id": 1 - } - }, - "nested": { - "ActiveMetricRestriction": { - "oneofs": { - "_metricName": { - "oneof": [ - "metricName" - ] - } - }, - "fields": { - "metricName": { - "type": "string", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "restrictedMetricTypes": { - "rule": "repeated", - "type": "RestrictedMetricType", - "id": 2 - } - } - } - } - } - } - }, - "DimensionHeader": { - "fields": { - "name": { - "type": "string", - "id": 1 - } - } - }, - "MetricHeader": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "type": { - "type": "MetricType", - "id": 2 - } - } - }, - "PivotHeader": { - "fields": { - "pivotDimensionHeaders": { - "rule": "repeated", - "type": "PivotDimensionHeader", - "id": 1 - }, - "rowCount": { - "type": "int32", - "id": 2 - } - } - }, - "PivotDimensionHeader": { - "fields": { - "dimensionValues": { - "rule": "repeated", - "type": "DimensionValue", - "id": 1 - } - } - }, - "Row": { - "fields": { - "dimensionValues": { - "rule": "repeated", - "type": "DimensionValue", - "id": 1 - }, - "metricValues": { - "rule": "repeated", - "type": "MetricValue", - "id": 2 - } - } - }, - "DimensionValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "value" - ] - } - }, - "fields": { - "value": { - "type": "string", - "id": 1 - } - } - }, - "MetricValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "value" - ] - } - }, - "fields": { - "value": { - "type": "string", - "id": 4 - } - } - }, - "NumericValue": { - "oneofs": { - "oneValue": { - "oneof": [ - "int64Value", - "doubleValue" - ] - } - }, - "fields": { - "int64Value": { - "type": "int64", - "id": 1 - }, - "doubleValue": { - "type": "double", - "id": 2 - } - } - }, - "PropertyQuota": { - "fields": { - "tokensPerDay": { - "type": "QuotaStatus", - "id": 1 - }, - "tokensPerHour": { - "type": "QuotaStatus", - "id": 2 - }, - "concurrentRequests": { - "type": "QuotaStatus", - "id": 3 - }, - "serverErrorsPerProjectPerHour": { - "type": "QuotaStatus", - "id": 4 - }, - "potentiallyThresholdedRequestsPerHour": { - "type": "QuotaStatus", - "id": 5 - } - } - }, - "QuotaStatus": { - "fields": { - "consumed": { - "type": "int32", - "id": 1 - }, - "remaining": { - "type": "int32", - "id": 2 - } - } - }, - "DimensionMetadata": { - "fields": { - "apiName": { - "type": "string", - "id": 1 - }, - "uiName": { - "type": "string", - "id": 2 - }, - "description": { - "type": "string", - "id": 3 - }, - "deprecatedApiNames": { - "rule": "repeated", - "type": "string", - "id": 4 - }, - "customDefinition": { - "type": "bool", - "id": 5 - }, - "category": { - "type": "string", - "id": 7 - } - } - }, - "MetricMetadata": { - "fields": { - "apiName": { - "type": "string", - "id": 1 - }, - "uiName": { - "type": "string", - "id": 2 - }, - "description": { - "type": "string", - "id": 3 - }, - "deprecatedApiNames": { - "rule": "repeated", - "type": "string", - "id": 4 - }, - "type": { - "type": "MetricType", - "id": 5 - }, - "expression": { - "type": "string", - "id": 6 - }, - "customDefinition": { - "type": "bool", - "id": 7 - }, - "blockedReasons": { - "rule": "repeated", - "type": "BlockedReason", - "id": 8 - }, - "category": { - "type": "string", - "id": 10 - } - }, - "nested": { - "BlockedReason": { - "values": { - "BLOCKED_REASON_UNSPECIFIED": 0, - "NO_REVENUE_METRICS": 1, - "NO_COST_METRICS": 2 - } - } - } - }, - "DimensionCompatibility": { - "oneofs": { - "_dimensionMetadata": { - "oneof": [ - "dimensionMetadata" - ] - }, - "_compatibility": { - "oneof": [ - "compatibility" - ] - } - }, - "fields": { - "dimensionMetadata": { - "type": "DimensionMetadata", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "compatibility": { - "type": "Compatibility", - "id": 2, - "options": { - "proto3_optional": true - } - } - } - }, - "MetricCompatibility": { - "oneofs": { - "_metricMetadata": { - "oneof": [ - "metricMetadata" - ] - }, - "_compatibility": { - "oneof": [ - "compatibility" - ] - } - }, - "fields": { - "metricMetadata": { - "type": "MetricMetadata", - "id": 1, - "options": { - "proto3_optional": true - } - }, - "compatibility": { - "type": "Compatibility", - "id": 2, - "options": { - "proto3_optional": true - } - } - } - }, - "MetricAggregation": { - "values": { - "METRIC_AGGREGATION_UNSPECIFIED": 0, - "TOTAL": 1, - "MINIMUM": 5, - "MAXIMUM": 6, - "COUNT": 4 - } - }, - "MetricType": { - "values": { - "METRIC_TYPE_UNSPECIFIED": 0, - "TYPE_INTEGER": 1, - "TYPE_FLOAT": 2, - "TYPE_SECONDS": 4, - "TYPE_MILLISECONDS": 5, - "TYPE_MINUTES": 6, - "TYPE_HOURS": 7, - "TYPE_STANDARD": 8, - "TYPE_CURRENCY": 9, - "TYPE_FEET": 10, - "TYPE_MILES": 11, - "TYPE_METERS": 12, - "TYPE_KILOMETERS": 13 - } - }, - "RestrictedMetricType": { - "values": { - "RESTRICTED_METRIC_TYPE_UNSPECIFIED": 0, - "COST_DATA": 1, - "REVENUE_DATA": 2 - } - }, - "Compatibility": { - "values": { - "COMPATIBILITY_UNSPECIFIED": 0, - "COMPATIBLE": 1, - "INCOMPATIBLE": 2 - } - } - } - } - } - } - } - }, - "api": { - "options": { - "go_package": "google.golang.org/genproto/googleapis/api/annotations;annotations", - "java_multiple_files": true, - "java_outer_classname": "ResourceProto", - "java_package": "com.google.api", - "objc_class_prefix": "GAPI", - "cc_enable_arenas": true - }, - "nested": { - "http": { - "type": "HttpRule", - "id": 72295728, - "extend": "google.protobuf.MethodOptions" - }, - "Http": { - "fields": { - "rules": { - "rule": "repeated", - "type": "HttpRule", - "id": 1 - }, - "fullyDecodeReservedExpansion": { - "type": "bool", - "id": 2 - } - } - }, - "HttpRule": { - "oneofs": { - "pattern": { - "oneof": [ - "get", - "put", - "post", - "delete", - "patch", - "custom" - ] - } - }, - "fields": { - "selector": { - "type": "string", - "id": 1 - }, - "get": { - "type": "string", - "id": 2 - }, - "put": { - "type": "string", - "id": 3 - }, - "post": { - "type": "string", - "id": 4 - }, - "delete": { - "type": "string", - "id": 5 - }, - "patch": { - "type": "string", - "id": 6 - }, - "custom": { - "type": "CustomHttpPattern", - "id": 8 - }, - "body": { - "type": "string", - "id": 7 - }, - "responseBody": { - "type": "string", - "id": 12 - }, - "additionalBindings": { - "rule": "repeated", - "type": "HttpRule", - "id": 11 - } - } - }, - "CustomHttpPattern": { - "fields": { - "kind": { - "type": "string", - "id": 1 - }, - "path": { - "type": "string", - "id": 2 - } - } - }, - "methodSignature": { - "rule": "repeated", - "type": "string", - "id": 1051, - "extend": "google.protobuf.MethodOptions" - }, - "defaultHost": { - "type": "string", - "id": 1049, - "extend": "google.protobuf.ServiceOptions" - }, - "oauthScopes": { - "type": "string", - "id": 1050, - "extend": "google.protobuf.ServiceOptions" - }, - "fieldBehavior": { - "rule": "repeated", - "type": "google.api.FieldBehavior", - "id": 1052, - "extend": "google.protobuf.FieldOptions" - }, - "FieldBehavior": { - "values": { - "FIELD_BEHAVIOR_UNSPECIFIED": 0, - "OPTIONAL": 1, - "REQUIRED": 2, - "OUTPUT_ONLY": 3, - "INPUT_ONLY": 4, - "IMMUTABLE": 5, - "UNORDERED_LIST": 6, - "NON_EMPTY_DEFAULT": 7 - } - }, - "resourceReference": { - "type": "google.api.ResourceReference", - "id": 1055, - "extend": "google.protobuf.FieldOptions" - }, - "resourceDefinition": { - "rule": "repeated", - "type": "google.api.ResourceDescriptor", - "id": 1053, - "extend": "google.protobuf.FileOptions" - }, - "resource": { - "type": "google.api.ResourceDescriptor", - "id": 1053, - "extend": "google.protobuf.MessageOptions" - }, - "ResourceDescriptor": { - "fields": { - "type": { - "type": "string", - "id": 1 - }, - "pattern": { - "rule": "repeated", - "type": "string", - "id": 2 - }, - "nameField": { - "type": "string", - "id": 3 - }, - "history": { - "type": "History", - "id": 4 - }, - "plural": { - "type": "string", - "id": 5 - }, - "singular": { - "type": "string", - "id": 6 - }, - "style": { - "rule": "repeated", - "type": "Style", - "id": 10 - } - }, - "nested": { - "History": { - "values": { - "HISTORY_UNSPECIFIED": 0, - "ORIGINALLY_SINGLE_PATTERN": 1, - "FUTURE_MULTI_PATTERN": 2 - } - }, - "Style": { - "values": { - "STYLE_UNSPECIFIED": 0, - "DECLARATIVE_FRIENDLY": 1 - } - } - } - }, - "ResourceReference": { - "fields": { - "type": { - "type": "string", - "id": 1 - }, - "childType": { - "type": "string", - "id": 2 - } - } - } - } - }, - "protobuf": { - "options": { - "go_package": "google.golang.org/protobuf/types/descriptorpb", - "java_package": "com.google.protobuf", - "java_outer_classname": "DescriptorProtos", - "csharp_namespace": "Google.Protobuf.Reflection", - "objc_class_prefix": "GPB", - "cc_enable_arenas": true, - "optimize_for": "SPEED" - }, - "nested": { - "FileDescriptorSet": { - "fields": { - "file": { - "rule": "repeated", - "type": "FileDescriptorProto", - "id": 1 - } - } - }, - "FileDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "package": { - "type": "string", - "id": 2 - }, - "dependency": { - "rule": "repeated", - "type": "string", - "id": 3 - }, - "publicDependency": { - "rule": "repeated", - "type": "int32", - "id": 10, - "options": { - "packed": false - } - }, - "weakDependency": { - "rule": "repeated", - "type": "int32", - "id": 11, - "options": { - "packed": false - } - }, - "messageType": { - "rule": "repeated", - "type": "DescriptorProto", - "id": 4 - }, - "enumType": { - "rule": "repeated", - "type": "EnumDescriptorProto", - "id": 5 - }, - "service": { - "rule": "repeated", - "type": "ServiceDescriptorProto", - "id": 6 - }, - "extension": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 7 - }, - "options": { - "type": "FileOptions", - "id": 8 - }, - "sourceCodeInfo": { - "type": "SourceCodeInfo", - "id": 9 - }, - "syntax": { - "type": "string", - "id": 12 - } - } - }, - "DescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "field": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 2 - }, - "extension": { - "rule": "repeated", - "type": "FieldDescriptorProto", - "id": 6 - }, - "nestedType": { - "rule": "repeated", - "type": "DescriptorProto", - "id": 3 - }, - "enumType": { - "rule": "repeated", - "type": "EnumDescriptorProto", - "id": 4 - }, - "extensionRange": { - "rule": "repeated", - "type": "ExtensionRange", - "id": 5 - }, - "oneofDecl": { - "rule": "repeated", - "type": "OneofDescriptorProto", - "id": 8 - }, - "options": { - "type": "MessageOptions", - "id": 7 - }, - "reservedRange": { - "rule": "repeated", - "type": "ReservedRange", - "id": 9 - }, - "reservedName": { - "rule": "repeated", - "type": "string", - "id": 10 - } - }, - "nested": { - "ExtensionRange": { - "fields": { - "start": { - "type": "int32", - "id": 1 - }, - "end": { - "type": "int32", - "id": 2 - }, - "options": { - "type": "ExtensionRangeOptions", - "id": 3 - } - } - }, - "ReservedRange": { - "fields": { - "start": { - "type": "int32", - "id": 1 - }, - "end": { - "type": "int32", - "id": 2 - } - } - } - } - }, - "ExtensionRangeOptions": { - "fields": { - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "FieldDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "number": { - "type": "int32", - "id": 3 - }, - "label": { - "type": "Label", - "id": 4 - }, - "type": { - "type": "Type", - "id": 5 - }, - "typeName": { - "type": "string", - "id": 6 - }, - "extendee": { - "type": "string", - "id": 2 - }, - "defaultValue": { - "type": "string", - "id": 7 - }, - "oneofIndex": { - "type": "int32", - "id": 9 - }, - "jsonName": { - "type": "string", - "id": 10 - }, - "options": { - "type": "FieldOptions", - "id": 8 - }, - "proto3Optional": { - "type": "bool", - "id": 17 - } - }, - "nested": { - "Type": { - "values": { - "TYPE_DOUBLE": 1, - "TYPE_FLOAT": 2, - "TYPE_INT64": 3, - "TYPE_UINT64": 4, - "TYPE_INT32": 5, - "TYPE_FIXED64": 6, - "TYPE_FIXED32": 7, - "TYPE_BOOL": 8, - "TYPE_STRING": 9, - "TYPE_GROUP": 10, - "TYPE_MESSAGE": 11, - "TYPE_BYTES": 12, - "TYPE_UINT32": 13, - "TYPE_ENUM": 14, - "TYPE_SFIXED32": 15, - "TYPE_SFIXED64": 16, - "TYPE_SINT32": 17, - "TYPE_SINT64": 18 - } - }, - "Label": { - "values": { - "LABEL_OPTIONAL": 1, - "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3 - } - } - } - }, - "OneofDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "options": { - "type": "OneofOptions", - "id": 2 - } - } - }, - "EnumDescriptorProto": { - "fields": { - "name": { - "type": "string", - "id": 1 - }, - "value": { - "rule": "repeated", - "type": "EnumValueDescriptorProto", - "id": 2 - }, - "options": { - "type": "EnumOptions", - "id": 3 - }, - "reservedRange": { - "rule": "repeated", - "type": "EnumReservedRange", - "id": 4 - }, - "reservedName": { - "rule": "repeated", - "type": "string", - "id": 5 - } - }, - "nested": { - "EnumReservedRange": { - "fields": { - "start": { - "type": "int32", - "id": 1 + "end": { + "type": "int32", + "id": 2 + } + } + } + } + }, + "ExtensionRangeOptions": { + "fields": { + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "FieldDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "number": { + "type": "int32", + "id": 3 + }, + "label": { + "type": "Label", + "id": 4 + }, + "type": { + "type": "Type", + "id": 5 + }, + "typeName": { + "type": "string", + "id": 6 + }, + "extendee": { + "type": "string", + "id": 2 + }, + "defaultValue": { + "type": "string", + "id": 7 + }, + "oneofIndex": { + "type": "int32", + "id": 9 + }, + "jsonName": { + "type": "string", + "id": 10 + }, + "options": { + "type": "FieldOptions", + "id": 8 + }, + "proto3Optional": { + "type": "bool", + "id": 17 + } + }, + "nested": { + "Type": { + "values": { + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18 + } + }, + "Label": { + "values": { + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3 + } + } + } + }, + "OneofDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "options": { + "type": "OneofOptions", + "id": 2 + } + } + }, + "EnumDescriptorProto": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "value": { + "rule": "repeated", + "type": "EnumValueDescriptorProto", + "id": 2 + }, + "options": { + "type": "EnumOptions", + "id": 3 + }, + "reservedRange": { + "rule": "repeated", + "type": "EnumReservedRange", + "id": 4 + }, + "reservedName": { + "rule": "repeated", + "type": "string", + "id": 5 + } + }, + "nested": { + "EnumReservedRange": { + "fields": { + "start": { + "type": "int32", + "id": 1 }, "end": { "type": "int32", @@ -3333,33 +535,251 @@ } } }, - "MessageOptions": { + "MessageOptions": { + "fields": { + "messageSetWireFormat": { + "type": "bool", + "id": 1, + "options": { + "default": false + } + }, + "noStandardDescriptorAccessor": { + "type": "bool", + "id": 2, + "options": { + "default": false + } + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "mapEntry": { + "type": "bool", + "id": 7 + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 4, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 6 + ], + [ + 8, + 8 + ], + [ + 9, + 9 + ] + ] + }, + "FieldOptions": { + "fields": { + "ctype": { + "type": "CType", + "id": 1, + "options": { + "default": "STRING" + } + }, + "packed": { + "type": "bool", + "id": 2 + }, + "jstype": { + "type": "JSType", + "id": 6, + "options": { + "default": "JS_NORMAL" + } + }, + "lazy": { + "type": "bool", + "id": 5, + "options": { + "default": false + } + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "weak": { + "type": "bool", + "id": 10, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 4, + 4 + ] + ], + "nested": { + "CType": { + "values": { + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2 + } + }, + "JSType": { + "values": { + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2 + } + } + } + }, + "OneofOptions": { + "fields": { + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "EnumOptions": { + "fields": { + "allowAlias": { + "type": "bool", + "id": 2 + }, + "deprecated": { + "type": "bool", + "id": 3, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ], + "reserved": [ + [ + 5, + 5 + ] + ] + }, + "EnumValueOptions": { + "fields": { + "deprecated": { + "type": "bool", + "id": 1, + "options": { + "default": false + } + }, + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "ServiceOptions": { "fields": { - "messageSetWireFormat": { + "deprecated": { "type": "bool", - "id": 1, + "id": 33, "options": { "default": false } }, - "noStandardDescriptorAccessor": { + "uninterpretedOption": { + "rule": "repeated", + "type": "UninterpretedOption", + "id": 999 + } + }, + "extensions": [ + [ + 1000, + 536870911 + ] + ] + }, + "MethodOptions": { + "fields": { + "deprecated": { "type": "bool", - "id": 2, + "id": 33, "options": { "default": false } }, - "deprecated": { - "type": "bool", - "id": 3, + "idempotencyLevel": { + "type": "IdempotencyLevel", + "id": 34, "options": { - "default": false + "default": "IDEMPOTENCY_UNKNOWN" } }, - "mapEntry": { - "type": "bool", - "id": 7 - }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -3372,350 +792,3065 @@ 536870911 ] ], - "reserved": [ - [ - 4, - 4 - ], - [ - 5, - 5 - ], - [ - 6, - 6 - ], - [ - 8, - 8 - ], - [ - 9, - 9 - ] - ] + "nested": { + "IdempotencyLevel": { + "values": { + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2 + } + } + } }, - "FieldOptions": { + "UninterpretedOption": { "fields": { - "ctype": { - "type": "CType", - "id": 1, - "options": { - "default": "STRING" - } - }, - "packed": { - "type": "bool", + "name": { + "rule": "repeated", + "type": "NamePart", "id": 2 }, - "jstype": { - "type": "JSType", - "id": 6, - "options": { - "default": "JS_NORMAL" - } + "identifierValue": { + "type": "string", + "id": 3 }, - "lazy": { - "type": "bool", - "id": 5, - "options": { - "default": false - } + "positiveIntValue": { + "type": "uint64", + "id": 4 }, - "deprecated": { - "type": "bool", - "id": 3, + "negativeIntValue": { + "type": "int64", + "id": 5 + }, + "doubleValue": { + "type": "double", + "id": 6 + }, + "stringValue": { + "type": "bytes", + "id": 7 + }, + "aggregateValue": { + "type": "string", + "id": 8 + } + }, + "nested": { + "NamePart": { + "fields": { + "namePart": { + "rule": "required", + "type": "string", + "id": 1 + }, + "isExtension": { + "rule": "required", + "type": "bool", + "id": 2 + } + } + } + } + }, + "SourceCodeInfo": { + "fields": { + "location": { + "rule": "repeated", + "type": "Location", + "id": 1 + } + }, + "nested": { + "Location": { + "fields": { + "path": { + "rule": "repeated", + "type": "int32", + "id": 1 + }, + "span": { + "rule": "repeated", + "type": "int32", + "id": 2 + }, + "leadingComments": { + "type": "string", + "id": 3 + }, + "trailingComments": { + "type": "string", + "id": 4 + }, + "leadingDetachedComments": { + "rule": "repeated", + "type": "string", + "id": 6 + } + } + } + } + }, + "GeneratedCodeInfo": { + "fields": { + "annotation": { + "rule": "repeated", + "type": "Annotation", + "id": 1 + } + }, + "nested": { + "Annotation": { + "fields": { + "path": { + "rule": "repeated", + "type": "int32", + "id": 1 + }, + "sourceFile": { + "type": "string", + "id": 2 + }, + "begin": { + "type": "int32", + "id": 3 + }, + "end": { + "type": "int32", + "id": 4 + } + } + } + } + } + } + }, + "analytics": { + "nested": { + "data": { + "nested": { + "v1alpha": { "options": { - "default": false + "go_package": "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data", + "java_multiple_files": true, + "java_outer_classname": "ReportingApiProto", + "java_package": "com.google.analytics.data.v1alpha" + }, + "nested": { + "AlphaAnalyticsData": { + "options": { + "(google.api.default_host)": "analyticsdata.googleapis.com", + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly" + }, + "methods": { + "RunFunnelReport": { + "requestType": "RunFunnelReportRequest", + "responseType": "RunFunnelReportResponse", + "options": { + "(google.api.http).post": "/v1alpha/{property=properties/*}:runFunnelReport", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1alpha/{property=properties/*}:runFunnelReport", + "body": "*" + } + } + ] + } + } + }, + "RunFunnelReportRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "dateRanges": { + "rule": "repeated", + "type": "DateRange", + "id": 2 + }, + "funnel": { + "type": "Funnel", + "id": 3 + }, + "funnelBreakdown": { + "type": "FunnelBreakdown", + "id": 4 + }, + "funnelNextAction": { + "type": "FunnelNextAction", + "id": 5 + }, + "funnelVisualizationType": { + "type": "FunnelVisualizationType", + "id": 6 + }, + "segments": { + "rule": "repeated", + "type": "Segment", + "id": 7 + }, + "limit": { + "type": "int64", + "id": 9 + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 10 + }, + "returnPropertyQuota": { + "type": "bool", + "id": 12 + } + }, + "nested": { + "FunnelVisualizationType": { + "values": { + "FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED": 0, + "STANDARD_FUNNEL": 1, + "TRENDED_FUNNEL": 2 + } + } + } + }, + "RunFunnelReportResponse": { + "fields": { + "funnelTable": { + "type": "FunnelSubReport", + "id": 1 + }, + "funnelVisualization": { + "type": "FunnelSubReport", + "id": 2 + }, + "propertyQuota": { + "type": "PropertyQuota", + "id": 3 + }, + "kind": { + "type": "string", + "id": 4 + } + } + }, + "DateRange": { + "fields": { + "startDate": { + "type": "string", + "id": 1 + }, + "endDate": { + "type": "string", + "id": 2 + }, + "name": { + "type": "string", + "id": 3 + } + } + }, + "Dimension": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "dimensionExpression": { + "type": "DimensionExpression", + "id": 2 + } + } + }, + "DimensionExpression": { + "oneofs": { + "oneExpression": { + "oneof": [ + "lowerCase", + "upperCase", + "concatenate" + ] + } + }, + "fields": { + "lowerCase": { + "type": "CaseExpression", + "id": 4 + }, + "upperCase": { + "type": "CaseExpression", + "id": 5 + }, + "concatenate": { + "type": "ConcatenateExpression", + "id": 6 + } + }, + "nested": { + "CaseExpression": { + "fields": { + "dimensionName": { + "type": "string", + "id": 1 + } + } + }, + "ConcatenateExpression": { + "fields": { + "dimensionNames": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "delimiter": { + "type": "string", + "id": 2 + } + } + } + } + }, + "FilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "filter" + ] + } + }, + "fields": { + "andGroup": { + "type": "FilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "FilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "FilterExpression", + "id": 3 + }, + "filter": { + "type": "Filter", + "id": 4 + } + } + }, + "FilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "FilterExpression", + "id": 1 + } + } + }, + "Filter": { + "oneofs": { + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "fieldName": { + "type": "string", + "id": 1 + }, + "stringFilter": { + "type": "StringFilter", + "id": 2 + }, + "inListFilter": { + "type": "InListFilter", + "id": 3 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 4 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 5 + } + } + }, + "StringFilter": { + "fields": { + "matchType": { + "type": "MatchType", + "id": 1 + }, + "value": { + "type": "string", + "id": 2 + }, + "caseSensitive": { + "type": "bool", + "id": 3 + } + }, + "nested": { + "MatchType": { + "values": { + "MATCH_TYPE_UNSPECIFIED": 0, + "EXACT": 1, + "BEGINS_WITH": 2, + "ENDS_WITH": 3, + "CONTAINS": 4, + "FULL_REGEXP": 5, + "PARTIAL_REGEXP": 6 + } + } + } + }, + "InListFilter": { + "fields": { + "values": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "caseSensitive": { + "type": "bool", + "id": 2 + } + } + }, + "NumericFilter": { + "fields": { + "operation": { + "type": "Operation", + "id": 1 + }, + "value": { + "type": "NumericValue", + "id": 2 + } + }, + "nested": { + "Operation": { + "values": { + "OPERATION_UNSPECIFIED": 0, + "EQUAL": 1, + "LESS_THAN": 2, + "LESS_THAN_OR_EQUAL": 3, + "GREATER_THAN": 4, + "GREATER_THAN_OR_EQUAL": 5 + } + } + } + }, + "BetweenFilter": { + "fields": { + "fromValue": { + "type": "NumericValue", + "id": 1 + }, + "toValue": { + "type": "NumericValue", + "id": 2 + } + } + }, + "NumericValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "int64Value", + "doubleValue" + ] + } + }, + "fields": { + "int64Value": { + "type": "int64", + "id": 1 + }, + "doubleValue": { + "type": "double", + "id": 2 + } + } + }, + "DimensionHeader": { + "fields": { + "name": { + "type": "string", + "id": 1 + } + } + }, + "MetricHeader": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "type": { + "type": "MetricType", + "id": 2 + } + } + }, + "Row": { + "fields": { + "dimensionValues": { + "rule": "repeated", + "type": "DimensionValue", + "id": 1 + }, + "metricValues": { + "rule": "repeated", + "type": "MetricValue", + "id": 2 + } + } + }, + "DimensionValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "value" + ] + } + }, + "fields": { + "value": { + "type": "string", + "id": 1 + } + } + }, + "MetricValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "value" + ] + } + }, + "fields": { + "value": { + "type": "string", + "id": 4 + } + } + }, + "PropertyQuota": { + "fields": { + "tokensPerDay": { + "type": "QuotaStatus", + "id": 1 + }, + "tokensPerHour": { + "type": "QuotaStatus", + "id": 2 + }, + "concurrentRequests": { + "type": "QuotaStatus", + "id": 3 + }, + "serverErrorsPerProjectPerHour": { + "type": "QuotaStatus", + "id": 4 + }, + "potentiallyThresholdedRequestsPerHour": { + "type": "QuotaStatus", + "id": 5 + } + } + }, + "QuotaStatus": { + "fields": { + "consumed": { + "type": "int32", + "id": 1 + }, + "remaining": { + "type": "int32", + "id": 2 + } + } + }, + "FunnelBreakdown": { + "oneofs": { + "_limit": { + "oneof": [ + "limit" + ] + } + }, + "fields": { + "breakdownDimension": { + "type": "Dimension", + "id": 1 + }, + "limit": { + "type": "int64", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "FunnelNextAction": { + "oneofs": { + "_limit": { + "oneof": [ + "limit" + ] + } + }, + "fields": { + "nextActionDimension": { + "type": "Dimension", + "id": 1 + }, + "limit": { + "type": "int64", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "Funnel": { + "fields": { + "isOpenFunnel": { + "type": "bool", + "id": 1 + }, + "steps": { + "rule": "repeated", + "type": "FunnelStep", + "id": 2 + } + } + }, + "FunnelStep": { + "oneofs": { + "_withinDurationFromPriorStep": { + "oneof": [ + "withinDurationFromPriorStep" + ] + } + }, + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "isDirectlyFollowedBy": { + "type": "bool", + "id": 2 + }, + "withinDurationFromPriorStep": { + "type": "google.protobuf.Duration", + "id": 3, + "options": { + "proto3_optional": true + } + }, + "filterExpression": { + "type": "FunnelFilterExpression", + "id": 4 + } + } + }, + "FunnelSubReport": { + "fields": { + "dimensionHeaders": { + "rule": "repeated", + "type": "DimensionHeader", + "id": 1 + }, + "metricHeaders": { + "rule": "repeated", + "type": "MetricHeader", + "id": 2 + }, + "rows": { + "rule": "repeated", + "type": "Row", + "id": 3 + }, + "metadata": { + "type": "FunnelResponseMetadata", + "id": 4 + } + } + }, + "UserSegment": { + "fields": { + "userInclusionCriteria": { + "type": "UserSegmentCriteria", + "id": 1 + }, + "exclusion": { + "type": "UserSegmentExclusion", + "id": 2 + } + } + }, + "UserSegmentCriteria": { + "fields": { + "andConditionGroups": { + "rule": "repeated", + "type": "UserSegmentConditionGroup", + "id": 1 + }, + "andSequenceGroups": { + "rule": "repeated", + "type": "UserSegmentSequenceGroup", + "id": 2 + } + } + }, + "UserCriteriaScoping": { + "values": { + "USER_CRITERIA_SCOPING_UNSPECIFIED": 0, + "USER_CRITERIA_WITHIN_SAME_EVENT": 1, + "USER_CRITERIA_WITHIN_SAME_SESSION": 2, + "USER_CRITERIA_ACROSS_ALL_SESSIONS": 3 + } + }, + "UserSegmentConditionGroup": { + "fields": { + "conditionScoping": { + "type": "UserCriteriaScoping", + "id": 1 + }, + "segmentFilterExpression": { + "type": "SegmentFilterExpression", + "id": 2 + } + } + }, + "UserSegmentSequenceGroup": { + "fields": { + "sequenceScoping": { + "type": "UserCriteriaScoping", + "id": 1 + }, + "sequenceMaximumDuration": { + "type": "google.protobuf.Duration", + "id": 2 + }, + "userSequenceSteps": { + "rule": "repeated", + "type": "UserSequenceStep", + "id": 3 + } + } + }, + "UserSequenceStep": { + "fields": { + "isDirectlyFollowedBy": { + "type": "bool", + "id": 1 + }, + "stepScoping": { + "type": "UserCriteriaScoping", + "id": 2 + }, + "segmentFilterExpression": { + "type": "SegmentFilterExpression", + "id": 3 + } + } + }, + "UserSegmentExclusion": { + "fields": { + "userExclusionDuration": { + "type": "UserExclusionDuration", + "id": 1 + }, + "userExclusionCriteria": { + "type": "UserSegmentCriteria", + "id": 2 + } + } + }, + "UserExclusionDuration": { + "values": { + "USER_EXCLUSION_DURATION_UNSPECIFIED": 0, + "USER_EXCLUSION_TEMPORARY": 1, + "USER_EXCLUSION_PERMANENT": 2 + } + }, + "SessionSegment": { + "fields": { + "sessionInclusionCriteria": { + "type": "SessionSegmentCriteria", + "id": 1 + }, + "exclusion": { + "type": "SessionSegmentExclusion", + "id": 2 + } + } + }, + "SessionSegmentCriteria": { + "fields": { + "andConditionGroups": { + "rule": "repeated", + "type": "SessionSegmentConditionGroup", + "id": 1 + } + } + }, + "SessionCriteriaScoping": { + "values": { + "SESSION_CRITERIA_SCOPING_UNSPECIFIED": 0, + "SESSION_CRITERIA_WITHIN_SAME_EVENT": 1, + "SESSION_CRITERIA_WITHIN_SAME_SESSION": 2 + } + }, + "SessionSegmentConditionGroup": { + "fields": { + "conditionScoping": { + "type": "SessionCriteriaScoping", + "id": 1 + }, + "segmentFilterExpression": { + "type": "SegmentFilterExpression", + "id": 2 + } + } + }, + "SessionSegmentExclusion": { + "fields": { + "sessionExclusionDuration": { + "type": "SessionExclusionDuration", + "id": 1 + }, + "sessionExclusionCriteria": { + "type": "SessionSegmentCriteria", + "id": 2 + } + } + }, + "SessionExclusionDuration": { + "values": { + "SESSION_EXCLUSION_DURATION_UNSPECIFIED": 0, + "SESSION_EXCLUSION_TEMPORARY": 1, + "SESSION_EXCLUSION_PERMANENT": 2 + } + }, + "EventSegment": { + "fields": { + "eventInclusionCriteria": { + "type": "EventSegmentCriteria", + "id": 1 + }, + "exclusion": { + "type": "EventSegmentExclusion", + "id": 2 + } + } + }, + "EventSegmentCriteria": { + "fields": { + "andConditionGroups": { + "rule": "repeated", + "type": "EventSegmentConditionGroup", + "id": 1 + } + } + }, + "EventCriteriaScoping": { + "values": { + "EVENT_CRITERIA_SCOPING_UNSPECIFIED": 0, + "EVENT_CRITERIA_WITHIN_SAME_EVENT": 1 + } + }, + "EventSegmentConditionGroup": { + "fields": { + "conditionScoping": { + "type": "EventCriteriaScoping", + "id": 1 + }, + "segmentFilterExpression": { + "type": "SegmentFilterExpression", + "id": 2 + } + } + }, + "EventSegmentExclusion": { + "fields": { + "eventExclusionDuration": { + "type": "EventExclusionDuration", + "id": 1 + }, + "eventExclusionCriteria": { + "type": "EventSegmentCriteria", + "id": 2 + } + } + }, + "EventExclusionDuration": { + "values": { + "EVENT_EXCLUSION_DURATION_UNSPECIFIED": 0, + "EVENT_EXCLUSION_PERMANENT": 1 + } + }, + "Segment": { + "oneofs": { + "oneSegmentScope": { + "oneof": [ + "userSegment", + "sessionSegment", + "eventSegment" + ] + } + }, + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "userSegment": { + "type": "UserSegment", + "id": 2 + }, + "sessionSegment": { + "type": "SessionSegment", + "id": 3 + }, + "eventSegment": { + "type": "EventSegment", + "id": 4 + } + } + }, + "SegmentFilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "segmentFilter", + "segmentEventFilter" + ] + } + }, + "fields": { + "andGroup": { + "type": "SegmentFilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "SegmentFilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "SegmentFilterExpression", + "id": 3 + }, + "segmentFilter": { + "type": "SegmentFilter", + "id": 4 + }, + "segmentEventFilter": { + "type": "SegmentEventFilter", + "id": 5 + } + } + }, + "SegmentFilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "SegmentFilterExpression", + "id": 1 + } + } + }, + "SegmentFilter": { + "oneofs": { + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "fieldName": { + "type": "string", + "id": 1 + }, + "stringFilter": { + "type": "StringFilter", + "id": 4 + }, + "inListFilter": { + "type": "InListFilter", + "id": 5 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 6 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 7 + }, + "filterScoping": { + "type": "SegmentFilterScoping", + "id": 8 + } + } + }, + "SegmentFilterScoping": { + "oneofs": { + "_atAnyPointInTime": { + "oneof": [ + "atAnyPointInTime" + ] + } + }, + "fields": { + "atAnyPointInTime": { + "type": "bool", + "id": 1, + "options": { + "proto3_optional": true + } + } + } + }, + "SegmentEventFilter": { + "oneofs": { + "_eventName": { + "oneof": [ + "eventName" + ] + }, + "_segmentParameterFilterExpression": { + "oneof": [ + "segmentParameterFilterExpression" + ] + } + }, + "fields": { + "eventName": { + "type": "string", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "segmentParameterFilterExpression": { + "type": "SegmentParameterFilterExpression", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "SegmentParameterFilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "segmentParameterFilter" + ] + } + }, + "fields": { + "andGroup": { + "type": "SegmentParameterFilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "SegmentParameterFilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "SegmentParameterFilterExpression", + "id": 3 + }, + "segmentParameterFilter": { + "type": "SegmentParameterFilter", + "id": 4 + } + } + }, + "SegmentParameterFilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "SegmentParameterFilterExpression", + "id": 1 + } + } + }, + "SegmentParameterFilter": { + "oneofs": { + "oneParameter": { + "oneof": [ + "eventParameterName", + "itemParameterName" + ] + }, + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "eventParameterName": { + "type": "string", + "id": 1 + }, + "itemParameterName": { + "type": "string", + "id": 2 + }, + "stringFilter": { + "type": "StringFilter", + "id": 4 + }, + "inListFilter": { + "type": "InListFilter", + "id": 5 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 6 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 7 + }, + "filterScoping": { + "type": "SegmentParameterFilterScoping", + "id": 8 + } + } + }, + "SegmentParameterFilterScoping": { + "oneofs": { + "_inAnyNDayPeriod": { + "oneof": [ + "inAnyNDayPeriod" + ] + } + }, + "fields": { + "inAnyNDayPeriod": { + "type": "int64", + "id": 1, + "options": { + "proto3_optional": true + } + } + } + }, + "FunnelFilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "funnelFilter", + "funnelEventFilter" + ] + } + }, + "fields": { + "andGroup": { + "type": "FunnelFilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "FunnelFilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "FunnelFilterExpression", + "id": 3 + }, + "funnelFilter": { + "type": "FunnelFilter", + "id": 4 + }, + "funnelEventFilter": { + "type": "FunnelEventFilter", + "id": 5 + } + } + }, + "FunnelFilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "FunnelFilterExpression", + "id": 1 + } + } + }, + "FunnelFilter": { + "oneofs": { + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "fieldName": { + "type": "string", + "id": 1 + }, + "stringFilter": { + "type": "StringFilter", + "id": 4 + }, + "inListFilter": { + "type": "InListFilter", + "id": 5 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 6 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 7 + } + } + }, + "FunnelEventFilter": { + "oneofs": { + "_eventName": { + "oneof": [ + "eventName" + ] + }, + "_funnelParameterFilterExpression": { + "oneof": [ + "funnelParameterFilterExpression" + ] + } + }, + "fields": { + "eventName": { + "type": "string", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "funnelParameterFilterExpression": { + "type": "FunnelParameterFilterExpression", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "FunnelParameterFilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "funnelParameterFilter" + ] + } + }, + "fields": { + "andGroup": { + "type": "FunnelParameterFilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "FunnelParameterFilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "FunnelParameterFilterExpression", + "id": 3 + }, + "funnelParameterFilter": { + "type": "FunnelParameterFilter", + "id": 4 + } + } + }, + "FunnelParameterFilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "FunnelParameterFilterExpression", + "id": 1 + } + } + }, + "FunnelParameterFilter": { + "oneofs": { + "oneParameter": { + "oneof": [ + "eventParameterName", + "itemParameterName" + ] + }, + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "eventParameterName": { + "type": "string", + "id": 1 + }, + "itemParameterName": { + "type": "string", + "id": 2 + }, + "stringFilter": { + "type": "StringFilter", + "id": 4 + }, + "inListFilter": { + "type": "InListFilter", + "id": 5 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 6 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 7 + } + } + }, + "FunnelResponseMetadata": { + "fields": { + "samplingMetadatas": { + "rule": "repeated", + "type": "SamplingMetadata", + "id": 1 + } + } + }, + "SamplingMetadata": { + "fields": { + "samplesReadCount": { + "type": "int64", + "id": 1 + }, + "samplingSpaceSize": { + "type": "int64", + "id": 2 + } + } + }, + "MetricType": { + "values": { + "METRIC_TYPE_UNSPECIFIED": 0, + "TYPE_INTEGER": 1, + "TYPE_FLOAT": 2, + "TYPE_SECONDS": 4, + "TYPE_MILLISECONDS": 5, + "TYPE_MINUTES": 6, + "TYPE_HOURS": 7, + "TYPE_STANDARD": 8, + "TYPE_CURRENCY": 9, + "TYPE_FEET": 10, + "TYPE_MILES": 11, + "TYPE_METERS": 12, + "TYPE_KILOMETERS": 13 + } + } } }, - "weak": { - "type": "bool", - "id": 10, + "v1beta": { "options": { - "default": false - } - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "reserved": [ - [ - 4, - 4 - ] - ], - "nested": { - "CType": { - "values": { - "STRING": 0, - "CORD": 1, - "STRING_PIECE": 2 - } - }, - "JSType": { - "values": { - "JS_NORMAL": 0, - "JS_STRING": 1, - "JS_NUMBER": 2 + "go_package": "google.golang.org/genproto/googleapis/analytics/data/v1beta;data", + "java_multiple_files": true, + "java_outer_classname": "ReportingApiProto", + "java_package": "com.google.analytics.data.v1beta" + }, + "nested": { + "BetaAnalyticsData": { + "options": { + "(google.api.default_host)": "analyticsdata.googleapis.com", + "(google.api.oauth_scopes)": "https://www.googleapis.com/auth/analytics,https://www.googleapis.com/auth/analytics.readonly" + }, + "methods": { + "RunReport": { + "requestType": "RunReportRequest", + "responseType": "RunReportResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:runReport", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:runReport", + "body": "*" + } + } + ] + }, + "RunPivotReport": { + "requestType": "RunPivotReportRequest", + "responseType": "RunPivotReportResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:runPivotReport", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:runPivotReport", + "body": "*" + } + } + ] + }, + "BatchRunReports": { + "requestType": "BatchRunReportsRequest", + "responseType": "BatchRunReportsResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:batchRunReports", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:batchRunReports", + "body": "*" + } + } + ] + }, + "BatchRunPivotReports": { + "requestType": "BatchRunPivotReportsRequest", + "responseType": "BatchRunPivotReportsResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:batchRunPivotReports", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:batchRunPivotReports", + "body": "*" + } + } + ] + }, + "GetMetadata": { + "requestType": "GetMetadataRequest", + "responseType": "Metadata", + "options": { + "(google.api.http).get": "/v1beta/{name=properties/*/metadata}", + "(google.api.method_signature)": "name" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1beta/{name=properties/*/metadata}" + } + }, + { + "(google.api.method_signature)": "name" + } + ] + }, + "RunRealtimeReport": { + "requestType": "RunRealtimeReportRequest", + "responseType": "RunRealtimeReportResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:runRealtimeReport", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:runRealtimeReport", + "body": "*" + } + } + ] + }, + "CheckCompatibility": { + "requestType": "CheckCompatibilityRequest", + "responseType": "CheckCompatibilityResponse", + "options": { + "(google.api.http).post": "/v1beta/{property=properties/*}:checkCompatibility", + "(google.api.http).body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{property=properties/*}:checkCompatibility", + "body": "*" + } + } + ] + } + } + }, + "CheckCompatibilityRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "dimensions": { + "rule": "repeated", + "type": "Dimension", + "id": 2 + }, + "metrics": { + "rule": "repeated", + "type": "Metric", + "id": 3 + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 4 + }, + "metricFilter": { + "type": "FilterExpression", + "id": 5 + }, + "compatibilityFilter": { + "type": "Compatibility", + "id": 6 + } + } + }, + "CheckCompatibilityResponse": { + "fields": { + "dimensionCompatibilities": { + "rule": "repeated", + "type": "DimensionCompatibility", + "id": 1 + }, + "metricCompatibilities": { + "rule": "repeated", + "type": "MetricCompatibility", + "id": 2 + } + } + }, + "Metadata": { + "options": { + "(google.api.resource).type": "analyticsdata.googleapis.com/Metadata", + "(google.api.resource).pattern": "properties/{property}/metadata" + }, + "fields": { + "name": { + "type": "string", + "id": 3 + }, + "dimensions": { + "rule": "repeated", + "type": "DimensionMetadata", + "id": 1 + }, + "metrics": { + "rule": "repeated", + "type": "MetricMetadata", + "id": 2 + } + } + }, + "RunReportRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "dimensions": { + "rule": "repeated", + "type": "Dimension", + "id": 2 + }, + "metrics": { + "rule": "repeated", + "type": "Metric", + "id": 3 + }, + "dateRanges": { + "rule": "repeated", + "type": "DateRange", + "id": 4 + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 5 + }, + "metricFilter": { + "type": "FilterExpression", + "id": 6 + }, + "offset": { + "type": "int64", + "id": 7 + }, + "limit": { + "type": "int64", + "id": 8 + }, + "metricAggregations": { + "rule": "repeated", + "type": "MetricAggregation", + "id": 9 + }, + "orderBys": { + "rule": "repeated", + "type": "OrderBy", + "id": 10 + }, + "currencyCode": { + "type": "string", + "id": 11 + }, + "cohortSpec": { + "type": "CohortSpec", + "id": 12 + }, + "keepEmptyRows": { + "type": "bool", + "id": 13 + }, + "returnPropertyQuota": { + "type": "bool", + "id": 14 + } + } + }, + "RunReportResponse": { + "fields": { + "dimensionHeaders": { + "rule": "repeated", + "type": "DimensionHeader", + "id": 1 + }, + "metricHeaders": { + "rule": "repeated", + "type": "MetricHeader", + "id": 2 + }, + "rows": { + "rule": "repeated", + "type": "Row", + "id": 3 + }, + "totals": { + "rule": "repeated", + "type": "Row", + "id": 4 + }, + "maximums": { + "rule": "repeated", + "type": "Row", + "id": 5 + }, + "minimums": { + "rule": "repeated", + "type": "Row", + "id": 6 + }, + "rowCount": { + "type": "int32", + "id": 7 + }, + "metadata": { + "type": "ResponseMetaData", + "id": 8 + }, + "propertyQuota": { + "type": "PropertyQuota", + "id": 9 + }, + "kind": { + "type": "string", + "id": 10 + } + } + }, + "RunPivotReportRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "dimensions": { + "rule": "repeated", + "type": "Dimension", + "id": 2 + }, + "metrics": { + "rule": "repeated", + "type": "Metric", + "id": 3 + }, + "dateRanges": { + "rule": "repeated", + "type": "DateRange", + "id": 4 + }, + "pivots": { + "rule": "repeated", + "type": "Pivot", + "id": 5 + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 6 + }, + "metricFilter": { + "type": "FilterExpression", + "id": 7 + }, + "currencyCode": { + "type": "string", + "id": 8 + }, + "cohortSpec": { + "type": "CohortSpec", + "id": 9 + }, + "keepEmptyRows": { + "type": "bool", + "id": 10 + }, + "returnPropertyQuota": { + "type": "bool", + "id": 11 + } + } + }, + "RunPivotReportResponse": { + "fields": { + "pivotHeaders": { + "rule": "repeated", + "type": "PivotHeader", + "id": 1 + }, + "dimensionHeaders": { + "rule": "repeated", + "type": "DimensionHeader", + "id": 2 + }, + "metricHeaders": { + "rule": "repeated", + "type": "MetricHeader", + "id": 3 + }, + "rows": { + "rule": "repeated", + "type": "Row", + "id": 4 + }, + "aggregates": { + "rule": "repeated", + "type": "Row", + "id": 5 + }, + "metadata": { + "type": "ResponseMetaData", + "id": 6 + }, + "propertyQuota": { + "type": "PropertyQuota", + "id": 7 + }, + "kind": { + "type": "string", + "id": 8 + } + } + }, + "BatchRunReportsRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "requests": { + "rule": "repeated", + "type": "RunReportRequest", + "id": 2 + } + } + }, + "BatchRunReportsResponse": { + "fields": { + "reports": { + "rule": "repeated", + "type": "RunReportResponse", + "id": 1 + }, + "kind": { + "type": "string", + "id": 2 + } + } + }, + "BatchRunPivotReportsRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "requests": { + "rule": "repeated", + "type": "RunPivotReportRequest", + "id": 2 + } + } + }, + "BatchRunPivotReportsResponse": { + "fields": { + "pivotReports": { + "rule": "repeated", + "type": "RunPivotReportResponse", + "id": 1 + }, + "kind": { + "type": "string", + "id": 2 + } + } + }, + "GetMetadataRequest": { + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "analyticsdata.googleapis.com/Metadata" + } + } + } + }, + "RunRealtimeReportRequest": { + "fields": { + "property": { + "type": "string", + "id": 1 + }, + "dimensions": { + "rule": "repeated", + "type": "Dimension", + "id": 2 + }, + "metrics": { + "rule": "repeated", + "type": "Metric", + "id": 3 + }, + "dimensionFilter": { + "type": "FilterExpression", + "id": 4 + }, + "metricFilter": { + "type": "FilterExpression", + "id": 5 + }, + "limit": { + "type": "int64", + "id": 6 + }, + "metricAggregations": { + "rule": "repeated", + "type": "MetricAggregation", + "id": 7 + }, + "orderBys": { + "rule": "repeated", + "type": "OrderBy", + "id": 8 + }, + "returnPropertyQuota": { + "type": "bool", + "id": 9 + }, + "minuteRanges": { + "rule": "repeated", + "type": "MinuteRange", + "id": 10 + } + } + }, + "RunRealtimeReportResponse": { + "fields": { + "dimensionHeaders": { + "rule": "repeated", + "type": "DimensionHeader", + "id": 1 + }, + "metricHeaders": { + "rule": "repeated", + "type": "MetricHeader", + "id": 2 + }, + "rows": { + "rule": "repeated", + "type": "Row", + "id": 3 + }, + "totals": { + "rule": "repeated", + "type": "Row", + "id": 4 + }, + "maximums": { + "rule": "repeated", + "type": "Row", + "id": 5 + }, + "minimums": { + "rule": "repeated", + "type": "Row", + "id": 6 + }, + "rowCount": { + "type": "int32", + "id": 7 + }, + "propertyQuota": { + "type": "PropertyQuota", + "id": 8 + }, + "kind": { + "type": "string", + "id": 9 + } + } + }, + "DateRange": { + "fields": { + "startDate": { + "type": "string", + "id": 1 + }, + "endDate": { + "type": "string", + "id": 2 + }, + "name": { + "type": "string", + "id": 3 + } + } + }, + "MinuteRange": { + "oneofs": { + "_startMinutesAgo": { + "oneof": [ + "startMinutesAgo" + ] + }, + "_endMinutesAgo": { + "oneof": [ + "endMinutesAgo" + ] + } + }, + "fields": { + "startMinutesAgo": { + "type": "int32", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "endMinutesAgo": { + "type": "int32", + "id": 2, + "options": { + "proto3_optional": true + } + }, + "name": { + "type": "string", + "id": 3 + } + } + }, + "Dimension": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "dimensionExpression": { + "type": "DimensionExpression", + "id": 2 + } + } + }, + "DimensionExpression": { + "oneofs": { + "oneExpression": { + "oneof": [ + "lowerCase", + "upperCase", + "concatenate" + ] + } + }, + "fields": { + "lowerCase": { + "type": "CaseExpression", + "id": 4 + }, + "upperCase": { + "type": "CaseExpression", + "id": 5 + }, + "concatenate": { + "type": "ConcatenateExpression", + "id": 6 + } + }, + "nested": { + "CaseExpression": { + "fields": { + "dimensionName": { + "type": "string", + "id": 1 + } + } + }, + "ConcatenateExpression": { + "fields": { + "dimensionNames": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "delimiter": { + "type": "string", + "id": 2 + } + } + } + } + }, + "Metric": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "expression": { + "type": "string", + "id": 2 + }, + "invisible": { + "type": "bool", + "id": 3 + } + } + }, + "FilterExpression": { + "oneofs": { + "expr": { + "oneof": [ + "andGroup", + "orGroup", + "notExpression", + "filter" + ] + } + }, + "fields": { + "andGroup": { + "type": "FilterExpressionList", + "id": 1 + }, + "orGroup": { + "type": "FilterExpressionList", + "id": 2 + }, + "notExpression": { + "type": "FilterExpression", + "id": 3 + }, + "filter": { + "type": "Filter", + "id": 4 + } + } + }, + "FilterExpressionList": { + "fields": { + "expressions": { + "rule": "repeated", + "type": "FilterExpression", + "id": 1 + } + } + }, + "Filter": { + "oneofs": { + "oneFilter": { + "oneof": [ + "stringFilter", + "inListFilter", + "numericFilter", + "betweenFilter" + ] + } + }, + "fields": { + "fieldName": { + "type": "string", + "id": 1 + }, + "stringFilter": { + "type": "StringFilter", + "id": 3 + }, + "inListFilter": { + "type": "InListFilter", + "id": 4 + }, + "numericFilter": { + "type": "NumericFilter", + "id": 5 + }, + "betweenFilter": { + "type": "BetweenFilter", + "id": 6 + } + }, + "nested": { + "StringFilter": { + "fields": { + "matchType": { + "type": "MatchType", + "id": 1 + }, + "value": { + "type": "string", + "id": 2 + }, + "caseSensitive": { + "type": "bool", + "id": 3 + } + }, + "nested": { + "MatchType": { + "values": { + "MATCH_TYPE_UNSPECIFIED": 0, + "EXACT": 1, + "BEGINS_WITH": 2, + "ENDS_WITH": 3, + "CONTAINS": 4, + "FULL_REGEXP": 5, + "PARTIAL_REGEXP": 6 + } + } + } + }, + "InListFilter": { + "fields": { + "values": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "caseSensitive": { + "type": "bool", + "id": 2 + } + } + }, + "NumericFilter": { + "fields": { + "operation": { + "type": "Operation", + "id": 1 + }, + "value": { + "type": "NumericValue", + "id": 2 + } + }, + "nested": { + "Operation": { + "values": { + "OPERATION_UNSPECIFIED": 0, + "EQUAL": 1, + "LESS_THAN": 2, + "LESS_THAN_OR_EQUAL": 3, + "GREATER_THAN": 4, + "GREATER_THAN_OR_EQUAL": 5 + } + } + } + }, + "BetweenFilter": { + "fields": { + "fromValue": { + "type": "NumericValue", + "id": 1 + }, + "toValue": { + "type": "NumericValue", + "id": 2 + } + } + } + } + }, + "OrderBy": { + "oneofs": { + "oneOrderBy": { + "oneof": [ + "metric", + "dimension", + "pivot" + ] + } + }, + "fields": { + "metric": { + "type": "MetricOrderBy", + "id": 1 + }, + "dimension": { + "type": "DimensionOrderBy", + "id": 2 + }, + "pivot": { + "type": "PivotOrderBy", + "id": 3 + }, + "desc": { + "type": "bool", + "id": 4 + } + }, + "nested": { + "MetricOrderBy": { + "fields": { + "metricName": { + "type": "string", + "id": 1 + } + } + }, + "DimensionOrderBy": { + "fields": { + "dimensionName": { + "type": "string", + "id": 1 + }, + "orderType": { + "type": "OrderType", + "id": 2 + } + }, + "nested": { + "OrderType": { + "values": { + "ORDER_TYPE_UNSPECIFIED": 0, + "ALPHANUMERIC": 1, + "CASE_INSENSITIVE_ALPHANUMERIC": 2, + "NUMERIC": 3 + } + } + } + }, + "PivotOrderBy": { + "fields": { + "metricName": { + "type": "string", + "id": 1 + }, + "pivotSelections": { + "rule": "repeated", + "type": "PivotSelection", + "id": 2 + } + }, + "nested": { + "PivotSelection": { + "fields": { + "dimensionName": { + "type": "string", + "id": 1 + }, + "dimensionValue": { + "type": "string", + "id": 2 + } + } + } + } + } + } + }, + "Pivot": { + "fields": { + "fieldNames": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "orderBys": { + "rule": "repeated", + "type": "OrderBy", + "id": 2 + }, + "offset": { + "type": "int64", + "id": 3 + }, + "limit": { + "type": "int64", + "id": 4 + }, + "metricAggregations": { + "rule": "repeated", + "type": "MetricAggregation", + "id": 5 + } + } + }, + "CohortSpec": { + "fields": { + "cohorts": { + "rule": "repeated", + "type": "Cohort", + "id": 1 + }, + "cohortsRange": { + "type": "CohortsRange", + "id": 2 + }, + "cohortReportSettings": { + "type": "CohortReportSettings", + "id": 3 + } + } + }, + "Cohort": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "dimension": { + "type": "string", + "id": 2 + }, + "dateRange": { + "type": "DateRange", + "id": 3 + } + } + }, + "CohortsRange": { + "fields": { + "granularity": { + "type": "Granularity", + "id": 1 + }, + "startOffset": { + "type": "int32", + "id": 2 + }, + "endOffset": { + "type": "int32", + "id": 3 + } + }, + "nested": { + "Granularity": { + "values": { + "GRANULARITY_UNSPECIFIED": 0, + "DAILY": 1, + "WEEKLY": 2, + "MONTHLY": 3 + } + } + } + }, + "CohortReportSettings": { + "fields": { + "accumulate": { + "type": "bool", + "id": 1 + } + } + }, + "ResponseMetaData": { + "oneofs": { + "_schemaRestrictionResponse": { + "oneof": [ + "schemaRestrictionResponse" + ] + }, + "_currencyCode": { + "oneof": [ + "currencyCode" + ] + }, + "_timeZone": { + "oneof": [ + "timeZone" + ] + }, + "_emptyReason": { + "oneof": [ + "emptyReason" + ] + } + }, + "fields": { + "dataLossFromOtherRow": { + "type": "bool", + "id": 3 + }, + "schemaRestrictionResponse": { + "type": "SchemaRestrictionResponse", + "id": 4, + "options": { + "proto3_optional": true + } + }, + "currencyCode": { + "type": "string", + "id": 5, + "options": { + "proto3_optional": true + } + }, + "timeZone": { + "type": "string", + "id": 6, + "options": { + "proto3_optional": true + } + }, + "emptyReason": { + "type": "string", + "id": 7, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "SchemaRestrictionResponse": { + "fields": { + "activeMetricRestrictions": { + "rule": "repeated", + "type": "ActiveMetricRestriction", + "id": 1 + } + }, + "nested": { + "ActiveMetricRestriction": { + "oneofs": { + "_metricName": { + "oneof": [ + "metricName" + ] + } + }, + "fields": { + "metricName": { + "type": "string", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "restrictedMetricTypes": { + "rule": "repeated", + "type": "RestrictedMetricType", + "id": 2 + } + } + } + } + } + } + }, + "DimensionHeader": { + "fields": { + "name": { + "type": "string", + "id": 1 + } + } + }, + "MetricHeader": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "type": { + "type": "MetricType", + "id": 2 + } + } + }, + "PivotHeader": { + "fields": { + "pivotDimensionHeaders": { + "rule": "repeated", + "type": "PivotDimensionHeader", + "id": 1 + }, + "rowCount": { + "type": "int32", + "id": 2 + } + } + }, + "PivotDimensionHeader": { + "fields": { + "dimensionValues": { + "rule": "repeated", + "type": "DimensionValue", + "id": 1 + } + } + }, + "Row": { + "fields": { + "dimensionValues": { + "rule": "repeated", + "type": "DimensionValue", + "id": 1 + }, + "metricValues": { + "rule": "repeated", + "type": "MetricValue", + "id": 2 + } + } + }, + "DimensionValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "value" + ] + } + }, + "fields": { + "value": { + "type": "string", + "id": 1 + } + } + }, + "MetricValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "value" + ] + } + }, + "fields": { + "value": { + "type": "string", + "id": 4 + } + } + }, + "NumericValue": { + "oneofs": { + "oneValue": { + "oneof": [ + "int64Value", + "doubleValue" + ] + } + }, + "fields": { + "int64Value": { + "type": "int64", + "id": 1 + }, + "doubleValue": { + "type": "double", + "id": 2 + } + } + }, + "PropertyQuota": { + "fields": { + "tokensPerDay": { + "type": "QuotaStatus", + "id": 1 + }, + "tokensPerHour": { + "type": "QuotaStatus", + "id": 2 + }, + "concurrentRequests": { + "type": "QuotaStatus", + "id": 3 + }, + "serverErrorsPerProjectPerHour": { + "type": "QuotaStatus", + "id": 4 + }, + "potentiallyThresholdedRequestsPerHour": { + "type": "QuotaStatus", + "id": 5 + } + } + }, + "QuotaStatus": { + "fields": { + "consumed": { + "type": "int32", + "id": 1 + }, + "remaining": { + "type": "int32", + "id": 2 + } + } + }, + "DimensionMetadata": { + "fields": { + "apiName": { + "type": "string", + "id": 1 + }, + "uiName": { + "type": "string", + "id": 2 + }, + "description": { + "type": "string", + "id": 3 + }, + "deprecatedApiNames": { + "rule": "repeated", + "type": "string", + "id": 4 + }, + "customDefinition": { + "type": "bool", + "id": 5 + }, + "category": { + "type": "string", + "id": 7 + } + } + }, + "MetricMetadata": { + "fields": { + "apiName": { + "type": "string", + "id": 1 + }, + "uiName": { + "type": "string", + "id": 2 + }, + "description": { + "type": "string", + "id": 3 + }, + "deprecatedApiNames": { + "rule": "repeated", + "type": "string", + "id": 4 + }, + "type": { + "type": "MetricType", + "id": 5 + }, + "expression": { + "type": "string", + "id": 6 + }, + "customDefinition": { + "type": "bool", + "id": 7 + }, + "blockedReasons": { + "rule": "repeated", + "type": "BlockedReason", + "id": 8 + }, + "category": { + "type": "string", + "id": 10 + } + }, + "nested": { + "BlockedReason": { + "values": { + "BLOCKED_REASON_UNSPECIFIED": 0, + "NO_REVENUE_METRICS": 1, + "NO_COST_METRICS": 2 + } + } + } + }, + "DimensionCompatibility": { + "oneofs": { + "_dimensionMetadata": { + "oneof": [ + "dimensionMetadata" + ] + }, + "_compatibility": { + "oneof": [ + "compatibility" + ] + } + }, + "fields": { + "dimensionMetadata": { + "type": "DimensionMetadata", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "compatibility": { + "type": "Compatibility", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "MetricCompatibility": { + "oneofs": { + "_metricMetadata": { + "oneof": [ + "metricMetadata" + ] + }, + "_compatibility": { + "oneof": [ + "compatibility" + ] + } + }, + "fields": { + "metricMetadata": { + "type": "MetricMetadata", + "id": 1, + "options": { + "proto3_optional": true + } + }, + "compatibility": { + "type": "Compatibility", + "id": 2, + "options": { + "proto3_optional": true + } + } + } + }, + "MetricAggregation": { + "values": { + "METRIC_AGGREGATION_UNSPECIFIED": 0, + "TOTAL": 1, + "MINIMUM": 5, + "MAXIMUM": 6, + "COUNT": 4 + } + }, + "MetricType": { + "values": { + "METRIC_TYPE_UNSPECIFIED": 0, + "TYPE_INTEGER": 1, + "TYPE_FLOAT": 2, + "TYPE_SECONDS": 4, + "TYPE_MILLISECONDS": 5, + "TYPE_MINUTES": 6, + "TYPE_HOURS": 7, + "TYPE_STANDARD": 8, + "TYPE_CURRENCY": 9, + "TYPE_FEET": 10, + "TYPE_MILES": 11, + "TYPE_METERS": 12, + "TYPE_KILOMETERS": 13 + } + }, + "RestrictedMetricType": { + "values": { + "RESTRICTED_METRIC_TYPE_UNSPECIFIED": 0, + "COST_DATA": 1, + "REVENUE_DATA": 2 + } + }, + "Compatibility": { + "values": { + "COMPATIBILITY_UNSPECIFIED": 0, + "COMPATIBLE": 1, + "INCOMPATIBLE": 2 + } + } } } } + } + } + }, + "api": { + "options": { + "go_package": "google.golang.org/genproto/googleapis/api/annotations;annotations", + "java_multiple_files": true, + "java_outer_classname": "ResourceProto", + "java_package": "com.google.api", + "objc_class_prefix": "GAPI", + "cc_enable_arenas": true + }, + "nested": { + "http": { + "type": "HttpRule", + "id": 72295728, + "extend": "google.protobuf.MethodOptions" }, - "OneofOptions": { - "fields": { - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "EnumOptions": { - "fields": { - "allowAlias": { - "type": "bool", - "id": 2 - }, - "deprecated": { - "type": "bool", - "id": 3, - "options": { - "default": false - } - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "reserved": [ - [ - 5, - 5 - ] - ] - }, - "EnumValueOptions": { - "fields": { - "deprecated": { - "type": "bool", - "id": 1, - "options": { - "default": false - } - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "ServiceOptions": { - "fields": { - "deprecated": { - "type": "bool", - "id": 33, - "options": { - "default": false - } - }, - "uninterpretedOption": { - "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ] - }, - "MethodOptions": { + "Http": { "fields": { - "deprecated": { - "type": "bool", - "id": 33, - "options": { - "default": false - } - }, - "idempotencyLevel": { - "type": "IdempotencyLevel", - "id": 34, - "options": { - "default": "IDEMPOTENCY_UNKNOWN" - } - }, - "uninterpretedOption": { + "rules": { "rule": "repeated", - "type": "UninterpretedOption", - "id": 999 - } - }, - "extensions": [ - [ - 1000, - 536870911 - ] - ], - "nested": { - "IdempotencyLevel": { - "values": { - "IDEMPOTENCY_UNKNOWN": 0, - "NO_SIDE_EFFECTS": 1, - "IDEMPOTENT": 2 - } + "type": "HttpRule", + "id": 1 + }, + "fullyDecodeReservedExpansion": { + "type": "bool", + "id": 2 } } }, - "UninterpretedOption": { + "HttpRule": { + "oneofs": { + "pattern": { + "oneof": [ + "get", + "put", + "post", + "delete", + "patch", + "custom" + ] + } + }, "fields": { - "name": { - "rule": "repeated", - "type": "NamePart", + "selector": { + "type": "string", + "id": 1 + }, + "get": { + "type": "string", "id": 2 }, - "identifierValue": { + "put": { "type": "string", "id": 3 }, - "positiveIntValue": { - "type": "uint64", + "post": { + "type": "string", "id": 4 }, - "negativeIntValue": { - "type": "int64", + "delete": { + "type": "string", "id": 5 }, - "doubleValue": { - "type": "double", + "patch": { + "type": "string", "id": 6 }, - "stringValue": { - "type": "bytes", + "custom": { + "type": "CustomHttpPattern", + "id": 8 + }, + "body": { + "type": "string", "id": 7 }, - "aggregateValue": { + "responseBody": { "type": "string", - "id": 8 + "id": 12 + }, + "additionalBindings": { + "rule": "repeated", + "type": "HttpRule", + "id": 11 } - }, - "nested": { - "NamePart": { - "fields": { - "namePart": { - "rule": "required", - "type": "string", - "id": 1 - }, - "isExtension": { - "rule": "required", - "type": "bool", - "id": 2 - } - } + } + }, + "CustomHttpPattern": { + "fields": { + "kind": { + "type": "string", + "id": 1 + }, + "path": { + "type": "string", + "id": 2 } } }, - "SourceCodeInfo": { + "methodSignature": { + "rule": "repeated", + "type": "string", + "id": 1051, + "extend": "google.protobuf.MethodOptions" + }, + "defaultHost": { + "type": "string", + "id": 1049, + "extend": "google.protobuf.ServiceOptions" + }, + "oauthScopes": { + "type": "string", + "id": 1050, + "extend": "google.protobuf.ServiceOptions" + }, + "fieldBehavior": { + "rule": "repeated", + "type": "google.api.FieldBehavior", + "id": 1052, + "extend": "google.protobuf.FieldOptions" + }, + "FieldBehavior": { + "values": { + "FIELD_BEHAVIOR_UNSPECIFIED": 0, + "OPTIONAL": 1, + "REQUIRED": 2, + "OUTPUT_ONLY": 3, + "INPUT_ONLY": 4, + "IMMUTABLE": 5, + "UNORDERED_LIST": 6, + "NON_EMPTY_DEFAULT": 7 + } + }, + "resourceReference": { + "type": "google.api.ResourceReference", + "id": 1055, + "extend": "google.protobuf.FieldOptions" + }, + "resourceDefinition": { + "rule": "repeated", + "type": "google.api.ResourceDescriptor", + "id": 1053, + "extend": "google.protobuf.FileOptions" + }, + "resource": { + "type": "google.api.ResourceDescriptor", + "id": 1053, + "extend": "google.protobuf.MessageOptions" + }, + "ResourceDescriptor": { "fields": { - "location": { - "rule": "repeated", - "type": "Location", + "type": { + "type": "string", "id": 1 + }, + "pattern": { + "rule": "repeated", + "type": "string", + "id": 2 + }, + "nameField": { + "type": "string", + "id": 3 + }, + "history": { + "type": "History", + "id": 4 + }, + "plural": { + "type": "string", + "id": 5 + }, + "singular": { + "type": "string", + "id": 6 + }, + "style": { + "rule": "repeated", + "type": "Style", + "id": 10 } }, "nested": { - "Location": { - "fields": { - "path": { - "rule": "repeated", - "type": "int32", - "id": 1 - }, - "span": { - "rule": "repeated", - "type": "int32", - "id": 2 - }, - "leadingComments": { - "type": "string", - "id": 3 - }, - "trailingComments": { - "type": "string", - "id": 4 - }, - "leadingDetachedComments": { - "rule": "repeated", - "type": "string", - "id": 6 - } + "History": { + "values": { + "HISTORY_UNSPECIFIED": 0, + "ORIGINALLY_SINGLE_PATTERN": 1, + "FUTURE_MULTI_PATTERN": 2 + } + }, + "Style": { + "values": { + "STYLE_UNSPECIFIED": 0, + "DECLARATIVE_FRIENDLY": 1 } } } }, - "GeneratedCodeInfo": { + "ResourceReference": { "fields": { - "annotation": { - "rule": "repeated", - "type": "Annotation", + "type": { + "type": "string", "id": 1 - } - }, - "nested": { - "Annotation": { - "fields": { - "path": { - "rule": "repeated", - "type": "int32", - "id": 1 - }, - "sourceFile": { - "type": "string", - "id": 2 - }, - "begin": { - "type": "int32", - "id": 3 - }, - "end": { - "type": "int32", - "id": 4 - } - } + }, + "childType": { + "type": "string", + "id": 2 } } } diff --git a/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js new file mode 100644 index 00000000000..cc4e1bf76d6 --- /dev/null +++ b/packages/google-analytics-data/samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js @@ -0,0 +1,126 @@ +// Copyright 2022 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main() { + // [START analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * A Google Analytics GA4 property identifier whose events are tracked. + * Specified in the URL path and not the body. To learn more, see where to + * find your Property + * ID (https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * Within a batch request, this property should either be unspecified or + * consistent with the batch-level property. + * Example: properties/1234 + */ + // const property = 'abc123' + /** + * Date ranges of data to read. If multiple date ranges are requested, each + * response row will contain a zero based date range index. If two date + * ranges overlap, the event data for the overlapping days is included in the + * response rows for both date ranges. + */ + // const dateRanges = 1234 + /** + * The configuration of this request's funnel. This funnel configuration is + * required. + */ + // const funnel = {} + /** + * If specified, this breakdown adds a dimension to the funnel table sub + * report response. This breakdown dimension expands each funnel step to the + * unique values of the breakdown dimension. For example, a breakdown by the + * `deviceCategory` dimension will create rows for `mobile`, `tablet`, + * `desktop`, and the total. + */ + // const funnelBreakdown = {} + /** + * If specified, next action adds a dimension to the funnel visualization sub + * report response. This next action dimension expands each funnel step to the + * unique values of the next action. For example a breakdown by the + * `eventName` dimension will create rows for several events (i.e. + * `session_start` & `click`) and the total. + */ + // const funnelNextAction = {} + /** + * The funnel visualization type controls the dimensions present in the funnel + * visualization sub report response. If not specified, `STANDARD_FUNNEL` is + * used. + */ + // const funnelVisualizationType = {} + /** + * The configurations of segments. Segments are subsets of a property's data. + * In a funnel report with segments, the funnel is evaluated in each segment. + * Each segment specified in this request + * produces a separate row in the response; in the response, each segment + * identified by its name. + * The segments parameter is optional. Requests are limited to 4 segments. + */ + // const segments = 1234 + /** + * The number of rows to return. If unspecified, 10,000 rows are returned. The + * API returns a maximum of 100,000 rows per request, no matter how many you + * ask for. `limit` must be positive. + * The API can also return fewer rows than the requested `limit`, if there + * aren't as many dimension values as the `limit`. + */ + // const limit = 1234 + /** + * Dimension filters allow you to ask for only specific dimension values in + * the report. To learn more, see Creating a Report: Dimension + * Filters (https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + * for examples. Metrics cannot be used in this filter. + */ + // const dimensionFilter = {} + /** + * Toggles whether to return the current state of this Analytics Property's + * quota. Quota is returned in PropertyQuota (#PropertyQuota). + */ + // const returnPropertyQuota = true + + // Imports the Data library + const {AlphaAnalyticsDataClient} = require('@google-cloud/data').v1alpha; + + // Instantiates a client + const dataClient = new AlphaAnalyticsDataClient(); + + async function callRunFunnelReport() { + // Construct request + const request = { + }; + + // Run request + const response = await dataClient.runFunnelReport(request); + console.log(response); + } + + callRunFunnelReport(); + // [END analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata.google.analytics.data.v1alpha.json b/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata.google.analytics.data.v1alpha.json new file mode 100644 index 00000000000..789a5cadff7 --- /dev/null +++ b/packages/google-analytics-data/samples/generated/v1alpha/snippet_metadata.google.analytics.data.v1alpha.json @@ -0,0 +1,91 @@ +{ + "clientLibrary": { + "name": "nodejs-data", + "version": "2.8.0", + "language": "TYPESCRIPT", + "apis": [ + { + "id": "google.analytics.data.v1alpha", + "version": "v1alpha" + } + ] + }, + "snippets": [ + { + "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_async", + "title": "AlphaAnalyticsData runFunnelReport Sample", + "origin": "API_DEFINITION", + "description": " Returns a customized funnel report of your Google Analytics event data. The data returned from the API is as a table with columns for the requested dimensions and metrics. Funnel exploration lets you visualize the steps your users take to complete a task and quickly see how well they are succeeding or failing at each step. For example, how do prospects become shoppers and then become buyers? How do one time buyers become repeat buyers? With this information, you can improve inefficient or abandoned customer journeys. To learn more, see [GA4 Funnel Explorations](https://support.google.com/analytics/answer/9327974).", + "canonical": true, + "file": "alpha_analytics_data.run_funnel_report.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 118, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "RunFunnelReport", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport", + "async": true, + "parameters": [ + { + "name": "property", + "type": "TYPE_STRING" + }, + { + "name": "date_ranges", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "funnel", + "type": ".google.analytics.data.v1alpha.Funnel" + }, + { + "name": "funnel_breakdown", + "type": ".google.analytics.data.v1alpha.FunnelBreakdown" + }, + { + "name": "funnel_next_action", + "type": ".google.analytics.data.v1alpha.FunnelNextAction" + }, + { + "name": "funnel_visualization_type", + "type": ".google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType" + }, + { + "name": "segments", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "limit", + "type": "TYPE_INT64" + }, + { + "name": "dimension_filter", + "type": ".google.analytics.data.v1alpha.FilterExpression" + }, + { + "name": "return_property_quota", + "type": "TYPE_BOOL" + } + ], + "resultType": ".google.analytics.data.v1alpha.RunFunnelReportResponse", + "client": { + "shortName": "AlphaAnalyticsDataClient", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsDataClient" + }, + "method": { + "shortName": "RunFunnelReport", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport", + "service": { + "shortName": "AlphaAnalyticsData", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData" + } + } + } + } + ] +} \ No newline at end of file diff --git a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts index 2d7a97b1365..b34ab816181 100644 --- a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts +++ b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client.ts @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -53,7 +53,6 @@ export class AlphaAnalyticsDataClient { }; warn: (code: string, message: string, warnType?: string) => void; innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; alphaAnalyticsDataStub?: Promise<{[name: string]: Function}>; /** @@ -151,15 +150,6 @@ export class AlphaAnalyticsDataClient { // Load the applicable protos. this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); - // This API contains "path templates"; forward-slash-separated - // identifiers to uniquely identify resources within the API. - // Create useful helper objects for these. - this.pathTemplates = { - metadataPathTemplate: new this._gaxModule.PathTemplate( - 'properties/{property}/metadata' - ), - }; - // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( 'google.analytics.data.v1alpha.AlphaAnalyticsData', @@ -210,14 +200,7 @@ export class AlphaAnalyticsDataClient { // Iterate over each of the methods that the service provides // and create an API call method for each. - const alphaAnalyticsDataStubMethods = [ - 'runReport', - 'runPivotReport', - 'batchRunReports', - 'batchRunPivotReports', - 'getMetadata', - 'runRealtimeReport', - ]; + const alphaAnalyticsDataStubMethods = ['runFunnelReport']; for (const methodName of alphaAnalyticsDataStubMethods) { const callPromise = this.alphaAnalyticsDataStub.then( stub => @@ -302,669 +285,140 @@ export class AlphaAnalyticsDataClient { // ------------------- // -- Service calls -- // ------------------- - runReport( - request?: protos.google.analytics.data.v1alpha.IRunReportRequest, - options?: CallOptions - ): Promise< - [ - protos.google.analytics.data.v1alpha.IRunReportResponse, - protos.google.analytics.data.v1alpha.IRunReportRequest | undefined, - {} | undefined - ] - >; - runReport( - request: protos.google.analytics.data.v1alpha.IRunReportRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.IRunReportResponse, - protos.google.analytics.data.v1alpha.IRunReportRequest | null | undefined, - {} | null | undefined - > - ): void; - runReport( - request: protos.google.analytics.data.v1alpha.IRunReportRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.IRunReportResponse, - protos.google.analytics.data.v1alpha.IRunReportRequest | null | undefined, - {} | null | undefined - > - ): void; /** - * Returns a customized report of your Google Analytics event data. Reports - * contain statistics derived from data collected by the Google Analytics - * tracking code. The data returned from the API is as a table with columns - * for the requested dimensions and metrics. Metrics are individual - * measurements of user activity on your property, such as active users or - * event count. Dimensions break down metrics across some common criteria, - * such as country or event name. + * Returns a customized funnel report of your Google Analytics event data. The + * data returned from the API is as a table with columns for the requested + * dimensions and metrics. + * + * Funnel exploration lets you visualize the steps your users take to complete + * a task and quickly see how well they are succeeding or failing at each + * step. For example, how do prospects become shoppers and then become buyers? + * How do one time buyers become repeat buyers? With this information, you can + * improve inefficient or abandoned customer journeys. To learn more, see [GA4 + * Funnel Explorations](https://support.google.com/analytics/answer/9327974). * * @param {Object} request * The request object that will be sent. - * @param {google.analytics.data.v1alpha.Entity} request.entity - * A property whose events are tracked. Within a batch request, this entity - * should either be unspecified or consistent with the batch-level entity. - * @param {number[]} request.dimensions - * The dimensions requested and displayed. - * @param {number[]} request.metrics - * The metrics requested and displayed. + * @param {string} request.property + * A Google Analytics GA4 property identifier whose events are tracked. + * Specified in the URL path and not the body. To learn more, see [where to + * find your Property + * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). + * Within a batch request, this property should either be unspecified or + * consistent with the batch-level property. + * + * Example: properties/1234 * @param {number[]} request.dateRanges * Date ranges of data to read. If multiple date ranges are requested, each * response row will contain a zero based date range index. If two date * ranges overlap, the event data for the overlapping days is included in the - * response rows for both date ranges. In a cohort request, this `dateRanges` - * must be unspecified. - * @param {number} request.offset - * The row count of the start row. The first row is counted as row 0. + * response rows for both date ranges. + * @param {google.analytics.data.v1alpha.Funnel} request.funnel + * The configuration of this request's funnel. This funnel configuration is + * required. + * @param {google.analytics.data.v1alpha.FunnelBreakdown} request.funnelBreakdown + * If specified, this breakdown adds a dimension to the funnel table sub + * report response. This breakdown dimension expands each funnel step to the + * unique values of the breakdown dimension. For example, a breakdown by the + * `deviceCategory` dimension will create rows for `mobile`, `tablet`, + * `desktop`, and the total. + * @param {google.analytics.data.v1alpha.FunnelNextAction} request.funnelNextAction + * If specified, next action adds a dimension to the funnel visualization sub + * report response. This next action dimension expands each funnel step to the + * unique values of the next action. For example a breakdown by the + * `eventName` dimension will create rows for several events (i.e. + * `session_start` & `click`) and the total. + * @param {google.analytics.data.v1alpha.RunFunnelReportRequest.FunnelVisualizationType} request.funnelVisualizationType + * The funnel visualization type controls the dimensions present in the funnel + * visualization sub report response. If not specified, `STANDARD_FUNNEL` is + * used. + * @param {number[]} request.segments + * The configurations of segments. Segments are subsets of a property's data. + * In a funnel report with segments, the funnel is evaluated in each segment. * - * To learn more about this pagination parameter, see - * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - * @param {number} request.limit - * The number of rows to return. If unspecified, 10 rows are returned. If - * -1, all rows are returned. + * Each segment specified in this request + * produces a separate row in the response; in the response, each segment + * identified by its name. * - * To learn more about this pagination parameter, see - * [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). - * @param {number[]} request.metricAggregations - * Aggregation of metrics. Aggregated metric values will be shown in rows - * where the dimension_values are set to "RESERVED_(MetricAggregation)". - * @param {google.analytics.data.v1alpha.FilterExpression} request.dimensionFilter - * The filter clause of dimensions. Dimensions must be requested to be used in - * this filter. Metrics cannot be used in this filter. - * @param {google.analytics.data.v1alpha.FilterExpression} request.metricFilter - * The filter clause of metrics. Applied at post aggregation phase, similar to - * SQL having-clause. Metrics must be requested to be used in this filter. - * Dimensions cannot be used in this filter. - * @param {number[]} request.orderBys - * Specifies how rows are ordered in the response. - * @param {string} request.currencyCode - * A currency code in ISO4217 format, such as "AED", "USD", "JPY". - * If the field is empty, the report uses the entity's default currency. - * @param {google.analytics.data.v1alpha.CohortSpec} request.cohortSpec - * Cohort group associated with this request. If there is a cohort group - * in the request the 'cohort' dimension must be present. - * @param {boolean} request.keepEmptyRows - * If false or unspecified, each row with all metrics equal to 0 will not be - * returned. If true, these rows will be returned if they are not separately - * removed by a filter. - * @param {boolean} request.returnPropertyQuota - * Toggles whether to return the current state of this Analytics Property's - * quota. Quota is returned in [PropertyQuota](#PropertyQuota). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [RunReportResponse]{@link google.analytics.data.v1alpha.RunReportResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example - * const [response] = await client.runReport(request); - */ - runReport( - request?: protos.google.analytics.data.v1alpha.IRunReportRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.analytics.data.v1alpha.IRunReportResponse, - | protos.google.analytics.data.v1alpha.IRunReportRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.analytics.data.v1alpha.IRunReportResponse, - protos.google.analytics.data.v1alpha.IRunReportRequest | null | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.analytics.data.v1alpha.IRunReportResponse, - protos.google.analytics.data.v1alpha.IRunReportRequest | undefined, - {} | undefined - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - this.initialize(); - return this.innerApiCalls.runReport(request, options, callback); - } - runPivotReport( - request?: protos.google.analytics.data.v1alpha.IRunPivotReportRequest, - options?: CallOptions - ): Promise< - [ - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - protos.google.analytics.data.v1alpha.IRunPivotReportRequest | undefined, - {} | undefined - ] - >; - runPivotReport( - request: protos.google.analytics.data.v1alpha.IRunPivotReportRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - | protos.google.analytics.data.v1alpha.IRunPivotReportRequest - | null - | undefined, - {} | null | undefined - > - ): void; - runPivotReport( - request: protos.google.analytics.data.v1alpha.IRunPivotReportRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - | protos.google.analytics.data.v1alpha.IRunPivotReportRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Returns a customized pivot report of your Google Analytics event data. - * Pivot reports are more advanced and expressive formats than regular - * reports. In a pivot report, dimensions are only visible if they are - * included in a pivot. Multiple pivots can be specified to further dissect - * your data. + * The segments parameter is optional. Requests are limited to 4 segments. + * @param {number} request.limit + * The number of rows to return. If unspecified, 10,000 rows are returned. The + * API returns a maximum of 100,000 rows per request, no matter how many you + * ask for. `limit` must be positive. * - * @param {Object} request - * The request object that will be sent. - * @param {google.analytics.data.v1alpha.Entity} request.entity - * A property whose events are tracked. Within a batch request, this entity - * should either be unspecified or consistent with the batch-level entity. - * @param {number[]} request.dimensions - * The dimensions requested. All defined dimensions must be used by one of the - * following: dimension_expression, dimension_filter, pivots, order_bys. - * @param {number[]} request.metrics - * The metrics requested, at least one metric needs to be specified. All - * defined metrics must be used by one of the following: metric_expression, - * metric_filter, order_bys. + * The API can also return fewer rows than the requested `limit`, if there + * aren't as many dimension values as the `limit`. * @param {google.analytics.data.v1alpha.FilterExpression} request.dimensionFilter - * The filter clause of dimensions. Dimensions must be requested to be used in - * this filter. Metrics cannot be used in this filter. - * @param {google.analytics.data.v1alpha.FilterExpression} request.metricFilter - * The filter clause of metrics. Applied at post aggregation phase, similar to - * SQL having-clause. Metrics must be requested to be used in this filter. - * Dimensions cannot be used in this filter. - * @param {number[]} request.pivots - * Describes the visual format of the report's dimensions in columns or rows. - * The union of the fieldNames (dimension names) in all pivots must be a - * subset of dimension names defined in Dimensions. No two pivots can share a - * dimension. A dimension is only visible if it appears in a pivot. - * @param {number[]} request.dateRanges - * The date range to retrieve event data for the report. If multiple date - * ranges are specified, event data from each date range is used in the - * report. A special dimension with field name "dateRange" can be included in - * a Pivot's field names; if included, the report compares between date - * ranges. In a cohort request, this `dateRanges` must be unspecified. - * @param {string} request.currencyCode - * A currency code in ISO4217 format, such as "AED", "USD", "JPY". - * If the field is empty, the report uses the entity's default currency. - * @param {google.analytics.data.v1alpha.CohortSpec} request.cohortSpec - * Cohort group associated with this request. If there is a cohort group - * in the request the 'cohort' dimension must be present. - * @param {boolean} request.keepEmptyRows - * If false or unspecified, each row with all metrics equal to 0 will not be - * returned. If true, these rows will be returned if they are not separately - * removed by a filter. + * Dimension filters allow you to ask for only specific dimension values in + * the report. To learn more, see [Creating a Report: Dimension + * Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) + * for examples. Metrics cannot be used in this filter. * @param {boolean} request.returnPropertyQuota * Toggles whether to return the current state of this Analytics Property's * quota. Quota is returned in [PropertyQuota](#PropertyQuota). * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [RunPivotReportResponse]{@link google.analytics.data.v1alpha.RunPivotReportResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example - * const [response] = await client.runPivotReport(request); - */ - runPivotReport( - request?: protos.google.analytics.data.v1alpha.IRunPivotReportRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - | protos.google.analytics.data.v1alpha.IRunPivotReportRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - | protos.google.analytics.data.v1alpha.IRunPivotReportRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.analytics.data.v1alpha.IRunPivotReportResponse, - protos.google.analytics.data.v1alpha.IRunPivotReportRequest | undefined, - {} | undefined - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - this.initialize(); - return this.innerApiCalls.runPivotReport(request, options, callback); - } - batchRunReports( - request?: protos.google.analytics.data.v1alpha.IBatchRunReportsRequest, - options?: CallOptions - ): Promise< - [ - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - protos.google.analytics.data.v1alpha.IBatchRunReportsRequest | undefined, - {} | undefined - ] - >; - batchRunReports( - request: protos.google.analytics.data.v1alpha.IBatchRunReportsRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunReportsRequest - | null - | undefined, - {} | null | undefined - > - ): void; - batchRunReports( - request: protos.google.analytics.data.v1alpha.IBatchRunReportsRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunReportsRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Returns multiple reports in a batch. All reports must be for the same - * Entity. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.analytics.data.v1alpha.Entity} request.entity - * A property whose events are tracked. This entity must be specified for the - * batch. The entity within RunReportRequest may either be unspecified or - * consistent with this entity. - * @param {number[]} request.requests - * Individual requests. Each request has a separate report response. Each - * batch request is allowed up to 5 requests. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [BatchRunReportsResponse]{@link google.analytics.data.v1alpha.BatchRunReportsResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example - * const [response] = await client.batchRunReports(request); - */ - batchRunReports( - request?: protos.google.analytics.data.v1alpha.IBatchRunReportsRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunReportsRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunReportsRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.analytics.data.v1alpha.IBatchRunReportsResponse, - protos.google.analytics.data.v1alpha.IBatchRunReportsRequest | undefined, - {} | undefined - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - this.initialize(); - return this.innerApiCalls.batchRunReports(request, options, callback); - } - batchRunPivotReports( - request?: protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, - options?: CallOptions - ): Promise< - [ - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - ( - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | undefined - ), - {} | undefined - ] - >; - batchRunPivotReports( - request: protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | null - | undefined, - {} | null | undefined - > - ): void; - batchRunPivotReports( - request: protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Returns multiple pivot reports in a batch. All reports must be for the same - * Entity. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.analytics.data.v1alpha.Entity} request.entity - * A property whose events are tracked. This entity must be specified for the - * batch. The entity within RunPivotReportRequest may either be unspecified or - * consistent with this entity. - * @param {number[]} request.requests - * Individual requests. Each request has a separate pivot report response. - * Each batch request is allowed up to 5 requests. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [BatchRunPivotReportsResponse]{@link google.analytics.data.v1alpha.BatchRunPivotReportsResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example - * const [response] = await client.batchRunPivotReports(request); - */ - batchRunPivotReports( - request?: protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse, - ( - | protos.google.analytics.data.v1alpha.IBatchRunPivotReportsRequest - | undefined - ), - {} | undefined - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - this.initialize(); - return this.innerApiCalls.batchRunPivotReports(request, options, callback); - } - getMetadata( - request?: protos.google.analytics.data.v1alpha.IGetMetadataRequest, - options?: CallOptions - ): Promise< - [ - protos.google.analytics.data.v1alpha.IMetadata, - protos.google.analytics.data.v1alpha.IGetMetadataRequest | undefined, - {} | undefined - ] - >; - getMetadata( - request: protos.google.analytics.data.v1alpha.IGetMetadataRequest, - options: CallOptions, - callback: Callback< - protos.google.analytics.data.v1alpha.IMetadata, - | protos.google.analytics.data.v1alpha.IGetMetadataRequest - | null - | undefined, - {} | null | undefined - > - ): void; - getMetadata( - request: protos.google.analytics.data.v1alpha.IGetMetadataRequest, - callback: Callback< - protos.google.analytics.data.v1alpha.IMetadata, - | protos.google.analytics.data.v1alpha.IGetMetadataRequest - | null - | undefined, - {} | null | undefined - > - ): void; - /** - * Returns metadata for dimensions and metrics available in reporting methods. - * Used to explore the dimensions and metrics. In this method, a Google - * Analytics GA4 Property Identifier is specified in the request, and - * the metadata response includes Custom dimensions and metrics as well as - * Universal metadata. - * - * For example if a custom metric with parameter name `levels_unlocked` is - * registered to a property, the Metadata response will contain - * `customEvent:levels_unlocked`. Universal metadata are dimensions and - * metrics applicable to any property such as `country` and `totalUsers`. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The resource name of the metadata to retrieve. This name field is - * specified in the URL path and not URL parameters. Property is a numeric - * Google Analytics GA4 Property identifier. To learn more, see [where to find - * your Property - * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). - * - * Example: properties/1234/metadata - * - * Set the Property ID to 0 for dimensions and metrics common to all - * properties. In this special mode, this method will not return custom - * dimensions and metrics. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [Metadata]{@link google.analytics.data.v1alpha.Metadata}. + * The first element of the array is an object representing [RunFunnelReportResponse]{@link google.analytics.data.v1alpha.RunFunnelReportResponse}. * Please see the * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) * for more details and examples. - * @example - * const [response] = await client.getMetadata(request); + * @example include:samples/generated/v1alpha/alpha_analytics_data.run_funnel_report.js + * region_tag:analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_async */ - getMetadata( - request?: protos.google.analytics.data.v1alpha.IGetMetadataRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.analytics.data.v1alpha.IMetadata, - | protos.google.analytics.data.v1alpha.IGetMetadataRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.analytics.data.v1alpha.IMetadata, - | protos.google.analytics.data.v1alpha.IGetMetadataRequest - | null - | undefined, - {} | null | undefined - > - ): Promise< - [ - protos.google.analytics.data.v1alpha.IMetadata, - protos.google.analytics.data.v1alpha.IGetMetadataRequest | undefined, - {} | undefined - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - gax.routingHeader.fromParams({ - name: request.name || '', - }); - this.initialize(); - return this.innerApiCalls.getMetadata(request, options, callback); - } - runRealtimeReport( - request?: protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest, + runFunnelReport( + request?: protos.google.analytics.data.v1alpha.IRunFunnelReportRequest, options?: CallOptions ): Promise< [ - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - ( - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest - | undefined - ), + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | undefined, {} | undefined ] >; - runRealtimeReport( - request: protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest, + runFunnelReport( + request: protos.google.analytics.data.v1alpha.IRunFunnelReportRequest, options: CallOptions, callback: Callback< - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + | protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | null | undefined, {} | null | undefined > ): void; - runRealtimeReport( - request: protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest, + runFunnelReport( + request: protos.google.analytics.data.v1alpha.IRunFunnelReportRequest, callback: Callback< - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + | protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | null | undefined, {} | null | undefined > ): void; - /** - * The Google Analytics Realtime API returns a customized report of realtime - * event data for your property. These reports show events and usage from the - * last 30 minutes. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.property - * A Google Analytics GA4 property identifier whose events are tracked. - * Specified in the URL path and not the body. To learn more, see [where to - * find your Property - * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). - * - * Example: properties/1234 - * @param {number[]} request.dimensions - * The dimensions requested and displayed. - * @param {number[]} request.metrics - * The metrics requested and displayed. - * @param {number} request.limit - * The number of rows to return. If unspecified, 10 rows are returned. If - * -1, all rows are returned. - * @param {google.analytics.data.v1alpha.FilterExpression} request.dimensionFilter - * The filter clause of dimensions. Dimensions must be requested to be used in - * this filter. Metrics cannot be used in this filter. - * @param {google.analytics.data.v1alpha.FilterExpression} request.metricFilter - * The filter clause of metrics. Applied at post aggregation phase, similar to - * SQL having-clause. Metrics must be requested to be used in this filter. - * Dimensions cannot be used in this filter. - * @param {number[]} request.metricAggregations - * Aggregation of metrics. Aggregated metric values will be shown in rows - * where the dimension_values are set to "RESERVED_(MetricAggregation)". - * @param {number[]} request.orderBys - * Specifies how rows are ordered in the response. - * @param {boolean} request.returnPropertyQuota - * Toggles whether to return the current state of this Analytics Property's - * Realtime quota. Quota is returned in [PropertyQuota](#PropertyQuota). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [RunRealtimeReportResponse]{@link google.analytics.data.v1alpha.RunRealtimeReportResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example - * const [response] = await client.runRealtimeReport(request); - */ - runRealtimeReport( - request?: protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest, + runFunnelReport( + request?: protos.google.analytics.data.v1alpha.IRunFunnelReportRequest, optionsOrCallback?: | CallOptions | Callback< - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + | protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | null | undefined, {} | null | undefined >, callback?: Callback< - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + | protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | null | undefined, {} | null | undefined > ): Promise< [ - protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse, - ( - | protos.google.analytics.data.v1alpha.IRunRealtimeReportRequest - | undefined - ), + protos.google.analytics.data.v1alpha.IRunFunnelReportResponse, + protos.google.analytics.data.v1alpha.IRunFunnelReportRequest | undefined, {} | undefined ] > | void { @@ -984,34 +438,7 @@ export class AlphaAnalyticsDataClient { property: request.property || '', }); this.initialize(); - return this.innerApiCalls.runRealtimeReport(request, options, callback); - } - - // -------------------- - // -- Path templates -- - // -------------------- - - /** - * Return a fully-qualified metadata resource name string. - * - * @param {string} property - * @returns {string} Resource name string. - */ - metadataPath(property: string) { - return this.pathTemplates.metadataPathTemplate.render({ - property: property, - }); - } - - /** - * Parse the property from Metadata resource. - * - * @param {string} metadataName - * A fully-qualified path representing Metadata resource. - * @returns {string} A string representing the property. - */ - matchPropertyFromMetadataName(metadataName: string) { - return this.pathTemplates.metadataPathTemplate.match(metadataName).property; + return this.innerApiCalls.runFunnelReport(request, options, callback); } /** @@ -1021,9 +448,8 @@ export class AlphaAnalyticsDataClient { * @returns {Promise} A promise that resolves when the client is closed. */ close(): Promise { - this.initialize(); - if (!this._terminated) { - return this.alphaAnalyticsDataStub!.then(stub => { + if (this.alphaAnalyticsDataStub && !this._terminated) { + return this.alphaAnalyticsDataStub.then(stub => { this._terminated = true; stub.close(); }); diff --git a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json index 4ef763c7c37..89acd1c2581 100644 --- a/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json +++ b/packages/google-analytics-data/src/v1alpha/alpha_analytics_data_client_config.json @@ -6,9 +6,6 @@ "idempotent": [ "DEADLINE_EXCEEDED", "UNAVAILABLE" - ], - "unknown": [ - "UNKNOWN" ] }, "retry_params": { @@ -20,47 +17,13 @@ "rpc_timeout_multiplier": 1, "max_rpc_timeout_millis": 60000, "total_timeout_millis": 600000 - }, - "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c": { - "initial_retry_delay_millis": 1000, - "retry_delay_multiplier": 1.3, - "max_retry_delay_millis": 60000, - "initial_rpc_timeout_millis": 60000, - "rpc_timeout_multiplier": 1, - "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 } }, "methods": { - "RunReport": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "RunPivotReport": { + "RunFunnelReport": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" - }, - "BatchRunReports": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "BatchRunPivotReports": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "GetMetadata": { - "timeout_millis": 60000, - "retry_codes_name": "unknown", - "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" - }, - "RunRealtimeReport": { - "timeout_millis": 60000, - "retry_codes_name": "unknown", - "retry_params_name": "01d6d956b4dadd7e38ee9dec12ed8720e6e6f90c" } } } diff --git a/packages/google-analytics-data/src/v1alpha/gapic_metadata.json b/packages/google-analytics-data/src/v1alpha/gapic_metadata.json index 7fbf5a88070..d96e93cb5d4 100644 --- a/packages/google-analytics-data/src/v1alpha/gapic_metadata.json +++ b/packages/google-analytics-data/src/v1alpha/gapic_metadata.json @@ -3,41 +3,16 @@ "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", "language": "typescript", "protoPackage": "google.analytics.data.v1alpha", - "libraryPackage": "@google-analytics/data", + "libraryPackage": "@google-cloud/data", "services": { "AlphaAnalyticsData": { "clients": { "grpc": { "libraryClient": "AlphaAnalyticsDataClient", "rpcs": { - "RunReport": { + "RunFunnelReport": { "methods": [ - "runReport" - ] - }, - "RunPivotReport": { - "methods": [ - "runPivotReport" - ] - }, - "BatchRunReports": { - "methods": [ - "batchRunReports" - ] - }, - "BatchRunPivotReports": { - "methods": [ - "batchRunPivotReports" - ] - }, - "GetMetadata": { - "methods": [ - "getMetadata" - ] - }, - "RunRealtimeReport": { - "methods": [ - "runRealtimeReport" + "runFunnelReport" ] } } @@ -45,34 +20,9 @@ "grpc-fallback": { "libraryClient": "AlphaAnalyticsDataClient", "rpcs": { - "RunReport": { - "methods": [ - "runReport" - ] - }, - "RunPivotReport": { - "methods": [ - "runPivotReport" - ] - }, - "BatchRunReports": { - "methods": [ - "batchRunReports" - ] - }, - "BatchRunPivotReports": { - "methods": [ - "batchRunPivotReports" - ] - }, - "GetMetadata": { - "methods": [ - "getMetadata" - ] - }, - "RunRealtimeReport": { + "RunFunnelReport": { "methods": [ - "runRealtimeReport" + "runFunnelReport" ] } } diff --git a/packages/google-analytics-data/src/v1alpha/index.ts b/packages/google-analytics-data/src/v1alpha/index.ts index 8602e79b9bd..9adb2d5219e 100644 --- a/packages/google-analytics-data/src/v1alpha/index.ts +++ b/packages/google-analytics-data/src/v1alpha/index.ts @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts b/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts index 743cb86b182..c1e9e1d79dc 100644 --- a/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts +++ b/packages/google-analytics-data/test/gapic_alpha_analytics_data_v1alpha.ts @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -93,13 +93,29 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { assert(client.alphaAnalyticsDataStub); }); - it('has close method', () => { + it('has close method for the initialized client', done => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); - client.close(); + client.initialize(); + assert(client.alphaAnalyticsDataStub); + client.close().then(() => { + done(); + }); + }); + + it('has close method for the non-initialized client', done => { + const client = + new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.alphaAnalyticsDataStub, undefined); + client.close().then(() => { + done(); + }); }); it('has getProjectId method', async () => { @@ -138,480 +154,8 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { assert.strictEqual(result, fakeProjectId); }); - describe('runReport', () => { - it('invokes runReport without error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunReportRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunReportResponse() - ); - client.innerApiCalls.runReport = stubSimpleCall(expectedResponse); - const [response] = await client.runReport(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - - it('invokes runReport without error using callback', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunReportRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunReportResponse() - ); - client.innerApiCalls.runReport = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.runReport( - request, - ( - err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IRunReportResponse | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); - }); - - it('invokes runReport with error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunReportRequest() - ); - const expectedOptions = {}; - const expectedError = new Error('expected'); - client.innerApiCalls.runReport = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.runReport(request), expectedError); - assert( - (client.innerApiCalls.runReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); - - describe('runPivotReport', () => { - it('invokes runPivotReport without error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunPivotReportRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunPivotReportResponse() - ); - client.innerApiCalls.runPivotReport = stubSimpleCall(expectedResponse); - const [response] = await client.runPivotReport(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runPivotReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - - it('invokes runPivotReport without error using callback', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunPivotReportRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunPivotReportResponse() - ); - client.innerApiCalls.runPivotReport = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.runPivotReport( - request, - ( - err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IRunPivotReportResponse | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.runPivotReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); - }); - - it('invokes runPivotReport with error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunPivotReportRequest() - ); - const expectedOptions = {}; - const expectedError = new Error('expected'); - client.innerApiCalls.runPivotReport = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(client.runPivotReport(request), expectedError); - assert( - (client.innerApiCalls.runPivotReport as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); - - describe('batchRunReports', () => { - it('invokes batchRunReports without error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunReportsRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunReportsResponse() - ); - client.innerApiCalls.batchRunReports = stubSimpleCall(expectedResponse); - const [response] = await client.batchRunReports(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.batchRunReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - - it('invokes batchRunReports without error using callback', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunReportsRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunReportsResponse() - ); - client.innerApiCalls.batchRunReports = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchRunReports( - request, - ( - err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IBatchRunReportsResponse | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.batchRunReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); - }); - - it('invokes batchRunReports with error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunReportsRequest() - ); - const expectedOptions = {}; - const expectedError = new Error('expected'); - client.innerApiCalls.batchRunReports = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(client.batchRunReports(request), expectedError); - assert( - (client.innerApiCalls.batchRunReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); - - describe('batchRunPivotReports', () => { - it('invokes batchRunPivotReports without error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunPivotReportsRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunPivotReportsResponse() - ); - client.innerApiCalls.batchRunPivotReports = - stubSimpleCall(expectedResponse); - const [response] = await client.batchRunPivotReports(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.batchRunPivotReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - - it('invokes batchRunPivotReports without error using callback', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunPivotReportsRequest() - ); - const expectedOptions = {}; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunPivotReportsResponse() - ); - client.innerApiCalls.batchRunPivotReports = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchRunPivotReports( - request, - ( - err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IBatchRunPivotReportsResponse | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.batchRunPivotReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); - }); - - it('invokes batchRunPivotReports with error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.BatchRunPivotReportsRequest() - ); - const expectedOptions = {}; - const expectedError = new Error('expected'); - client.innerApiCalls.batchRunPivotReports = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(client.batchRunPivotReports(request), expectedError); - assert( - (client.innerApiCalls.batchRunPivotReports as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); - - describe('getMetadata', () => { - it('invokes getMetadata without error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.GetMetadataRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.Metadata() - ); - client.innerApiCalls.getMetadata = stubSimpleCall(expectedResponse); - const [response] = await client.getMetadata(request); - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getMetadata as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - - it('invokes getMetadata without error using callback', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.GetMetadataRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.Metadata() - ); - client.innerApiCalls.getMetadata = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getMetadata( - request, - ( - err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IMetadata | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - } - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.getMetadata as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions /*, callback defined above */) - ); - }); - - it('invokes getMetadata with error', async () => { - const client = - new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.GetMetadataRequest() - ); - request.name = ''; - const expectedHeaderRequestParams = 'name='; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getMetadata = stubSimpleCall( - undefined, - expectedError - ); - await assert.rejects(client.getMetadata(request), expectedError); - assert( - (client.innerApiCalls.getMetadata as SinonStub) - .getCall(0) - .calledWith(request, expectedOptions, undefined) - ); - }); - }); - - describe('runRealtimeReport', () => { - it('invokes runRealtimeReport without error', async () => { + describe('runFunnelReport', () => { + it('invokes runFunnelReport without error', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -619,7 +163,7 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunRealtimeReportRequest() + new protos.google.analytics.data.v1alpha.RunFunnelReportRequest() ); request.property = ''; const expectedHeaderRequestParams = 'property='; @@ -631,19 +175,19 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }, }; const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunRealtimeReportResponse() + new protos.google.analytics.data.v1alpha.RunFunnelReportResponse() ); - client.innerApiCalls.runRealtimeReport = stubSimpleCall(expectedResponse); - const [response] = await client.runRealtimeReport(request); + client.innerApiCalls.runFunnelReport = stubSimpleCall(expectedResponse); + const [response] = await client.runFunnelReport(request); assert.deepStrictEqual(response, expectedResponse); assert( - (client.innerApiCalls.runRealtimeReport as SinonStub) + (client.innerApiCalls.runFunnelReport as SinonStub) .getCall(0) .calledWith(request, expectedOptions, undefined) ); }); - it('invokes runRealtimeReport without error using callback', async () => { + it('invokes runFunnelReport without error using callback', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -651,7 +195,7 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunRealtimeReportRequest() + new protos.google.analytics.data.v1alpha.RunFunnelReportRequest() ); request.property = ''; const expectedHeaderRequestParams = 'property='; @@ -663,16 +207,16 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }, }; const expectedResponse = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunRealtimeReportResponse() + new protos.google.analytics.data.v1alpha.RunFunnelReportResponse() ); - client.innerApiCalls.runRealtimeReport = + client.innerApiCalls.runFunnelReport = stubSimpleCallWithCallback(expectedResponse); const promise = new Promise((resolve, reject) => { - client.runRealtimeReport( + client.runFunnelReport( request, ( err?: Error | null, - result?: protos.google.analytics.data.v1alpha.IRunRealtimeReportResponse | null + result?: protos.google.analytics.data.v1alpha.IRunFunnelReportResponse | null ) => { if (err) { reject(err); @@ -685,13 +229,13 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { const response = await promise; assert.deepStrictEqual(response, expectedResponse); assert( - (client.innerApiCalls.runRealtimeReport as SinonStub) + (client.innerApiCalls.runFunnelReport as SinonStub) .getCall(0) .calledWith(request, expectedOptions /*, callback defined above */) ); }); - it('invokes runRealtimeReport with error', async () => { + it('invokes runFunnelReport with error', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, @@ -699,7 +243,7 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }); client.initialize(); const request = generateSampleMessage( - new protos.google.analytics.data.v1alpha.RunRealtimeReportRequest() + new protos.google.analytics.data.v1alpha.RunFunnelReportRequest() ); request.property = ''; const expectedHeaderRequestParams = 'property='; @@ -711,57 +255,32 @@ describe('v1alpha.AlphaAnalyticsDataClient', () => { }, }; const expectedError = new Error('expected'); - client.innerApiCalls.runRealtimeReport = stubSimpleCall( + client.innerApiCalls.runFunnelReport = stubSimpleCall( undefined, expectedError ); - await assert.rejects(client.runRealtimeReport(request), expectedError); + await assert.rejects(client.runFunnelReport(request), expectedError); assert( - (client.innerApiCalls.runRealtimeReport as SinonStub) + (client.innerApiCalls.runFunnelReport as SinonStub) .getCall(0) .calledWith(request, expectedOptions, undefined) ); }); - }); - describe('Path templates', () => { - describe('metadata', () => { - const fakePath = '/rendered/path/metadata'; - const expectedParameters = { - property: 'propertyValue', - }; + it('invokes runFunnelReport with closed client', async () => { const client = new alphaanalyticsdataModule.v1alpha.AlphaAnalyticsDataClient({ credentials: {client_email: 'bogus', private_key: 'bogus'}, projectId: 'bogus', }); client.initialize(); - client.pathTemplates.metadataPathTemplate.render = sinon - .stub() - .returns(fakePath); - client.pathTemplates.metadataPathTemplate.match = sinon - .stub() - .returns(expectedParameters); - - it('metadataPath', () => { - const result = client.metadataPath('propertyValue'); - assert.strictEqual(result, fakePath); - assert( - (client.pathTemplates.metadataPathTemplate.render as SinonStub) - .getCall(-1) - .calledWith(expectedParameters) - ); - }); - - it('matchPropertyFromMetadataName', () => { - const result = client.matchPropertyFromMetadataName(fakePath); - assert.strictEqual(result, 'propertyValue'); - assert( - (client.pathTemplates.metadataPathTemplate.match as SinonStub) - .getCall(-1) - .calledWith(fakePath) - ); - }); + const request = generateSampleMessage( + new protos.google.analytics.data.v1alpha.RunFunnelReportRequest() + ); + request.property = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.runFunnelReport(request), expectedError); }); }); });