@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Google Analytics API
@base https://analytics.googleapis.com/analytics/v3
@version v3
@auth OAuth2 | OAuth2
@endpoints 88
@hint download_for_search
@toc data(3), management(81), metadata(1), provisioning(2), userDeletion(1)

@group data
@endpoint GET /data/ga
@required {ids: str, start-date: str, end-date: str, metrics: str}
@optional {dimensions: str, filters: str, include-empty-rows: bool, max-results: int, output: str(dataTable/json), samplingLevel: str(DEFAULT/FASTER/HIGHER_PRECISION), segment: str, sort: str, start-index: int}
@returns(200) {columnHeaders: [map], containsSampledData: bool, dataLastRefreshed: str(int64), dataTable: map{cols: [map], rows: [map]}, id: str, itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, profileInfo: map{accountId: str, internalWebPropertyId: str, profileId: str, profileName: str, tableId: str, webPropertyId: str}, query: map{dimensions: str, end-date: str, filters: str, ids: str, max-results: int(int32), metrics: [str], samplingLevel: str, segment: str, sort: [str], start-date: str, start-index: int(int32)}, rows: [[str]], sampleSize: str(int64), sampleSpace: str(int64), selfLink: str, totalResults: int(int32), totalsForAllResults: map}

@endpoint GET /data/mcf
@required {ids: str, start-date: str, end-date: str, metrics: str}
@optional {dimensions: str, filters: str, max-results: int, samplingLevel: str(DEFAULT/FASTER/HIGHER_PRECISION), sort: str, start-index: int}
@returns(200) {columnHeaders: [map], containsSampledData: bool, id: str, itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, profileInfo: map{accountId: str, internalWebPropertyId: str, profileId: str, profileName: str, tableId: str, webPropertyId: str}, query: map{dimensions: str, end-date: str, filters: str, ids: str, max-results: int(int32), metrics: [str], samplingLevel: str, segment: str, sort: [str], start-date: str, start-index: int(int32)}, rows: [[map]], sampleSize: str(int64), sampleSpace: str(int64), selfLink: str, totalResults: int(int32), totalsForAllResults: map}

@endpoint GET /data/realtime
@required {ids: str, metrics: str}
@optional {dimensions: str, filters: str, max-results: int, sort: str}
@returns(200) {columnHeaders: [map], id: str, kind: str, profileInfo: map{accountId: str, internalWebPropertyId: str, profileId: str, profileName: str, tableId: str, webPropertyId: str}, query: map{dimensions: str, filters: str, ids: str, max-results: int(int32), metrics: [str], sort: [str]}, rows: [[str]], selfLink: str, totalResults: int(int32), totalsForAllResults: map}

@endgroup

@group management
@endpoint GET /management/accountSummaries
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint GET /management/accounts
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint GET /management/accounts/{accountId}/entityUserLinks
@required {accountId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32)}

@endpoint POST /management/accounts/{accountId}/entityUserLinks
@required {accountId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint DELETE /management/accounts/{accountId}/entityUserLinks/{linkId}
@required {accountId: str, linkId: str}
@returns(200)

@endpoint PUT /management/accounts/{accountId}/entityUserLinks/{linkId}
@required {accountId: str, linkId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint GET /management/accounts/{accountId}/filters
@required {accountId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/filters
@required {accountId: str}
@optional {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str=analytics#filter, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}
@returns(200) {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}

@endpoint DELETE /management/accounts/{accountId}/filters/{filterId}
@required {accountId: str, filterId: str}
@returns(200) {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}

@endpoint GET /management/accounts/{accountId}/filters/{filterId}
@required {accountId: str, filterId: str}
@returns(200) {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}

@endpoint PATCH /management/accounts/{accountId}/filters/{filterId}
@required {accountId: str, filterId: str}
@optional {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str=analytics#filter, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}
@returns(200) {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}

@endpoint PUT /management/accounts/{accountId}/filters/{filterId}
@required {accountId: str, filterId: str}
@optional {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str=analytics#filter, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}
@returns(200) {accountId: str, advancedDetails: map{caseSensitive: bool, extractA: str, extractB: str, fieldA: str, fieldAIndex: int(int32), fieldARequired: bool, fieldB: str, fieldBIndex: int(int32), fieldBRequired: bool, outputConstructor: str, outputToField: str, outputToFieldIndex: int(int32), overrideOutputField: bool}, created: str(date-time), excludeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, id: str, includeDetails: map{caseSensitive: bool, expressionValue: str, field: str, fieldIndex: int(int32), kind: str, matchType: str}, kind: str, lowercaseDetails: map{field: str, fieldIndex: int(int32)}, name: str, parentLink: map{href: str, type: str}, searchAndReplaceDetails: map{caseSensitive: bool, field: str, fieldIndex: int(int32), replaceString: str, searchString: str}, selfLink: str, type: str, updated: str(date-time), uppercaseDetails: map{field: str, fieldIndex: int(int32)}}

@endpoint GET /management/accounts/{accountId}/webproperties
@required {accountId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties
@required {accountId: str}
@optional {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str=analytics#webproperty, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}
@returns(200) {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}
@required {accountId: str, webPropertyId: str}
@returns(200) {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str=analytics#webproperty, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}
@returns(200) {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str=analytics#webproperty, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}
@returns(200) {accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/deleteUploadData
@required {accountId: str, webPropertyId: str, customDataSourceId: str}
@optional {customDataImportUids: [str]}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads
@required {accountId: str, webPropertyId: str, customDataSourceId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32)}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads
@required {accountId: str, webPropertyId: str, customDataSourceId: str}
@returns(200) {accountId: str(int64), customDataSourceId: str, errors: [str], id: str, kind: str, status: str, uploadTime: str(date-time)}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads/{uploadId}
@required {accountId: str, webPropertyId: str, customDataSourceId: str, uploadId: str}
@returns(200) {accountId: str(int64), customDataSourceId: str, errors: [str], id: str, kind: str, status: str, uploadTime: str(date-time)}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customDimension, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}
@required {accountId: str, webPropertyId: str, customDimensionId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}
@required {accountId: str, webPropertyId: str, customDimensionId: str}
@optional {ignoreCustomDataSourceLinks: bool, accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customDimension, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}
@required {accountId: str, webPropertyId: str, customDimensionId: str}
@optional {ignoreCustomDataSourceLinks: bool, accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customDimension, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, updated: str(date-time), webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customMetric, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}
@required {accountId: str, webPropertyId: str, customMetricId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}
@required {accountId: str, webPropertyId: str, customMetricId: str}
@optional {ignoreCustomDataSourceLinks: bool, accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customMetric, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}
@required {accountId: str, webPropertyId: str, customMetricId: str}
@optional {ignoreCustomDataSourceLinks: bool, accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str=analytics#customMetric, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), id: str, index: int(int32), kind: str, max_value: str, min_value: str, name: str, parentLink: map{href: str, type: str}, scope: str, selfLink: str, type: str, updated: str(date-time), webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32)}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks
@required {accountId: str, webPropertyId: str}
@optional {adWordsAccounts: [map{autoTaggingEnabled: bool, customerId: str, kind: str}], entity: map{webPropertyRef: map}, id: str, kind: str=analytics#entityAdWordsLink, name: str, profileIds: [str], selfLink: str}
@returns(200) {adWordsAccounts: [map], entity: map{webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, name: str, profileIds: [str], selfLink: str}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}
@required {accountId: str, webPropertyId: str, webPropertyAdWordsLinkId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}
@required {accountId: str, webPropertyId: str, webPropertyAdWordsLinkId: str}
@returns(200) {adWordsAccounts: [map], entity: map{webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, name: str, profileIds: [str], selfLink: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}
@required {accountId: str, webPropertyId: str, webPropertyAdWordsLinkId: str}
@optional {adWordsAccounts: [map{autoTaggingEnabled: bool, customerId: str, kind: str}], entity: map{webPropertyRef: map}, id: str, kind: str=analytics#entityAdWordsLink, name: str, profileIds: [str], selfLink: str}
@returns(200) {adWordsAccounts: [map], entity: map{webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, name: str, profileIds: [str], selfLink: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}
@required {accountId: str, webPropertyId: str, webPropertyAdWordsLinkId: str}
@optional {adWordsAccounts: [map{autoTaggingEnabled: bool, customerId: str, kind: str}], entity: map{webPropertyRef: map}, id: str, kind: str=analytics#entityAdWordsLink, name: str, profileIds: [str], selfLink: str}
@returns(200) {adWordsAccounts: [map], entity: map{webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, name: str, profileIds: [str], selfLink: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32)}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks
@required {accountId: str, webPropertyId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}
@required {accountId: str, webPropertyId: str, linkId: str}
@returns(200)

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}
@required {accountId: str, webPropertyId: str, linkId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str=analytics#profile, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}
@returns(200) {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}
@required {accountId: str, webPropertyId: str, profileId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}
@required {accountId: str, webPropertyId: str, profileId: str}
@returns(200) {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str=analytics#profile, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}
@returns(200) {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str=analytics#profile, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}
@returns(200) {accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32)}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@returns(200)

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@optional {entity: map{accountRef: map, profileRef: map, webPropertyRef: map}, id: str, kind: str=analytics#entityUserLink, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}
@returns(200) {entity: map{accountRef: map{href: str, id: str, kind: str, name: str}, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, webPropertyRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str}}, id: str, kind: str, permissions: map{effective: [str], local: [str]}, selfLink: str, userRef: map{email: str, id: str, kind: str}}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str=analytics#experiment, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map{name: str, status: str, url: str, weight: num(double), won: bool}], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}
@returns(200) {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}
@required {accountId: str, webPropertyId: str, profileId: str, experimentId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}
@required {accountId: str, webPropertyId: str, profileId: str, experimentId: str}
@returns(200) {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}
@required {accountId: str, webPropertyId: str, profileId: str, experimentId: str}
@optional {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str=analytics#experiment, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map{name: str, status: str, url: str, weight: num(double), won: bool}], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}
@returns(200) {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}
@required {accountId: str, webPropertyId: str, profileId: str, experimentId: str}
@optional {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str=analytics#experiment, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map{name: str, status: str, url: str, weight: num(double), won: bool}], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}
@returns(200) {accountId: str, created: str(date-time), description: str, editableInGaUi: bool, endTime: str(date-time), equalWeighting: bool, id: str, internalWebPropertyId: str, kind: str, minimumExperimentLengthInDays: int(int32), name: str, objectiveMetric: str, optimizationType: str, parentLink: map{href: str, type: str}, profileId: str, reasonExperimentEnded: str, rewriteVariationUrlsAsOriginal: bool, selfLink: str, servingFramework: str, snippet: str, startTime: str(date-time), status: str, trafficCoverage: num(double), updated: str(date-time), variations: [map], webPropertyId: str, winnerConfidenceLevel: num(double), winnerFound: bool}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str=analytics#goal, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}
@required {accountId: str, webPropertyId: str, profileId: str, goalId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}
@required {accountId: str, webPropertyId: str, profileId: str, goalId: str}
@optional {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str=analytics#goal, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}
@required {accountId: str, webPropertyId: str, profileId: str, goalId: str}
@optional {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str=analytics#goal, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}
@returns(200) {accountId: str, active: bool, created: str(date-time), eventDetails: map{eventConditions: [map], useEventValue: bool}, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, profileId: str, selfLink: str, type: str, updated: str(date-time), urlDestinationDetails: map{caseSensitive: bool, firstStepRequired: bool, matchType: str, steps: [map], url: str}, value: num(float), visitNumPagesDetails: map{comparisonType: str, comparisonValue: str(int64)}, visitTimeOnSiteDetails: map{comparisonType: str, comparisonValue: str(int64)}, webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str=analytics#profileFilterLink, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}
@returns(200) {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@returns(200) {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@optional {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str=analytics#profileFilterLink, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}
@returns(200) {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}
@required {accountId: str, webPropertyId: str, profileId: str, linkId: str}
@optional {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str=analytics#profileFilterLink, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}
@returns(200) {filterRef: map{accountId: str, href: str, id: str, kind: str, name: str}, id: str, kind: str, profileRef: map{accountId: str, href: str, id: str, internalWebPropertyId: str, kind: str, name: str, webPropertyId: str}, rank: int(int32), selfLink: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports
@required {accountId: str, webPropertyId: str, profileId: str}
@optional {accountId: str, cloudStorageDownloadDetails: map{bucketId: str, objectId: str}, created: str(date-time), dimensions: str, downloadType: str, driveDownloadDetails: map{documentId: str}, end-date: str, filters: str, id: str, kind: str=analytics#unsampledReport, metrics: str, profileId: str, segment: str, selfLink: str, start-date: str, status: str, title: str, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, cloudStorageDownloadDetails: map{bucketId: str, objectId: str}, created: str(date-time), dimensions: str, downloadType: str, driveDownloadDetails: map{documentId: str}, end-date: str, filters: str, id: str, kind: str, metrics: str, profileId: str, segment: str, selfLink: str, start-date: str, status: str, title: str, updated: str(date-time), webPropertyId: str}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports/{unsampledReportId}
@required {accountId: str, webPropertyId: str, profileId: str, unsampledReportId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports/{unsampledReportId}
@required {accountId: str, webPropertyId: str, profileId: str, unsampledReportId: str}
@returns(200) {accountId: str, cloudStorageDownloadDetails: map{bucketId: str, objectId: str}, created: str(date-time), dimensions: str, downloadType: str, driveDownloadDetails: map{documentId: str}, end-date: str, filters: str, id: str, kind: str, metrics: str, profileId: str, segment: str, selfLink: str, start-date: str, status: str, title: str, updated: str(date-time), webPropertyId: str}

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences
@required {accountId: str, webPropertyId: str}
@optional {max-results: int, start-index: int, type: str}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endpoint POST /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences
@required {accountId: str, webPropertyId: str}
@optional {accountId: str, audienceDefinition: map{includeConditions: map}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str=analytics#remarketingAudience, linkedAdAccounts: [map{accountId: str, eligibleForSearch: bool, id: str, internalWebPropertyId: str, kind: str, linkedAccountId: str, remarketingAudienceId: str, status: str, type: str, webPropertyId: str}], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map, includeConditions: map}, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, audienceDefinition: map{includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str, linkedAdAccounts: [map], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map{exclusionDuration: str, segment: str}, includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, updated: str(date-time), webPropertyId: str}

@endpoint DELETE /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences/{remarketingAudienceId}
@required {accountId: str, webPropertyId: str, remarketingAudienceId: str}
@returns(200)

@endpoint GET /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences/{remarketingAudienceId}
@required {accountId: str, webPropertyId: str, remarketingAudienceId: str}
@returns(200) {accountId: str, audienceDefinition: map{includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str, linkedAdAccounts: [map], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map{exclusionDuration: str, segment: str}, includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, updated: str(date-time), webPropertyId: str}

@endpoint PATCH /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences/{remarketingAudienceId}
@required {accountId: str, webPropertyId: str, remarketingAudienceId: str}
@optional {accountId: str, audienceDefinition: map{includeConditions: map}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str=analytics#remarketingAudience, linkedAdAccounts: [map{accountId: str, eligibleForSearch: bool, id: str, internalWebPropertyId: str, kind: str, linkedAccountId: str, remarketingAudienceId: str, status: str, type: str, webPropertyId: str}], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map, includeConditions: map}, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, audienceDefinition: map{includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str, linkedAdAccounts: [map], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map{exclusionDuration: str, segment: str}, includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, updated: str(date-time), webPropertyId: str}

@endpoint PUT /management/accounts/{accountId}/webproperties/{webPropertyId}/remarketingAudiences/{remarketingAudienceId}
@required {accountId: str, webPropertyId: str, remarketingAudienceId: str}
@optional {accountId: str, audienceDefinition: map{includeConditions: map}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str=analytics#remarketingAudience, linkedAdAccounts: [map{accountId: str, eligibleForSearch: bool, id: str, internalWebPropertyId: str, kind: str, linkedAccountId: str, remarketingAudienceId: str, status: str, type: str, webPropertyId: str}], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map, includeConditions: map}, updated: str(date-time), webPropertyId: str}
@returns(200) {accountId: str, audienceDefinition: map{includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, audienceType: str, created: str(date-time), description: str, id: str, internalWebPropertyId: str, kind: str, linkedAdAccounts: [map], linkedViews: [str], name: str, stateBasedAudienceDefinition: map{excludeConditions: map{exclusionDuration: str, segment: str}, includeConditions: map{daysToLookBack: int(int32), isSmartList: bool, kind: str, membershipDurationDays: int(int32), segment: str}}, updated: str(date-time), webPropertyId: str}

@endpoint POST /management/clientId:hashClientId
@optional {clientId: str, kind: str=analytics#hashClientIdRequest, webPropertyId: str}
@returns(200) {clientId: str, hashedClientId: str, kind: str, webPropertyId: str}

@endpoint GET /management/segments
@optional {max-results: int, start-index: int}
@returns(200) {items: [map], itemsPerPage: int(int32), kind: str, nextLink: str, previousLink: str, startIndex: int(int32), totalResults: int(int32), username: str}

@endgroup

@group metadata
@endpoint GET /metadata/{reportType}/columns
@required {reportType: str}
@returns(200) {attributeNames: [str], etag: str, items: [map], kind: str, totalResults: int(int32)}

@endgroup

@group provisioning
@endpoint POST /provisioning/createAccountTicket
@optional {account: map{childLink: map, created: str(date-time), id: str, kind: str, name: str, permissions: map, selfLink: str, starred: bool, updated: str(date-time)}, id: str, kind: str=analytics#accountTicket, profile: map{accountId: str, botFilteringEnabled: bool, childLink: map, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map, permissions: map, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}, redirectUri: str, webproperty: map{accountId: str, childLink: map, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map, permissions: map, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}}
@returns(200) {account: map{childLink: map{href: str, type: str}, created: str(date-time), id: str, kind: str, name: str, permissions: map{effective: [str]}, selfLink: str, starred: bool, updated: str(date-time)}, id: str, kind: str, profile: map{accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}, redirectUri: str, webproperty: map{accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}}

@endpoint POST /provisioning/createAccountTree
@optional {accountName: str, kind: str=analytics#accountTreeRequest, profileName: str, timezone: str, webpropertyName: str, websiteUrl: str}
@returns(200) {account: map{childLink: map{href: str, type: str}, created: str(date-time), id: str, kind: str, name: str, permissions: map{effective: [str]}, selfLink: str, starred: bool, updated: str(date-time)}, kind: str, profile: map{accountId: str, botFilteringEnabled: bool, childLink: map{href: str, type: str}, created: str(date-time), currency: str, defaultPage: str, eCommerceTracking: bool, enhancedECommerceTracking: bool, excludeQueryParameters: str, id: str, internalWebPropertyId: str, kind: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, selfLink: str, siteSearchCategoryParameters: str, siteSearchQueryParameters: str, starred: bool, stripSiteSearchCategoryParameters: bool, stripSiteSearchQueryParameters: bool, timezone: str, type: str, updated: str(date-time), webPropertyId: str, websiteUrl: str}, webproperty: map{accountId: str, childLink: map{href: str, type: str}, created: str(date-time), dataRetentionResetOnNewActivity: bool, dataRetentionTtl: str, defaultProfileId: str(int64), id: str, industryVertical: str, internalWebPropertyId: str, kind: str, level: str, name: str, parentLink: map{href: str, type: str}, permissions: map{effective: [str]}, profileCount: int(int32), selfLink: str, starred: bool, updated: str(date-time), websiteUrl: str}}

@endgroup

@group userDeletion
@endpoint POST /userDeletion/userDeletionRequests:upsert
@optional {deletionRequestTime: str(date-time), firebaseProjectId: str, id: map{type: str, userId: str}, kind: str=analytics#userDeletionRequest, propertyId: str, webPropertyId: str}
@returns(200) {deletionRequestTime: str(date-time), firebaseProjectId: str, id: map{type: str, userId: str}, kind: str, propertyId: str, webPropertyId: str}

@endgroup

@end
