ANALYTICSREPORTING

analyticsreporting.reports.batchGet

enum_CohortType := [ "UNSPECIFIED_COHORT_TYPE", "FIRST_VISIT_DATE" ]
enum_DimensionFilterClauseOperator := [ "OPERATOR_UNSPECIFIED", "OR", "AND" ]
enum_DimensionFilterOperator := [ "OPERATOR_UNSPECIFIED", "REGEXP", "BEGINS_WITH", "ENDS_WITH", "PARTIAL", "EXACT", "NUMERIC_EQUAL", "NUMERIC_GREATER_THAN", "NUMERIC_LESS_THAN", "IN_LIST" ]
enum_MetricFilterClauseOperator := [ "OPERATOR_UNSPECIFIED", "OR", "AND" ]
enum_MetricFilterOperator := [ "OPERATOR_UNSPECIFIED", "EQUAL", "LESS_THAN", "GREATER_THAN", "IS_MISSING" ]
enum_MetricFormattingType := [ "METRIC_TYPE_UNSPECIFIED", "INTEGER", "FLOAT", "CURRENCY", "PERCENT", "TIME" ]
enum_OrderByOrderType := [ "ORDER_TYPE_UNSPECIFIED", "VALUE", "DELTA", "SMART", "HISTOGRAM_BUCKET", "DIMENSION_AS_INTEGER" ]
enum_OrderBySortOrder := [ "SORT_ORDER_UNSPECIFIED", "ASCENDING", "DESCENDING" ]
enum_ReportRequestSamplingLevel := [ "SAMPLING_UNSPECIFIED", "DEFAULT", "SMALL", "LARGE" ]
enum_SegmentDimensionFilterOperator := [ "OPERATOR_UNSPECIFIED", "REGEXP", "BEGINS_WITH", "ENDS_WITH", "PARTIAL", "EXACT", "IN_LIST", "NUMERIC_LESS_THAN", "NUMERIC_GREATER_THAN", "NUMERIC_BETWEEN" ]
enum_SegmentMetricFilterOperator := [ "UNSPECIFIED_OPERATOR", "LESS_THAN", "GREATER_THAN", "EQUAL", "BETWEEN" ]
enum_SegmentMetricFilterScope := [ "UNSPECIFIED_SCOPE", "PRODUCT", "HIT", "SESSION", "USER" ]
enum_SegmentSequenceStepMatchType := [ "UNSPECIFIED_MATCH_TYPE", "PRECEDES", "IMMEDIATELY_PRECEDES" ]

valid {
    input.Body.reportRequests[_].cohortGroup.cohorts[_].dateRange.endDate == STRING
    input.Body.reportRequests[_].cohortGroup.cohorts[_].dateRange.startDate == STRING
    input.Body.reportRequests[_].cohortGroup.cohorts[_].name == STRING
    input.Body.reportRequests[_].cohortGroup.cohorts[_].type == enum_CohortType[_]
    input.Body.reportRequests[_].cohortGroup.lifetimeValue == BOOLEAN
    input.Body.reportRequests[_].dateRanges[_].endDate == STRING
    input.Body.reportRequests[_].dateRanges[_].startDate == STRING
    input.Body.reportRequests[_].dimensionFilterClauses[_].filters[_].caseSensitive == BOOLEAN
    input.Body.reportRequests[_].dimensionFilterClauses[_].filters[_].dimensionName == STRING
    input.Body.reportRequests[_].dimensionFilterClauses[_].filters[_].expressions[_] == STRING
    input.Body.reportRequests[_].dimensionFilterClauses[_].filters[_].not == BOOLEAN
    input.Body.reportRequests[_].dimensionFilterClauses[_].filters[_].operator == enum_DimensionFilterOperator[_]
    input.Body.reportRequests[_].dimensionFilterClauses[_].operator == enum_DimensionFilterClauseOperator[_]
    input.Body.reportRequests[_].dimensions[_].histogramBuckets[_] == STRING
    input.Body.reportRequests[_].dimensions[_].name == STRING
    input.Body.reportRequests[_].filtersExpression == STRING
    input.Body.reportRequests[_].hideTotals == BOOLEAN
    input.Body.reportRequests[_].hideValueRanges == BOOLEAN
    input.Body.reportRequests[_].includeEmptyRows == BOOLEAN
    input.Body.reportRequests[_].metricFilterClauses[_].filters[_].comparisonValue == STRING
    input.Body.reportRequests[_].metricFilterClauses[_].filters[_].metricName == STRING
    input.Body.reportRequests[_].metricFilterClauses[_].filters[_].not == BOOLEAN
    input.Body.reportRequests[_].metricFilterClauses[_].filters[_].operator == enum_MetricFilterOperator[_]
    input.Body.reportRequests[_].metricFilterClauses[_].operator == enum_MetricFilterClauseOperator[_]
    input.Body.reportRequests[_].metrics[_].alias == STRING
    input.Body.reportRequests[_].metrics[_].expression == STRING
    input.Body.reportRequests[_].metrics[_].formattingType == enum_MetricFormattingType[_]
    input.Body.reportRequests[_].orderBys[_].fieldName == STRING
    input.Body.reportRequests[_].orderBys[_].orderType == enum_OrderByOrderType[_]
    input.Body.reportRequests[_].orderBys[_].sortOrder == enum_OrderBySortOrder[_]
    input.Body.reportRequests[_].pageSize == INTEGER
    input.Body.reportRequests[_].pageToken == STRING
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].filters[_].caseSensitive == BOOLEAN
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].filters[_].dimensionName == STRING
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].filters[_].expressions[_] == STRING
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].filters[_].not == BOOLEAN
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].filters[_].operator == enum_DimensionFilterOperator[_]
    input.Body.reportRequests[_].pivots[_].dimensionFilterClauses[_].operator == enum_DimensionFilterClauseOperator[_]
    input.Body.reportRequests[_].pivots[_].dimensions[_].histogramBuckets[_] == STRING
    input.Body.reportRequests[_].pivots[_].dimensions[_].name == STRING
    input.Body.reportRequests[_].pivots[_].maxGroupCount == INTEGER
    input.Body.reportRequests[_].pivots[_].metrics[_].alias == STRING
    input.Body.reportRequests[_].pivots[_].metrics[_].expression == STRING
    input.Body.reportRequests[_].pivots[_].metrics[_].formattingType == enum_MetricFormattingType[_]
    input.Body.reportRequests[_].pivots[_].startGroup == INTEGER
    input.Body.reportRequests[_].samplingLevel == enum_ReportRequestSamplingLevel[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.name == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.firstStepShouldMatchFirstHit == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].matchType == enum_SegmentSequenceStepMatchType[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.caseSensitive == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.dimensionName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.expressions[_] == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.minComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.operator == enum_SegmentDimensionFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.comparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.metricName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.operator == enum_SegmentMetricFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.scope == enum_SegmentMetricFilterScope[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.caseSensitive == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.dimensionName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.expressions[_] == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.minComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.operator == enum_SegmentDimensionFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.comparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.metricName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.operator == enum_SegmentMetricFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.scope == enum_SegmentMetricFilterScope[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.sessionSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.firstStepShouldMatchFirstHit == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].matchType == enum_SegmentSequenceStepMatchType[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.caseSensitive == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.dimensionName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.expressions[_] == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.minComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.operator == enum_SegmentDimensionFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.comparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.metricName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.operator == enum_SegmentMetricFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.scope == enum_SegmentMetricFilterScope[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].sequenceSegment.segmentSequenceSteps[_].orFiltersForSegment[_].segmentFilterClauses[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.caseSensitive == BOOLEAN
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.dimensionName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.expressions[_] == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.minComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].dimensionFilter.operator == enum_SegmentDimensionFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.comparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.maxComparisonValue == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.metricName == STRING
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.operator == enum_SegmentMetricFilterOperator[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].metricFilter.scope == enum_SegmentMetricFilterScope[_]
    input.Body.reportRequests[_].segments[_].dynamicSegment.userSegment.segmentFilters[_].simpleSegment.orFiltersForSegment[_].segmentFilterClauses[_].not == BOOLEAN
    input.Body.reportRequests[_].segments[_].segmentId == STRING
    input.Body.reportRequests[_].viewId == STRING
    input.Body.useResourceQuotas == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

analyticsreporting.userActivity.search

enum_SearchUserActivityRequestActivityTypes := [ "ACTIVITY_TYPE_UNSPECIFIED", "PAGEVIEW", "SCREENVIEW", "GOAL", "ECOMMERCE", "EVENT" ]
enum_UserType := [ "USER_ID_TYPE_UNSPECIFIED", "USER_ID", "CLIENT_ID" ]

valid {
    input.Body.activityTypes[_] == enum_SearchUserActivityRequestActivityTypes[_]
    input.Body.dateRange.endDate == STRING
    input.Body.dateRange.startDate == STRING
    input.Body.pageSize == INTEGER
    input.Body.pageToken == STRING
    input.Body.user.type == enum_UserType[_]
    input.Body.user.userId == STRING
    input.Body.viewId == STRING
    input.ProviderMetadata.Region == STRING
}