@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Google Analytics Admin API
@base https://analyticsadmin.googleapis.com/
@version v1beta
@auth OAuth2 | OAuth2
@endpoints 26
@hint download_for_search
@toc v1beta(26)

@endpoint GET /v1beta/accountSummaries
@optional {pageSize: int, pageToken: str}
@returns(200) {accountSummaries: [map], nextPageToken: str}

@endpoint GET /v1beta/accounts
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {accounts: [map], nextPageToken: str}

@endpoint POST /v1beta/accounts:provisionAccountTicket
@optional {account: map{createTime: str(google-datetime), deleted: bool, displayName: str, name: str, regionCode: str, updateTime: str(google-datetime)}, redirectUri: str}
@returns(200) {accountTicketId: str}

@endpoint GET /v1beta/properties
@optional {filter: str, pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {nextPageToken: str, properties: [map]}

@endpoint POST /v1beta/properties
@optional {account: str, createTime: str(google-datetime), currencyCode: str, deleteTime: str(google-datetime), displayName: str, expireTime: str(google-datetime), industryCategory: str(INDUSTRY_CATEGORY_UNSPECIFIED/AUTOMOTIVE/BUSINESS_AND_INDUSTRIAL_MARKETS/FINANCE/HEALTHCARE/TECHNOLOGY/TRAVEL/OTHER/ARTS_AND_ENTERTAINMENT/BEAUTY_AND_FITNESS/BOOKS_AND_LITERATURE/FOOD_AND_DRINK/GAMES/HOBBIES_AND_LEISURE/HOME_AND_GARDEN/INTERNET_AND_TELECOM/LAW_AND_GOVERNMENT/NEWS/ONLINE_COMMUNITIES/PEOPLE_AND_SOCIETY/PETS_AND_ANIMALS/REAL_ESTATE/REFERENCE/SCIENCE/SPORTS/JOBS_AND_EDUCATION/SHOPPING), name: str, parent: str, propertyType: str(PROPERTY_TYPE_UNSPECIFIED/PROPERTY_TYPE_ORDINARY/PROPERTY_TYPE_SUBPROPERTY/PROPERTY_TYPE_ROLLUP), serviceLevel: str(SERVICE_LEVEL_UNSPECIFIED/GOOGLE_ANALYTICS_STANDARD/GOOGLE_ANALYTICS_360), timeZone: str, updateTime: str(google-datetime)}
@returns(200) {account: str, createTime: str(google-datetime), currencyCode: str, deleteTime: str(google-datetime), displayName: str, expireTime: str(google-datetime), industryCategory: str, name: str, parent: str, propertyType: str, serviceLevel: str, timeZone: str, updateTime: str(google-datetime)}

@endpoint POST /v1beta/{account}:searchChangeHistoryEvents
@required {account: str}
@optional {action: [str], actorEmail: [str], earliestChangeTime: str(google-datetime), latestChangeTime: str(google-datetime), pageSize: int(int32), pageToken: str, property: str, resourceType: [str]}
@returns(200) {changeHistoryEvents: [map], nextPageToken: str}

@endpoint POST /v1beta/{entity}:runAccessReport
@required {entity: str}
@optional {dateRanges: [map{endDate: str, startDate: str}], dimensionFilter: map{accessFilter: map, andGroup: map, notExpression: map, orGroup: map}, dimensions: [map{dimensionName: str}], limit: str(int64), metricFilter: map{accessFilter: map, andGroup: map, notExpression: map, orGroup: map}, metrics: [map{metricName: str}], offset: str(int64), orderBys: [map{desc: bool, dimension: map, metric: map}], returnEntityQuota: bool, timeZone: str}
@returns(200) {dimensionHeaders: [map], metricHeaders: [map], quota: map{concurrentRequests: map{consumed: int(int32), remaining: int(int32)}, serverErrorsPerProjectPerHour: map{consumed: int(int32), remaining: int(int32)}, tokensPerDay: map{consumed: int(int32), remaining: int(int32)}, tokensPerHour: map{consumed: int(int32), remaining: int(int32)}, tokensPerProjectPerHour: map{consumed: int(int32), remaining: int(int32)}}, rowCount: int(int32), rows: [map]}

@endpoint DELETE /v1beta/{name}
@required {name: str}
@returns(200)

@endpoint GET /v1beta/{name}
@required {name: str}
@returns(200) {displayName: str, name: str, secretValue: str}

@endpoint PATCH /v1beta/{name}
@required {name: str}
@optional {updateMask: str, adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)}
@returns(200) {adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)}

@endpoint POST /v1beta/{name}:archive
@required {name: str}
@returns(200)

@endpoint GET /v1beta/{parent}/conversionEvents
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {conversionEvents: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/conversionEvents
@required {parent: str}
@optional {createTime: str(google-datetime), custom: bool, deletable: bool, eventName: str, name: str}
@returns(200) {createTime: str(google-datetime), custom: bool, deletable: bool, eventName: str, name: str}

@endpoint GET /v1beta/{parent}/customDimensions
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {customDimensions: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/customDimensions
@required {parent: str}
@optional {description: str, disallowAdsPersonalization: bool, displayName: str, name: str, parameterName: str, scope: str(DIMENSION_SCOPE_UNSPECIFIED/EVENT/USER/ITEM)}
@returns(200) {description: str, disallowAdsPersonalization: bool, displayName: str, name: str, parameterName: str, scope: str}

@endpoint GET /v1beta/{parent}/customMetrics
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {customMetrics: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/customMetrics
@required {parent: str}
@optional {description: str, displayName: str, measurementUnit: str(MEASUREMENT_UNIT_UNSPECIFIED/STANDARD/CURRENCY/FEET/METERS/KILOMETERS/MILES/MILLISECONDS/SECONDS/MINUTES/HOURS), name: str, parameterName: str, restrictedMetricType: [str], scope: str(METRIC_SCOPE_UNSPECIFIED/EVENT)}
@returns(200) {description: str, displayName: str, measurementUnit: str, name: str, parameterName: str, restrictedMetricType: [str], scope: str}

@endpoint GET /v1beta/{parent}/dataStreams
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {dataStreams: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/dataStreams
@required {parent: str}
@optional {androidAppStreamData: map{firebaseAppId: str, packageName: str}, createTime: str(google-datetime), displayName: str, iosAppStreamData: map{bundleId: str, firebaseAppId: str}, name: str, type: str(DATA_STREAM_TYPE_UNSPECIFIED/WEB_DATA_STREAM/ANDROID_APP_DATA_STREAM/IOS_APP_DATA_STREAM), updateTime: str(google-datetime), webStreamData: map{defaultUri: str, firebaseAppId: str, measurementId: str}}
@returns(200) {androidAppStreamData: map{firebaseAppId: str, packageName: str}, createTime: str(google-datetime), displayName: str, iosAppStreamData: map{bundleId: str, firebaseAppId: str}, name: str, type: str, updateTime: str(google-datetime), webStreamData: map{defaultUri: str, firebaseAppId: str, measurementId: str}}

@endpoint GET /v1beta/{parent}/firebaseLinks
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {firebaseLinks: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/firebaseLinks
@required {parent: str}
@optional {createTime: str(google-datetime), name: str, project: str}
@returns(200) {createTime: str(google-datetime), name: str, project: str}

@endpoint GET /v1beta/{parent}/googleAdsLinks
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {googleAdsLinks: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/googleAdsLinks
@required {parent: str}
@optional {adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)}
@returns(200) {adsPersonalizationEnabled: bool, canManageClients: bool, createTime: str(google-datetime), creatorEmailAddress: str, customerId: str, name: str, updateTime: str(google-datetime)}

@endpoint GET /v1beta/{parent}/measurementProtocolSecrets
@required {parent: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {measurementProtocolSecrets: [map], nextPageToken: str}

@endpoint POST /v1beta/{parent}/measurementProtocolSecrets
@required {parent: str}
@optional {displayName: str, name: str, secretValue: str}
@returns(200) {displayName: str, name: str, secretValue: str}

@endpoint POST /v1beta/{property}:acknowledgeUserDataCollection
@required {property: str}
@optional {acknowledgement: str}
@returns(200)

@end
