Files
google-apis-rs/etc/api/mybusiness/v4/mybusiness-api.json
Sebastian Thiel c28ba92ead Update all APIs
2021-04-01 23:11:45 +08:00

5336 lines
284 KiB
JSON

{
"basePath": "",
"baseUrl": "https://mybusiness.googleapis.com/",
"batchPath": "batch",
"canonicalName": "My Business",
"description": "The Google My Business API provides an interface for managing business location information on Google.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/my-business/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "mybusiness:v4",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://mybusiness.mtls.googleapis.com/",
"name": "mybusiness",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"accounts": {
"methods": {
"create": {
"description": "Creates an account with the specified name and type under the given parent.\n<ul>\n<li> Personal accounts and Organizations cannot be created. </li>\n<li> User Groups cannot be created with a Personal account as primary\nowner. </li>\n<li> Location Groups cannot be created with a primary owner of a\nPersonal account if the Personal account is in an Organization. </li>\n<li> Location Groups cannot own Location Groups. </li>\n</ul>",
"flatPath": "v4/accounts",
"httpMethod": "POST",
"id": "mybusiness.accounts.create",
"parameterOrder": [],
"parameters": {
"primaryOwner": {
"description": "The resource name of the account which will be the primary owner of the\naccount being created. It should be of the form `accounts/{account_id}/`.",
"location": "query",
"type": "string"
}
},
"path": "v4/accounts",
"request": {
"$ref": "Account"
},
"response": {
"$ref": "Account"
}
},
"deleteNotifications": {
"description": "Clears the pubsub notification settings for the account.",
"flatPath": "v4/accounts/{accountsId}/notifications",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.deleteNotifications",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name for the notification settings to be cleared.",
"location": "path",
"pattern": "^accounts/[^/]+/notifications$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"generateAccountNumber": {
"description": "Generates an account number for this account. The account number is not\nprovisioned when an account is created. Use this request to create an\naccount number when it is required.",
"flatPath": "v4/accounts/{accountsId}:generateAccountNumber",
"httpMethod": "POST",
"id": "mybusiness.accounts.generateAccountNumber",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account to generate an account number for.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:generateAccountNumber",
"request": {
"$ref": "GenerateAccountNumberRequest"
},
"response": {
"$ref": "Account"
}
},
"get": {
"description": "Gets the specified account. Returns `NOT_FOUND` if the\naccount does not exist or if the caller does not have access rights to it.",
"flatPath": "v4/accounts/{accountsId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account to fetch.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Account"
}
},
"getNotifications": {
"description": "Returns the pubsub notification settings for the account.",
"flatPath": "v4/accounts/{accountsId}/notifications",
"httpMethod": "GET",
"id": "mybusiness.accounts.getNotifications",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The notification settings resource name.",
"location": "path",
"pattern": "^accounts/[^/]+/notifications$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Notifications"
}
},
"list": {
"description": "Lists all of the accounts for the authenticated user. This includes all\naccounts that the user owns, as well as any accounts for which the user\nhas management rights.",
"flatPath": "v4/accounts",
"httpMethod": "GET",
"id": "mybusiness.accounts.list",
"parameterOrder": [],
"parameters": {
"filter": {
"description": "A filter constraining the accounts to return. The response includes\nonly entries that match the filter. If `filter` is empty, then no\nconstraints are applied and all accounts (paginated) are retrieved for\nthe requested account.\n\nFor example, a request with the filter `type=USER_GROUP` will only return\nuser groups.",
"location": "query",
"type": "string"
},
"name": {
"description": "The resource name of the account for which the list of directly accessible\naccounts is to be retrieved. This only makes sense for Organizations and\nUser Groups. If empty, will return `ListAccounts` for the authenticated\nuser.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many accounts to fetch per page. Default is 20,\nminimum is 2, and maximum page size is 20.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of accounts is retrieved. The `pageToken` is\nreturned when a call to `accounts.list` returns more results than can fit\ninto the requested page size.",
"location": "query",
"type": "string"
}
},
"path": "v4/accounts",
"response": {
"$ref": "ListAccountsResponse"
}
},
"listRecommendGoogleLocations": {
"description": "List all the GoogleLocations that\nhave been recommended to the specified GMB account.\nRecommendations are provided for personal accounts and location groups\nonly, requests for all other account types will result in an error.\nThe recommendations for location groups are based on the locations in that\ngroup.\n\nThe recommendations for personal accounts are based on all of\nthe locations that the user has access to on Google My Business (which\nincludes locations they can access through location groups), and is a\nsuperset of all recommendations generated for the user.",
"flatPath": "v4/accounts/{accountsId}:recommendGoogleLocations",
"httpMethod": "GET",
"id": "mybusiness.accounts.listRecommendGoogleLocations",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Name of the account resource to fetch recommended Google locations for.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
},
"pageSize": {
"description": "How many locations to fetch per page. Default is 25, minimum is 1, and\nmaximum page size is 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of locations is retrieved.",
"location": "query",
"type": "string"
}
},
"path": "v4/{+name}:recommendGoogleLocations",
"response": {
"$ref": "ListRecommendedGoogleLocationsResponse"
}
},
"update": {
"description": "Updates the specified business account. Personal accounts cannot be\nupdated using this method.\n<aside class=\"note\"><b>Note:</b> The only editable field for an account is\n`account_name`.\nAny other fields passed in (such as `type` or `role`) are\nignored.</aside>",
"flatPath": "v4/accounts/{accountsId}",
"httpMethod": "PUT",
"id": "mybusiness.accounts.update",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account to update.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
},
"validateOnly": {
"description": "If true, the request is validated without actually updating the account.",
"location": "query",
"type": "boolean"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Account"
},
"response": {
"$ref": "Account"
}
},
"updateNotifications": {
"description": "Sets the pubsub notification settings for the account informing My Business\nwhich topic to send pubsub notifications for:\n\n- New reviews for locations administered by the account.\n- Updated reviews for locations administered by the account.\n- New `GoogleUpdates` for locations administered by the account.\n\nAn account will only have one notification settings resource, and only one\npubsub topic can be set.",
"flatPath": "v4/accounts/{accountsId}/notifications",
"httpMethod": "PUT",
"id": "mybusiness.accounts.updateNotifications",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The notification settings resource name.",
"location": "path",
"pattern": "^accounts/[^/]+/notifications$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Notifications"
},
"response": {
"$ref": "Notifications"
}
}
},
"resources": {
"admins": {
"methods": {
"create": {
"description": "Invites the specified user to become an administrator for the specified\naccount. The invitee must accept the invitation in order to be granted\naccess to the account. See AcceptInvitation to programmatically accept an\ninvitation.",
"flatPath": "v4/accounts/{accountsId}/admins",
"httpMethod": "POST",
"id": "mybusiness.accounts.admins.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The resource name of the account this admin is created for.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/admins",
"request": {
"$ref": "Admin"
},
"response": {
"$ref": "Admin"
}
},
"delete": {
"description": "Removes the specified admin from the specified account.",
"flatPath": "v4/accounts/{accountsId}/admins/{adminsId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.admins.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the admin to remove from the account.",
"location": "path",
"pattern": "^accounts/[^/]+/admins/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"list": {
"description": "Lists the admins for the specified account.",
"flatPath": "v4/accounts/{accountsId}/admins",
"httpMethod": "GET",
"id": "mybusiness.accounts.admins.list",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the account from which to retrieve a list of admins.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/admins",
"response": {
"$ref": "ListAccountAdminsResponse"
}
},
"patch": {
"description": "Updates the Admin for the specified Account Admin. Only the AdminRole of\nthe Admin can be updated.",
"flatPath": "v4/accounts/{accountsId}/admins/{adminsId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.admins.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the admin to update.",
"location": "path",
"pattern": "^accounts/[^/]+/admins/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Admin"
},
"response": {
"$ref": "Admin"
}
}
}
},
"invitations": {
"methods": {
"accept": {
"description": "Accepts the specified invitation.",
"flatPath": "v4/accounts/{accountsId}/invitations/{invitationsId}:accept",
"httpMethod": "POST",
"id": "mybusiness.accounts.invitations.accept",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the invitation that is being accepted.",
"location": "path",
"pattern": "^accounts/[^/]+/invitations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:accept",
"request": {
"$ref": "AcceptInvitationRequest"
},
"response": {
"$ref": "Empty"
}
},
"decline": {
"description": "Declines the specified invitation.",
"flatPath": "v4/accounts/{accountsId}/invitations/{invitationsId}:decline",
"httpMethod": "POST",
"id": "mybusiness.accounts.invitations.decline",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account invitation that is being declined.",
"location": "path",
"pattern": "^accounts/[^/]+/invitations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:decline",
"request": {
"$ref": "DeclineInvitationRequest"
},
"response": {
"$ref": "Empty"
}
},
"list": {
"description": "Lists pending invitations for the specified account.",
"flatPath": "v4/accounts/{accountsId}/invitations",
"httpMethod": "GET",
"id": "mybusiness.accounts.invitations.list",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the account from which the list of invitations is being\nretrieved.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
},
"targetType": {
"description": "Specifies which target types should appear in the response.",
"enum": [
"ALL",
"ACCOUNTS_ONLY",
"LOCATIONS_ONLY"
],
"location": "query",
"type": "string"
}
},
"path": "v4/{+parent}/invitations",
"response": {
"$ref": "ListInvitationsResponse"
}
}
}
},
"locations": {
"methods": {
"associate": {
"description": "Associates a location to a place ID. Any previous association is\noverwritten. This operation is only valid if the location is unverified.\nThe association must be valid, that is, it appears in the list of\n`FindMatchingLocations`.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:associate",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.associate",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the location to associate.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:associate",
"request": {
"$ref": "AssociateLocationRequest"
},
"response": {
"$ref": "Empty"
}
},
"batchGet": {
"description": "Gets all of the specified locations in the given account.",
"flatPath": "v4/accounts/{accountsId}/locations:batchGet",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.batchGet",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account from which to fetch locations.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/locations:batchGet",
"request": {
"$ref": "BatchGetLocationsRequest"
},
"response": {
"$ref": "BatchGetLocationsResponse"
}
},
"batchGetReviews": {
"description": "Returns the paginated list of reviews for all specified locations.\nThis operation is only valid if the specified locations are verified.\n<aside class=\"note\"><b>Note:</b> Reviews are limited\nto a batch size of 200 `location_names` per call.</aside>",
"flatPath": "v4/accounts/{accountsId}/locations:batchGetReviews",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.batchGetReviews",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the account from which to retrieve a list of reviews across\nmultiple locations.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/locations:batchGetReviews",
"request": {
"$ref": "BatchGetReviewsRequest"
},
"response": {
"$ref": "BatchGetReviewsResponse"
}
},
"clearAssociation": {
"description": "Clears an association between a location and its place ID. This\noperation is only valid if the location is unverified.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:clearAssociation",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.clearAssociation",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the location to disassociate.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:clearAssociation",
"request": {
"$ref": "ClearLocationAssociationRequest"
},
"response": {
"$ref": "Empty"
}
},
"create": {
"description": "Creates a new location owned by the\nspecified account, and returns it.",
"flatPath": "v4/accounts/{accountsId}/locations",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the account in which to create this location.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
},
"requestId": {
"description": "A unique request ID for the server to detect duplicated requests.\nWe recommend using UUIDs. Max length is 50 characters.",
"location": "query",
"type": "string"
},
"validateOnly": {
"description": "If true, the request is validated without actually creating the location.",
"location": "query",
"type": "boolean"
}
},
"path": "v4/{+parent}/locations",
"request": {
"$ref": "Location"
},
"response": {
"$ref": "Location"
}
},
"delete": {
"description": "Deletes a location.\n\n<aside class=\"note\"><b>Note:</b> If this location cannot be deleted using\nthe API as marked in the\nLocationState, use the [Google My\nBusiness](https://business.google.com/manage/) website.\n\nReturns `NOT_FOUND` if the location does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the location to delete.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"fetchVerificationOptions": {
"description": "Reports all eligible verification options for a location in a specific\nlanguage.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:fetchVerificationOptions",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.fetchVerificationOptions",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Resource name of the location to verify.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:fetchVerificationOptions",
"request": {
"$ref": "FetchVerificationOptionsRequest"
},
"response": {
"$ref": "FetchVerificationOptionsResponse"
}
},
"findMatches": {
"description": "Finds all of the possible locations that are a match to the specified\nlocation. This operation is only valid if the location is unverified.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:findMatches",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.findMatches",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the location to find matches for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:findMatches",
"request": {
"$ref": "FindMatchingLocationsRequest"
},
"response": {
"$ref": "FindMatchingLocationsResponse"
}
},
"get": {
"description": "Gets the specified location. Returns `NOT_FOUND` if the\nlocation does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the location to fetch.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Location"
}
},
"getGoogleUpdated": {
"description": "Gets the Google-updated version of the specified location.\nReturns `NOT_FOUND` if the location does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:googleUpdated",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.getGoogleUpdated",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the location to fetch.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:googleUpdated",
"response": {
"$ref": "GoogleUpdatedLocation"
}
},
"list": {
"description": "Lists the locations for the specified account.",
"flatPath": "v4/accounts/{accountsId}/locations",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "A filter constraining the locations to return. The response includes\nonly entries that match the filter. If `filter` is empty, then\nconstraints are applied and all locations (paginated) are retrieved for\nthe requested account.\n\nFor more information about valid fields and example usage, see [Work with\nLocation Data\nGuide](https://developers.google.com/my-business/content/location-data#filter_results_when_you_list_locations).",
"location": "query",
"type": "string"
},
"languageCode": {
"description": "The BCP 47 code of language to get display location properties in. If this\nlanguage is not available, they will be provided in the language of the\nlocation. If neither is available, they will be provided in English.",
"location": "query",
"type": "string"
},
"orderBy": {
"description": "Sorting order for the request. Multiple fields should be comma-separated,\nfollowing SQL syntax.\nThe default sorting order is ascending. To specify descending order, a\nsuffix \" desc\" should be added.\nValid fields to order_by are location_name and store_code. For example:\n\"location_name, store_code desc\" or \"location_name\" or \"store_code desc\"",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many locations to fetch per page. Default is 100,\nminimum is 1, and maximum page size is 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, it fetches the next `page` of locations. The page token\nis returned by previous calls to `ListLocations` when there were more\nlocations than could fit in the requested page size.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the account to fetch locations from. If the Account is of AccountType PERSONAL, only Locations that are\ndirectly owned by the Account are returned, otherwise it will return all\naccessible locations from the Account, either directly or indirectly.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/locations",
"response": {
"$ref": "ListLocationsResponse"
}
},
"patch": {
"description": "Updates the specified location.\n\nPhotos are only allowed on a location that has a Google+ page.\n\nReturns `NOT_FOUND` if the location does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.locations.patch",
"parameterOrder": [
"name"
],
"parameters": {
"attributeMask": {
"description": "The IDs of the attributes to update. Only attributes noted in the mask will\nbe updated. If an attribute is present in the mask and not in the location,\nit will be removed. An empty mask will update all attributes.\n\nWhenever this field is set, the update_mask should include attributes as\none of the fields to update.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
},
"name": {
"description": "The name of the location to update.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The specific fields to update. If no mask is specified, then this is\ntreated as a full update and all fields are set to the values passed\nin, which may include unsetting empty fields in the request.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
},
"validateOnly": {
"description": "If true, the request is validated without actually updating the location.",
"location": "query",
"type": "boolean"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Location"
},
"response": {
"$ref": "Location"
}
},
"reportInsights": {
"description": "Returns a report containing insights on one or more metrics by location.\n\n<aside class=\"note\"><b>Note:</b> Insight reports are limited\nto a batch size of 10 `location_names` per call.</aside>",
"flatPath": "v4/accounts/{accountsId}/locations:reportInsights",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.reportInsights",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The account resource name.",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/locations:reportInsights",
"request": {
"$ref": "ReportLocationInsightsRequest"
},
"response": {
"$ref": "ReportLocationInsightsResponse"
}
},
"transfer": {
"description": "Moves a location from an account that the user owns to another account\nthat the same user administers. The user must be an owner of the account\nthe location is currently associated with and must also be at least a\nmanager of the destination account. Returns the Location with its new\nresource name.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:transfer",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.transfer",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the location to transfer.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:transfer",
"request": {
"$ref": "TransferLocationRequest"
},
"response": {
"$ref": "Location"
}
},
"verify": {
"description": "Starts the verification process for a location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}:verify",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.verify",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Resource name of the location to verify.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:verify",
"request": {
"$ref": "VerifyLocationRequest"
},
"response": {
"$ref": "VerifyLocationResponse"
}
}
},
"resources": {
"admins": {
"methods": {
"create": {
"description": "Invites the specified user to become an administrator for the specified\nlocation. The invitee must accept the invitation in order to be granted\naccess to the location. See AcceptInvitation to programmatically accept an\ninvitation.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/admins",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.admins.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The resource name of the location this admin is created for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/admins",
"request": {
"$ref": "Admin"
},
"response": {
"$ref": "Admin"
}
},
"delete": {
"description": "Removes the specified admin as a manager of the specified location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/admins/{adminsId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.admins.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the admin to remove from the location.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/admins/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"list": {
"description": "Lists all of the admins for the specified location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/admins",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.admins.list",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the location to list admins of.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/admins",
"response": {
"$ref": "ListLocationAdminsResponse"
}
},
"patch": {
"description": "Updates the Admin for the specified Location Admin. Only the AdminRole of\nthe Admin can be updated.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/admins/{adminsId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.locations.admins.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the admin to update.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/admins/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Admin"
},
"response": {
"$ref": "Admin"
}
}
}
},
"followers": {
"methods": {
"getMetadata": {
"description": "Get the followers settings for a location.\n\nNOT_FOUND is returned if either the account or the location doesn't exist.\nPRECONDITION_FAILED is returned if the location is not verified nor\nconnected to Maps.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/followers/metadata",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.followers.getMetadata",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the location's followers metadata.\naccounts/{account_id}/locations/{location_id}/followers/metadata",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/followers/metadata$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "FollowersMetadata"
}
}
}
},
"localPosts": {
"methods": {
"create": {
"description": "Creates a new local post associated with the specified location, and\nreturns it.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.localPosts.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the location in which to create this local post.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/localPosts",
"request": {
"$ref": "LocalPost"
},
"response": {
"$ref": "LocalPost"
}
},
"delete": {
"description": "Deletes a local post.\nReturns `NOT_FOUND` if the local post does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts/{localPostsId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.localPosts.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the local post to delete.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/localPosts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"get": {
"description": "Gets the specified local post.\nReturns `NOT_FOUND` if the local post does not exist.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts/{localPostsId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.localPosts.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the local post to fetch.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/localPosts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "LocalPost"
}
},
"list": {
"description": "Returns a list of local posts associated with a location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.localPosts.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "How many local posts to return per page. Default of 20. The minimum is 1,\nand maximum page size is 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, returns the next page of local posts.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the location whose local posts will be listed.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/localPosts",
"response": {
"$ref": "ListLocalPostsResponse"
}
},
"patch": {
"description": "Updates the specified local post and returns the updated local post.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts/{localPostsId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.locations.localPosts.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the local post to update.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/localPosts/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The specific fields to update. You must specify each field that is being\nupdated in the mask.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "LocalPost"
},
"response": {
"$ref": "LocalPost"
}
},
"reportInsights": {
"description": "Returns insights for a set of local posts associated with a single listing.\nWhich metrics and how they are reported are options specified in the\nrequest proto.\n<aside class=\"note\"><b>Note:</b> Insight reports are limited\nto 100 `local_post_names` per call.</aside>",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/localPosts:reportInsights",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.localPosts.reportInsights",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the location for which to fetch insights.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/localPosts:reportInsights",
"request": {
"$ref": "ReportLocalPostInsightsRequest"
},
"response": {
"$ref": "ReportLocalPostInsightsResponse"
}
}
}
},
"media": {
"methods": {
"create": {
"description": "Creates a new media item for the location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.media.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The resource name of the location where this media item will be created.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/media",
"request": {
"$ref": "MediaItem"
},
"response": {
"$ref": "MediaItem"
}
},
"delete": {
"description": "Deletes the specified media item.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media/{mediaId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.media.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the media item to be deleted.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/media/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"get": {
"description": "Returns metadata for the requested media item.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media/{mediaId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.media.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the requested media item.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/media/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "MediaItem"
}
},
"list": {
"description": "Returns a list of media items associated with a location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.media.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "How many media items to return per page. The default value is 100, which is\nalso the maximum supported number of media items able to be added to a\nlocation with the My Business API. Maximum page size is 2500.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, returns the next page of media items.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the location whose media items will be listed.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/media",
"response": {
"$ref": "ListMediaItemsResponse"
}
},
"patch": {
"description": "Updates metadata of the specified media item.\nThis can only be used to update the Category of a media item,\nwith the exception that the new category cannot be COVER or PROFILE.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media/{mediaId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.locations.media.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the media item to be updated.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/media/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The specific fields to update. If no mask is specified, then this is\ntreated as a full update and all editable fields are set to the values\npassed in.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "MediaItem"
},
"response": {
"$ref": "MediaItem"
}
},
"startUpload": {
"description": "Generates a `MediaItemDataRef` for media item uploading.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media:startUpload",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.media.startUpload",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The resource name of the location this media item is to be added to.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/media:startUpload",
"request": {
"$ref": "StartUploadMediaItemDataRequest"
},
"response": {
"$ref": "MediaItemDataRef"
}
}
},
"resources": {
"customers": {
"methods": {
"get": {
"description": "Returns metadata for the requested customer media item.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media/customers/{customersId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.media.customers.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the requested customer media item.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/media/customers/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "MediaItem"
}
},
"list": {
"description": "Returns a list of media items associated with a location that have been\ncontributed by customers.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/media/customers",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.media.customers.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "How many media items to return per page. The default value is 100, the\nmaximum supported page size is 200.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, returns the next page of media items.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the location whose customer media items will be listed.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/media/customers",
"response": {
"$ref": "ListCustomerMediaItemsResponse"
}
}
}
}
}
},
"questions": {
"methods": {
"create": {
"description": "Adds a question for the specified location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.questions.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the location to write a question for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/questions",
"request": {
"$ref": "Question"
},
"response": {
"$ref": "Question"
}
},
"delete": {
"description": "Deletes a specific question written by the current user.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions/{questionsId}",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.questions.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the question to delete.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/questions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Empty"
}
},
"list": {
"description": "Returns the paginated list of questions and some of its answers for a\nspecified location.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.questions.list",
"parameterOrder": [
"parent"
],
"parameters": {
"answersPerQuestion": {
"description": "How many answers to fetch per question. The default and maximum\n`answers_per_question` values are 10.",
"format": "int32",
"location": "query",
"type": "integer"
},
"filter": {
"description": "A filter constraining the questions to return. The only filter currently\nsupported is \"ignore_answered=true\"",
"location": "query",
"type": "string"
},
"orderBy": {
"description": "The order to return the questions. Valid options include 'update_time desc'\nand 'upvote_count desc', which will return the questions sorted\ndescendingly by the requested field. The default sort order is 'update_time\ndesc'.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many questions to fetch per page. The default and maximum `page_size`\nvalues are 10.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of questions is retrieved.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the location to fetch questions for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/questions",
"response": {
"$ref": "ListQuestionsResponse"
}
},
"patch": {
"description": "Updates a specific question written by the current user.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions/{questionsId}",
"httpMethod": "PATCH",
"id": "mybusiness.accounts.locations.questions.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the question to update.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/questions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"request": {
"$ref": "Question"
},
"response": {
"$ref": "Question"
}
}
},
"resources": {
"answers": {
"methods": {
"delete": {
"description": "Deletes the answer written by the current user to a question.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions/{questionsId}/answers:delete",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.questions.answers.delete",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the question to delete an answer for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/questions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/answers:delete",
"response": {
"$ref": "Empty"
}
},
"list": {
"description": "Returns the paginated list of answers for a specified question.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions/{questionsId}/answers",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.questions.answers.list",
"parameterOrder": [
"parent"
],
"parameters": {
"orderBy": {
"description": "The order to return the answers. Valid options include 'update_time desc'\nand 'upvote_count desc', which will return the answers sorted\ndescendingly by the requested field. The default sort order is 'update_time\ndesc'.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many answers to fetch per page. The default and maximum `page_size`\nvalues are 10.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of answers is retrieved.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the question to fetch answers for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/questions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/answers",
"response": {
"$ref": "ListAnswersResponse"
}
},
"upsert": {
"description": "Creates an answer or updates the existing answer written by the user for\nthe specified question. A user can only create one answer per question.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/questions/{questionsId}/answers:upsert",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.questions.answers.upsert",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "The name of the question to write an answer for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/questions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/answers:upsert",
"request": {
"$ref": "UpsertAnswerRequest"
},
"response": {
"$ref": "Answer"
}
}
}
}
}
},
"reviews": {
"methods": {
"deleteReply": {
"description": "Deletes the response to the specified review.\nThis operation is only valid if the specified location is verified.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/reviews/{reviewsId}/reply",
"httpMethod": "DELETE",
"id": "mybusiness.accounts.locations.reviews.deleteReply",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the review reply to delete.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/reviews/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/reply",
"response": {
"$ref": "Empty"
}
},
"get": {
"description": "Returns the specified review.\nThis operation is only valid if the specified location is verified.\nReturns `NOT_FOUND` if the review does not exist, or has been deleted.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/reviews/{reviewsId}",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.reviews.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the review to fetch.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/reviews/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Review"
}
},
"list": {
"description": "Returns the paginated list of reviews for the specified location.\nThis operation is only valid if the specified location is verified.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/reviews",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.reviews.list",
"parameterOrder": [
"parent"
],
"parameters": {
"orderBy": {
"description": "Specifies the field to sort reviews by.\nIf unspecified, the order of reviews returned will\ndefault to `update_time desc`.\nValid orders to sort by are `rating`, `rating desc` and\n`update_time desc`.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many reviews to fetch per page. The maximum `page_size` is\n200.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, it fetches the next page of reviews.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The name of the location to fetch reviews for.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/reviews",
"response": {
"$ref": "ListReviewsResponse"
}
},
"updateReply": {
"description": "Updates the reply to the specified review.\nA reply is created if one does not exist.\nThis operation is only valid if the specified location is verified.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/reviews/{reviewsId}/reply",
"httpMethod": "PUT",
"id": "mybusiness.accounts.locations.reviews.updateReply",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the review to respond to.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/reviews/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}/reply",
"request": {
"$ref": "ReviewReply"
},
"response": {
"$ref": "ReviewReply"
}
}
}
},
"verifications": {
"methods": {
"complete": {
"description": "Completes a `PENDING` verification.\n\nIt is only necessary for non `AUTO` verification methods. `AUTO`\nverification request is instantly `VERIFIED` upon creation.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/verifications/{verificationsId}:complete",
"httpMethod": "POST",
"id": "mybusiness.accounts.locations.verifications.complete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Resource name of the verification to complete.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+/verifications/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:complete",
"request": {
"$ref": "CompleteVerificationRequest"
},
"response": {
"$ref": "CompleteVerificationResponse"
}
},
"list": {
"description": "List verifications of a location, ordered by create time.",
"flatPath": "v4/accounts/{accountsId}/locations/{locationsId}/verifications",
"httpMethod": "GET",
"id": "mybusiness.accounts.locations.verifications.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "How many verification to include per page. If not set, return all.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, returns the next page of verifications.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Resource name of the location that verification requests belong to.",
"location": "path",
"pattern": "^accounts/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+parent}/verifications",
"response": {
"$ref": "ListVerificationsResponse"
}
}
}
}
}
}
}
},
"attributes": {
"methods": {
"list": {
"description": "Returns the list of available attributes that would be available for a\nlocation with the given primary category and country.",
"flatPath": "v4/attributes",
"httpMethod": "GET",
"id": "mybusiness.attributes.list",
"parameterOrder": [],
"parameters": {
"categoryId": {
"description": "The primary category stable ID to find available attributes.",
"location": "query",
"type": "string"
},
"country": {
"description": "The ISO 3166-1 alpha-2 country code to find available attributes.",
"location": "query",
"type": "string"
},
"languageCode": {
"description": "The BCP 47 code of language to get attribute display names in. If this\nlanguage is not available, they will be provided in English.",
"location": "query",
"type": "string"
},
"name": {
"description": "Resource name of the location to look up available attributes.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many attributes to include per page. Default is 200, minimum is 1.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of attribute metadata is retrieved. The\n`pageToken` is returned when a call to `attributes.list` returns more\nresults than can fit into the requested page size.",
"location": "query",
"type": "string"
}
},
"path": "v4/attributes",
"response": {
"$ref": "ListAttributeMetadataResponse"
}
}
}
},
"categories": {
"methods": {
"list": {
"description": "Returns a list of business categories. Search will match the category name\nbut not the category ID.\n\n<aside class=\"note\"><b>Note:</b> Search only matches the front of\na category name (that is, 'food' may return 'Food Court' but not 'Fast Food\nRestaurant').</aside>",
"flatPath": "v4/categories",
"httpMethod": "GET",
"id": "mybusiness.categories.list",
"parameterOrder": [],
"parameters": {
"languageCode": {
"description": "The BCP 47 code of language. If the language is not available, it will\ndefault to English.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "How many categories to fetch per page. Default is 100,\nminimum is 1, and maximum page size is 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "If specified, the next page of categories will be fetched.",
"location": "query",
"type": "string"
},
"regionCode": {
"description": "The ISO 3166-1 alpha-2 country code.",
"location": "query",
"type": "string"
},
"searchTerm": {
"description": "Optional filter string from user.",
"location": "query",
"type": "string"
}
},
"path": "v4/categories",
"response": {
"$ref": "ListBusinessCategoriesResponse"
}
}
}
},
"chains": {
"methods": {
"get": {
"description": "Gets the specified chain. Returns `NOT_FOUND` if the\nchain does not exist.",
"flatPath": "v4/chains/{chainsId}",
"httpMethod": "GET",
"id": "mybusiness.chains.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The chain's resource name, in the format `chains/{chain_place_id}`.",
"location": "path",
"pattern": "^chains/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}",
"response": {
"$ref": "Chain"
}
},
"search": {
"description": "Searches the chain based on chain name.",
"flatPath": "v4/chains:search",
"httpMethod": "GET",
"id": "mybusiness.chains.search",
"parameterOrder": [],
"parameters": {
"chainDisplayName": {
"description": "Search for a chain by its name.\nExact/partial/fuzzy/related queries are supported.\nExamples: \"walmart\", \"wal-mart\", \"walmmmart\", \"\u6c83\u5c14\u739b\"",
"location": "query",
"type": "string"
},
"resultCount": {
"description": "The maximum number of matched chains to return from this query.\nThe default is 10. The maximum possible value is 500.",
"format": "int32",
"location": "query",
"type": "integer"
}
},
"path": "v4/chains:search",
"response": {
"$ref": "SearchChainsResponse"
}
}
}
},
"googleLocations": {
"methods": {
"report": {
"description": "Report a GoogleLocation.",
"flatPath": "v4/googleLocations/{googleLocationsId}:report",
"httpMethod": "POST",
"id": "mybusiness.googleLocations.report",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Resource name of a [GoogleLocation], in the format\n`googleLocations/{googleLocationId}`.",
"location": "path",
"pattern": "^googleLocations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v4/{+name}:report",
"request": {
"$ref": "ReportGoogleLocationRequest"
},
"response": {
"$ref": "Empty"
}
},
"search": {
"description": "Search all of the possible locations that are a match to the specified\nrequest.",
"flatPath": "v4/googleLocations:search",
"httpMethod": "POST",
"id": "mybusiness.googleLocations.search",
"parameterOrder": [],
"parameters": {},
"path": "v4/googleLocations:search",
"request": {
"$ref": "SearchGoogleLocationsRequest"
},
"response": {
"$ref": "SearchGoogleLocationsResponse"
}
}
}
},
"verificationTokens": {
"methods": {
"generate": {
"description": "Generates a token for the provided location data as a vetted partner.\n\nThrows PERMISSION_DENIED if the caller is not a vetted partner account.\nThrows FAILED_PRECONDITION if the caller's VettedStatus is INVALID.",
"flatPath": "v4/verificationTokens:generate",
"httpMethod": "POST",
"id": "mybusiness.verificationTokens.generate",
"parameterOrder": [],
"parameters": {},
"path": "v4/verificationTokens:generate",
"request": {
"$ref": "GenerateVerificationTokenRequest"
},
"response": {
"$ref": "GenerateVerificationTokenResponse"
}
}
}
}
},
"revision": "0",
"rootUrl": "https://mybusiness.googleapis.com/",
"schemas": {
"AcceptInvitationRequest": {
"description": "Request message for AccessControl.AcceptInvitation.",
"id": "AcceptInvitationRequest",
"properties": {},
"type": "object"
},
"Account": {
"description": "An account is a container for your business's locations. If you are the only\nuser who manages locations for your business, you can use your personal\nGoogle Account. To share management of locations with multiple users,\n[create a business account]\n(https://support.google.com/business/answer/6085339?ref_topic=6085325).",
"id": "Account",
"properties": {
"accountName": {
"description": "The name of the account. <aside class=\"note\"><b>Note:</b> For an account\nwith AccountType `PERSONAL`,\nthis is the first and last name of the user account.</aside>",
"type": "string"
},
"accountNumber": {
"description": "Account reference number if provisioned.",
"type": "string"
},
"name": {
"description": "The resource name, in the format `accounts/{account_id}`.",
"type": "string"
},
"organizationInfo": {
"$ref": "OrganizationInfo",
"description": "Additional info for an organization. This is populated only for an\norganization account."
},
"permissionLevel": {
"description": "Output only. Specifies the PermissionLevel the caller has for this account.",
"enum": [
"PERMISSION_LEVEL_UNSPECIFIED",
"OWNER_LEVEL",
"MEMBER_LEVEL"
],
"enumDescriptions": [
"Not specified.",
"The user has owner level permission.",
"The user has member level permission."
],
"type": "string"
},
"role": {
"description": "Output only. Specifies the AccountRole\nthe caller has for this account.",
"enum": [
"ACCOUNT_ROLE_UNSPECIFIED",
"OWNER",
"CO_OWNER",
"MANAGER",
"COMMUNITY_MANAGER"
],
"enumDescriptions": [
"Not specified.",
"The user owns this account. (Displays as 'Primary Owner' in UI).",
"The user is a co-owner of the account. (Displays as 'Owner' in UI).",
"The user can manage this account.",
"The user can manage social (Google+) pages for the account.\n(Displays as 'Site Manager' in UI)."
],
"type": "string"
},
"state": {
"$ref": "AccountState",
"description": "Output only. Indicates the AccountState of this account."
},
"type": {
"description": "Output only. Specifies the AccountType\nof this account.",
"enum": [
"ACCOUNT_TYPE_UNSPECIFIED",
"PERSONAL",
"LOCATION_GROUP",
"USER_GROUP",
"ORGANIZATION"
],
"enumDescriptions": [
"Not specified.",
"An end-user account.",
"A group of Locations. For more information, see the [help center article]\n(https://support.google.com/business/answer/6085326)",
"A User Group for segregating organization staff in groups. For more\ninformation, see the [help center\narticle](https://support.google.com/business/answer/7655731)",
"An organization representing a company. For more information, see the [help\ncenter article](https://support.google.com/business/answer/7663063)"
],
"type": "string"
}
},
"type": "object"
},
"AccountState": {
"description": "Indicates status of the account, such as whether the account\nhas been verified by Google.",
"id": "AccountState",
"properties": {
"status": {
"description": "If verified, future locations that are created are automatically\nconnected to Google Maps, and have Google+ pages created, without requiring\nmoderation.",
"enum": [
"ACCOUNT_STATUS_UNSPECIFIED",
"VERIFIED",
"UNVERIFIED",
"VERIFICATION_REQUESTED"
],
"enumDescriptions": [
"Not specified.",
"Verified account.",
"Account that is not verified, and verification has not been requested.",
"Account that is not verified, but verification has been requested."
],
"type": "string"
},
"vettedStatus": {
"description": "Indicates whether the account is vetted by Google. A vetted account is able\nto verify locations via the VETTED_PARTNER method.",
"enum": [
"VETTED_STATUS_UNSPECIFIED",
"NOT_VETTED",
"VETTED",
"INVALID"
],
"enumDescriptions": [
"Not Specified",
"The account is not vetted by Google.",
"The account is vetted by Google and in a valid state.\nAn account is automatically vetted if it has direct access to a vetted\ngroup account.",
"The account is vetted but in an invalid state. The account will behave\nlike an unvetted account."
],
"type": "string"
}
},
"type": "object"
},
"AdWordsLocationExtensions": {
"description": "Additional information that is surfaced in AdWords.",
"id": "AdWordsLocationExtensions",
"properties": {
"adPhone": {
"description": "An alternate phone number to display on AdWords location extensions\ninstead of the location's primary phone number.",
"type": "string"
}
},
"type": "object"
},
"AddressInput": {
"description": "Input for ADDRESS verification.",
"id": "AddressInput",
"properties": {
"mailerContactName": {
"description": "Contact name the mail should be sent to.",
"type": "string"
}
},
"type": "object"
},
"AddressVerificationData": {
"description": "Display data for verifications through postcard.",
"id": "AddressVerificationData",
"properties": {
"address": {
"$ref": "PostalAddress",
"description": "Address that a postcard can be sent to."
},
"businessName": {
"description": "Merchant's business name.",
"type": "string"
}
},
"type": "object"
},
"Admin": {
"description": "An administrator of an Account or a\nLocation.",
"id": "Admin",
"properties": {
"adminName": {
"description": "The name of the admin. When making the initial invitation, this is the\ninvitee's email address. On `GET` calls, the user's email address is\nreturned if the invitation is still pending. Otherwise, it contains\nthe user's first and last names.",
"type": "string"
},
"name": {
"description": "The resource name. For account admins, this is in the form:\n`accounts/{account_id}/admins/{admin_id}`\n\nFor location admins, this is in the form:\n`accounts/{account_id}/locations/{location_id}/admins/{admin_id}`",
"type": "string"
},
"pendingInvitation": {
"description": "Output only. Indicates whether this admin has a pending invitation for the\nspecified resource.",
"type": "boolean"
},
"role": {
"description": "Specifies the AdminRole that this\nadmin uses with the specified Account\nor Location resource.",
"enum": [
"ADMIN_ROLE_UNSPECIFIED",
"OWNER",
"CO_OWNER",
"MANAGER",
"COMMUNITY_MANAGER"
],
"enumDescriptions": [
"Not specified.",
"The admin has owner-level access and is the primary owner. (Displays as\n'Primary Owner' in UI).",
"The admin has owner-level access. (Displays as 'Owner' in UI).",
"The admin has managerial access.",
"The admin can manage social (Google+) pages. (Displays as 'Site Manager'\nin UI)."
],
"type": "string"
}
},
"type": "object"
},
"Answer": {
"description": "Represents an answer to a question",
"id": "Answer",
"properties": {
"author": {
"$ref": "Author",
"description": "Output only. The author of the answer."
},
"createTime": {
"description": "Output only. The timestamp for when the answer was written.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "Output only. The unique name for the answer\naccounts/*/locations/*/questions/*/answers/*",
"type": "string"
},
"text": {
"description": "The text of the answer. It should contain at least one non-whitespace\ncharacter. The maximum length is 4096 characters.",
"type": "string"
},
"updateTime": {
"description": "Output only. The timestamp for when the answer was last modified.",
"format": "google-datetime",
"type": "string"
},
"upvoteCount": {
"description": "Output only. The number of upvotes for the answer.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"AssociateLocationRequest": {
"description": "Request message for Locations.AssociateLocationRequest.",
"id": "AssociateLocationRequest",
"properties": {
"placeId": {
"description": "The association to establish. If not set, it indicates no match.",
"type": "string"
}
},
"type": "object"
},
"Attribute": {
"description": "A location attribute. Attributes provide additional information about a\nlocation. The attributes that can be set on a location may vary based on\nthe properties of that location (for example, category). Available attributes\nare determined by Google and may be added and removed without API changes.",
"id": "Attribute",
"properties": {
"attributeId": {
"description": "The ID of the attribute. Attribute IDs are provided by Google.",
"type": "string"
},
"repeatedEnumValue": {
"$ref": "RepeatedEnumAttributeValue",
"description": "When the attribute value type is REPEATED_ENUM, this contains the attribute\nvalue, and the other values fields must be empty."
},
"urlValues": {
"description": "When the attribute value type is URL, this field contains the value(s) for\nthis attribute, and the other values fields must be empty.",
"items": {
"$ref": "UrlAttributeValue"
},
"type": "array"
},
"valueType": {
"description": "Output only. The type of value that this attribute contains. This should be\nused to determine how to interpret the value.",
"enum": [
"ATTRIBUTE_VALUE_TYPE_UNSPECIFIED",
"BOOL",
"ENUM",
"URL",
"REPEATED_ENUM"
],
"enumDescriptions": [
"Not specified.",
"The values for this attribute are boolean values.",
"The attribute has a predetermined list of available values that can be\nused. Metadata for this attribute will list these values.",
"The values for this attribute are URLs.",
"The attribute value is an enum with multiple possible values that can be\nexplicitly set or unset."
],
"type": "string"
},
"values": {
"description": "The values for this attribute. The type of the values supplied must match\nthat expected for that attribute; see\n[AttributeValueType](/my-business/reference/rest/v4/AttributeValueType).\nThis is a repeated field where multiple attribute values may be provided.\nAttribute types only support one value.",
"items": {
"type": "any"
},
"type": "array"
}
},
"type": "object"
},
"AttributeMetadata": {
"description": "Metadata for an attribute. Contains display information for the attribute,\nincluding a localized name and a heading for grouping related attributes\ntogether.",
"id": "AttributeMetadata",
"properties": {
"attributeId": {
"description": "The ID of the attribute.",
"type": "string"
},
"displayName": {
"description": "The localized display name for the attribute, if available; otherwise,\nthe English display name.",
"type": "string"
},
"groupDisplayName": {
"description": "The localized display name of the group that contains this attribute, if\navailable; otherwise, the English group name. Related attributes are\ncollected into a group and should be displayed together under the heading\ngiven here.",
"type": "string"
},
"isDeprecated": {
"description": "If true, the attribute is deprecated and should no longer be used. If\ndeprecated, updating this attribute will not result in an error, but\nupdates will not be saved. At some point after being deprecated, the\nattribute will be removed entirely and it will become an error.",
"type": "boolean"
},
"isRepeatable": {
"description": "If true, the attribute supports multiple values. If false, only a single\nvalue should be provided.",
"type": "boolean"
},
"valueMetadata": {
"description": "For some types of attributes (for example, enums), a list of supported\nvalues and corresponding display names for those values is provided.",
"items": {
"$ref": "AttributeValueMetadata"
},
"type": "array"
},
"valueType": {
"description": "The value type for the attribute. Values set and retrieved should be\nexpected to be of this type.",
"enum": [
"ATTRIBUTE_VALUE_TYPE_UNSPECIFIED",
"BOOL",
"ENUM",
"URL",
"REPEATED_ENUM"
],
"enumDescriptions": [
"Not specified.",
"The values for this attribute are boolean values.",
"The attribute has a predetermined list of available values that can be\nused. Metadata for this attribute will list these values.",
"The values for this attribute are URLs.",
"The attribute value is an enum with multiple possible values that can be\nexplicitly set or unset."
],
"type": "string"
}
},
"type": "object"
},
"AttributeValueMetadata": {
"description": "Metadata for supported attribute values.",
"id": "AttributeValueMetadata",
"properties": {
"displayName": {
"description": "The display name for this value, localized where available; otherwise, in\nEnglish. The value display name is intended to be used in context with\nthe attribute display name.\n\nFor example, for a \"WiFi\" enum attribute, this could contain \"Paid\" to\nrepresent paid Wi-Fi.",
"type": "string"
},
"value": {
"description": "The attribute value.",
"type": "any"
}
},
"type": "object"
},
"Attribution": {
"description": "Attribution information for customer media items, such as the contributor's\nname and profile picture.",
"id": "Attribution",
"properties": {
"profileName": {
"description": "The user name to attribute the media item to.",
"type": "string"
},
"profilePhotoUrl": {
"description": "URL of the attributed user's profile photo thumbnail.",
"type": "string"
},
"profileUrl": {
"description": "The URL of the attributed user's Google Maps profile page.",
"type": "string"
},
"takedownUrl": {
"description": "The URL of the takedown page, where the media item can be reported if it\nis inappropriate.",
"type": "string"
}
},
"type": "object"
},
"Author": {
"description": "Represents the author of a question or answer",
"id": "Author",
"properties": {
"displayName": {
"description": "The display name of the user",
"type": "string"
},
"profilePhotoUrl": {
"description": "The profile photo URL of the user.",
"type": "string"
},
"type": {
"description": "The type of user the author is.",
"enum": [
"AUTHOR_TYPE_UNSPECIFIED",
"REGULAR_USER",
"LOCAL_GUIDE",
"MERCHANT"
],
"enumDescriptions": [
"This should not be used.",
"A regular user.",
"A Local Guide",
"The owner/manager of the location"
],
"type": "string"
}
},
"type": "object"
},
"BasicMetricsRequest": {
"description": "A request for basic metric insights.",
"id": "BasicMetricsRequest",
"properties": {
"metricRequests": {
"description": "A collection of metrics to return values for including the options for\nhow the data should be returned.",
"items": {
"$ref": "MetricRequest"
},
"type": "array"
},
"timeRange": {
"$ref": "TimeRange",
"description": "The range to gather metrics for. The maximum range is 18 months from the\nrequest date. In some cases, the data may still be missing for days close\nto the request date. Missing data will be specified in the `metricValues`\nin the response."
}
},
"type": "object"
},
"BatchGetLocationsRequest": {
"description": "Request message for Locations.BatchGetLocations.",
"id": "BatchGetLocationsRequest",
"properties": {
"locationNames": {
"description": "A collection of locations to fetch, specified by their names.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"BatchGetLocationsResponse": {
"description": "Response message for Locations.BatchGetLocations.",
"id": "BatchGetLocationsResponse",
"properties": {
"locations": {
"description": "A collection of locations.",
"items": {
"$ref": "Location"
},
"type": "array"
}
},
"type": "object"
},
"BatchGetReviewsRequest": {
"description": "Request message for Reviews.BatchGetReviews.",
"id": "BatchGetReviewsRequest",
"properties": {
"ignoreRatingOnlyReviews": {
"description": "Whether to ignore rating-only reviews.",
"type": "boolean"
},
"locationNames": {
"description": "A collection of locations to fetch reviews for, specified by their names.",
"items": {
"type": "string"
},
"type": "array"
},
"orderBy": {
"description": "Optional. Specifies the field to sort reviews by.\nIf unspecified, the order of reviews returned will\ndefault to `update_time desc`.\nValid orders to sort by are `rating`, `rating desc` and `update_time desc`.\n`rating` will return reviews in ascending order.\n`update_time`(i.e. ascending order) is not supported.",
"type": "string"
},
"pageSize": {
"description": "How many reviews to fetch per page. The default value is 200.",
"format": "int32",
"type": "integer"
},
"pageToken": {
"description": "If specified, it fetches the next page of reviews.",
"type": "string"
}
},
"type": "object"
},
"BatchGetReviewsResponse": {
"description": "Response message for Reviews.BatchGetReviews.",
"id": "BatchGetReviewsResponse",
"properties": {
"locationReviews": {
"description": "Reviews with location information.",
"items": {
"$ref": "LocationReview"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of reviews exceeded the requested page size, this field\nis populated with a token to fetch the next page of reviews on a subsequent\ncalls. If there are no more reviews, this field will not be present in the\nresponse.",
"type": "string"
}
},
"type": "object"
},
"BusinessHours": {
"description": "Represents the time periods that this location is open for business.\nHolds a collection of TimePeriod\ninstances.",
"id": "BusinessHours",
"properties": {
"periods": {
"description": "A collection of times that this location is open for business. Each period\nrepresents a range of hours when the location is open during the week.",
"items": {
"$ref": "TimePeriod"
},
"type": "array"
}
},
"type": "object"
},
"CallToAction": {
"description": "An action that is performed when the user clicks through the post",
"id": "CallToAction",
"properties": {
"actionType": {
"description": "The type of action that will be performed.",
"enum": [
"ACTION_TYPE_UNSPECIFIED",
"BOOK",
"ORDER",
"SHOP",
"LEARN_MORE",
"SIGN_UP",
"GET_OFFER",
"CALL"
],
"enumDescriptions": [
"Type unspecified.",
"This post wants a user to book an appointment/table/etc.",
"This post wants a user to order something.",
"This post wants a user to browse a product catalog.",
"This post wants a user to learn more (at their website).",
"This post wants a user to register/sign up/join something.",
"Deprecated. Use `OFFER` in `LocalPostTopicType` to create a post with\noffer content.",
"This post wants a user to call the business."
],
"type": "string"
},
"url": {
"description": "The URL the user will be directed to upon clicking. This field should be\nleft unset for Call CTA.",
"type": "string"
}
},
"type": "object"
},
"Category": {
"description": "A category describing what this business is (not what it does). For a list of\nvalid category IDs, and the mappings to their human-readable names, see\n[categories.list](/my-business/reference/rest/v4/categories/list).",
"id": "Category",
"properties": {
"categoryId": {
"description": "@OutputOnly.\nA stable ID (provided by Google) for this category.\nThe `category_id` must be specified when modifying the category (when\ncreating or updating a location).",
"type": "string"
},
"displayName": {
"description": "@OutputOnly.\nThe human-readable name of the category. This is set when\nreading the location. When modifying the location, `category_id` must be\nset.",
"type": "string"
}
},
"type": "object"
},
"Chain": {
"description": "A chain is a brand that your business's locations can be affiliated with.",
"id": "Chain",
"properties": {
"chainNames": {
"description": "Names of the chain.",
"items": {
"$ref": "ChainName"
},
"type": "array"
},
"locationCount": {
"description": "Number of locations that are part of this chain.",
"format": "int32",
"type": "integer"
},
"name": {
"description": "The chain's resource name, in the format `chains/{chain_place_id}`.",
"type": "string"
},
"websites": {
"description": "Websites of the chain.",
"items": {
"$ref": "ChainUrl"
},
"type": "array"
}
},
"type": "object"
},
"ChainName": {
"description": "Name to be used when displaying the chain.",
"id": "ChainName",
"properties": {
"displayName": {
"description": "The display name for this chain.",
"type": "string"
},
"languageCode": {
"description": "The BCP 47 code of language of the name.",
"type": "string"
}
},
"type": "object"
},
"ChainUrl": {
"description": "Url to be used when displaying the chain.",
"id": "ChainUrl",
"properties": {
"url": {
"description": "The url for this chain.",
"type": "string"
}
},
"type": "object"
},
"ClearLocationAssociationRequest": {
"description": "Request message for Locations.ClearLocationAssociationRequest.",
"id": "ClearLocationAssociationRequest",
"properties": {},
"type": "object"
},
"CompleteVerificationRequest": {
"description": "Request message for Verifications.CompleteVerificationAction.",
"id": "CompleteVerificationRequest",
"properties": {
"pin": {
"description": "PIN code received by the merchant to complete the verification.",
"type": "string"
}
},
"type": "object"
},
"CompleteVerificationResponse": {
"description": "Response message for Verifications.CompleteVerificationAction.",
"id": "CompleteVerificationResponse",
"properties": {
"verification": {
"$ref": "Verification",
"description": "The completed verification."
}
},
"type": "object"
},
"Date": {
"description": "Represents a whole or partial calendar date, e.g. a birthday. The time of day\nand time zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. This can represent:\n\n* A full date, with non-zero year, month and day values\n* A month and day value, with a zero year, e.g. an anniversary\n* A year on its own, with zero month and day values\n* A year and month value, with a zero day, e.g. a credit card expiration date\n\nRelated types are google.type.TimeOfDay and `google.protobuf.Timestamp`.",
"id": "Date",
"properties": {
"day": {
"description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year by itself or a year and month where the day is not\nsignificant.",
"format": "int32",
"type": "integer"
},
"month": {
"description": "Month of year. Must be from 1 to 12, or 0 if specifying a year without a\nmonth and day.",
"format": "int32",
"type": "integer"
},
"year": {
"description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"DeclineInvitationRequest": {
"description": "Request message for AccessControl.DeclineInvitation.",
"id": "DeclineInvitationRequest",
"properties": {},
"type": "object"
},
"DimensionalMetricValue": {
"description": "A value for a single metric with a given time dimension.",
"id": "DimensionalMetricValue",
"properties": {
"metricOption": {
"description": "The option that requested this dimensional value.",
"enum": [
"METRIC_OPTION_UNSPECIFIED",
"AGGREGATED_TOTAL",
"AGGREGATED_DAILY",
"BREAKDOWN_DAY_OF_WEEK",
"BREAKDOWN_HOUR_OF_DAY"
],
"enumDescriptions": [
"No metric option specified. Will default to AGGREGATED_TOTAL in a request.",
"Return values aggregated over the entire time frame.\nThis is the default value.",
"Return daily timestamped values across time range.",
"Values will be returned as a breakdown by day of the week.\nOnly valid for ACTIONS_PHONE.",
"Values will be returned as a breakdown by hour of the day.\nOnly valid for ACTIONS_PHONE."
],
"type": "string"
},
"timeDimension": {
"$ref": "TimeDimension",
"description": "The dimension for the value."
},
"value": {
"description": "The value. If no value is set, then the requested data is missing.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"Dimensions": {
"description": "Dimensions of the media item.",
"id": "Dimensions",
"properties": {
"heightPixels": {
"description": "Height of the media item, in pixels.",
"format": "int32",
"type": "integer"
},
"widthPixels": {
"description": "Width of the media item, in pixels.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"DrivingDirectionMetricsRequest": {
"description": "A request for driving direction insights.",
"id": "DrivingDirectionMetricsRequest",
"properties": {
"languageCode": {
"description": "The BCP 47 code for the language. If a language code is not provided,\nit defaults to English.",
"type": "string"
},
"numDays": {
"description": "The number of days to aggregate data for. Results returned will\nbe available data over the last number of requested days.\nValid values are 7, 30, and 90.",
"enum": [
"SEVEN",
"THIRTY",
"NINETY"
],
"enumDescriptions": [
"7 days. This is the default value.",
"30 days.",
"90 days."
],
"type": "string"
}
},
"type": "object"
},
"Duplicate": {
"description": "Information about the location that this location duplicates.",
"id": "Duplicate",
"properties": {
"access": {
"description": "Indicates whether the user has access to the location it duplicates.",
"enum": [
"ACCESS_UNSPECIFIED",
"ACCESS_UNKNOWN",
"ALLOWED",
"INSUFFICIENT"
],
"enumDescriptions": [
"Not specified.",
"Unable to determine whether the user has access to the location that\nit duplicates.",
"User has access to the location that it duplicates.",
"User doesn't have access to the location that it duplicates."
],
"type": "string"
},
"locationName": {
"description": "The resource name of the location that this duplicates. Only populated\nif the authenticated user has access rights to that location and that\nlocation is not deleted.",
"type": "string"
},
"placeId": {
"description": "The place ID of the location that this duplicates.",
"type": "string"
}
},
"type": "object"
},
"EmailInput": {
"description": "Input for EMAIL verification.",
"id": "EmailInput",
"properties": {
"emailAddress": {
"description": "Email address where the PIN should be sent to.\n\nAn email address is accepted only if it is one of the addresses provided\nby FetchVerificationOptions. If the EmailVerificationData has\nis_user_name_editable set to true, the client may specify a different\nuser name (local-part) but must match the domain name.",
"type": "string"
}
},
"type": "object"
},
"EmailVerificationData": {
"description": "Display data for verifications through email.",
"id": "EmailVerificationData",
"properties": {
"domainName": {
"description": "Domain name in the email address. e.g. \"gmail.com\" in foo@gmail.com",
"type": "string"
},
"isUserNameEditable": {
"description": "Whether client is allowed to provide a different user name.",
"type": "boolean"
},
"userName": {
"description": "User name in the email address. e.g. \"foo\" in foo@gmail.com",
"type": "string"
}
},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"id": "Empty",
"properties": {},
"type": "object"
},
"FetchVerificationOptionsRequest": {
"description": "Request message for Verifications.FetchVerificationOptions.",
"id": "FetchVerificationOptionsRequest",
"properties": {
"context": {
"$ref": "ServiceBusinessContext",
"description": "Extra context information for the verification of service businesses.\nRequired for the locations whose business type is CUSTOMER_LOCATION_ONLY.\nINVALID_ARGUMENT will be thrown if it is set for other business types of\nlocations."
},
"languageCode": {
"description": "The BCP 47 language code representing the language that is to be used for\nthe verification process. Available options vary by language.",
"type": "string"
}
},
"type": "object"
},
"FetchVerificationOptionsResponse": {
"description": "Response message for Verifications.FetchVerificationOptions.",
"id": "FetchVerificationOptionsResponse",
"properties": {
"options": {
"description": "The available verification options.",
"items": {
"$ref": "VerificationOption"
},
"type": "array"
}
},
"type": "object"
},
"FindMatchingLocationsRequest": {
"description": "Request message for Locations.FindMatchingLocations.",
"id": "FindMatchingLocationsRequest",
"properties": {
"languageCode": {
"description": "The preferred language for the matching location (in BCP-47 format).",
"type": "string"
},
"maxCacheDuration": {
"description": "Deprecated. This field is ignored for all requests.",
"format": "google-duration",
"type": "string"
},
"numResults": {
"description": "The number of matches to return. The default value is 3, with a maximum\nof 10. Note that latency may increase if more are requested. There is no\npagination.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"FindMatchingLocationsResponse": {
"description": "Response message for Locations.FindMatchingLocations.",
"id": "FindMatchingLocationsResponse",
"properties": {
"matchTime": {
"description": "When the matching algorithm was last executed for this location.",
"format": "google-datetime",
"type": "string"
},
"matchedLocations": {
"description": "A collection of locations that are potential matches to the specified\nlocation, listed in order from best to least match. If there is an exact\nmatch, it will be in the first position.",
"items": {
"$ref": "MatchedLocation"
},
"type": "array"
}
},
"type": "object"
},
"FollowersMetadata": {
"description": "Follower metadata for a location.",
"id": "FollowersMetadata",
"properties": {
"count": {
"description": "Total number of followers for the location.",
"format": "uint64",
"type": "string"
},
"name": {
"description": "The resource name for this.\naccounts/{account_id}/locations/{location_id}/followers/metadata",
"type": "string"
}
},
"type": "object"
},
"GenerateAccountNumberRequest": {
"description": "Request message for Accounts.GenerateAccountNumber.",
"id": "GenerateAccountNumberRequest",
"properties": {},
"type": "object"
},
"GenerateVerificationTokenRequest": {
"description": "Request message for Verifications.GenerateVerificationToken.",
"id": "GenerateVerificationTokenRequest",
"properties": {
"location": {
"$ref": "Location",
"description": "The target location."
}
},
"type": "object"
},
"GenerateVerificationTokenResponse": {
"description": "Response message for Verifications.GenerateVerificationToken.",
"id": "GenerateVerificationTokenResponse",
"properties": {
"token": {
"$ref": "VerificationToken",
"description": "The generated token to verify the location."
}
},
"type": "object"
},
"GoogleLocation": {
"description": "Represents a Location that is present on\nGoogle. This can be a location that has been claimed by the user, someone\nelse, or could be unclaimed.",
"id": "GoogleLocation",
"properties": {
"location": {
"$ref": "Location",
"description": "The sparsely populated Location\ninformation. This field can be re-used in\nCreateLocation if it is\nnot currently claimed by a user."
},
"name": {
"description": "Resource name of this GoogleLocation, in the format\n`googleLocations/{googleLocationId}`.",
"type": "string"
},
"requestAdminRightsUrl": {
"description": "A URL that will redirect the user to the request admin rights UI.\nThis field is only present if the location has already been claimed by\nany user, including the current user.",
"type": "string"
}
},
"type": "object"
},
"GoogleUpdatedLocation": {
"description": "Represents a location that was modified by Google.",
"id": "GoogleUpdatedLocation",
"properties": {
"diffMask": {
"description": "The fields that Google updated.",
"format": "google-fieldmask",
"type": "string"
},
"location": {
"$ref": "Location",
"description": "The Google-updated version of this location."
}
},
"type": "object"
},
"Invitation": {
"description": "Output only. Represents a pending invitation.",
"id": "Invitation",
"properties": {
"name": {
"description": "The resource name for the invitation.",
"type": "string"
},
"role": {
"description": "The invited role on the account.",
"enum": [
"ADMIN_ROLE_UNSPECIFIED",
"OWNER",
"CO_OWNER",
"MANAGER",
"COMMUNITY_MANAGER"
],
"enumDescriptions": [
"Not specified.",
"The admin has owner-level access and is the primary owner. (Displays as\n'Primary Owner' in UI).",
"The admin has owner-level access. (Displays as 'Owner' in UI).",
"The admin has managerial access.",
"The admin can manage social (Google+) pages. (Displays as 'Site Manager'\nin UI)."
],
"type": "string"
},
"targetAccount": {
"$ref": "Account",
"description": "The sparsely populated account this invitation is for."
},
"targetLocation": {
"$ref": "TargetLocation",
"description": "The target location this invitation is for."
}
},
"type": "object"
},
"Item": {
"description": "A single list item. Each variation of an item in the price list should\nhave its own Item with its own price data.",
"id": "Item",
"properties": {
"itemId": {
"description": "Required. ID for the item. Price list, section, and item IDs cannot be\nduplicated within this Location.",
"type": "string"
},
"labels": {
"description": "Required. Language-tagged labels for the item. We recommend that\nitem names be 140 characters or less, and descriptions 250 characters\nor less. At least one set of labels is required.",
"items": {
"$ref": "Label"
},
"type": "array"
},
"price": {
"$ref": "Money",
"description": "Optional. Price of the item."
}
},
"type": "object"
},
"Label": {
"description": "Label to be used when displaying the price list, section, or item.",
"id": "Label",
"properties": {
"description": {
"description": "Optional. Description of the price list, section, or item.",
"type": "string"
},
"displayName": {
"description": "Required. Display name for the price list, section, or item.",
"type": "string"
},
"languageCode": {
"description": "Optional. The BCP-47 language code that these strings apply for.\nOnly one set of labels may be set per language.",
"type": "string"
}
},
"type": "object"
},
"LatLng": {
"description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n<a href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\">WGS84\nstandard</a>. Values must be within normalized ranges.",
"id": "LatLng",
"properties": {
"latitude": {
"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
"format": "double",
"type": "number"
},
"longitude": {
"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
"format": "double",
"type": "number"
}
},
"type": "object"
},
"ListAccountAdminsResponse": {
"description": "Response message for AccessControl.ListAccountAdmins.",
"id": "ListAccountAdminsResponse",
"properties": {
"admins": {
"description": "A collection of Admin instances.",
"items": {
"$ref": "Admin"
},
"type": "array"
}
},
"type": "object"
},
"ListAccountsResponse": {
"description": "Response message for Accounts.ListAccounts.",
"id": "ListAccountsResponse",
"properties": {
"accounts": {
"description": "A collection of accounts to which the user has access. The personal\naccount of the user doing the query will always be the first item of the\nresult, unless it is filtered out.",
"items": {
"$ref": "Account"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of accounts exceeds the requested page size, this field is\npopulated with a token to fetch the next page of accounts on a\nsubsequent call to `accounts.list`. If there are no more accounts, this\nfield is not present in the response.",
"type": "string"
}
},
"type": "object"
},
"ListAnswersResponse": {
"description": "Response message for QuestionsAndAnswers.ListAnswers",
"id": "ListAnswersResponse",
"properties": {
"answers": {
"description": "The requested answers.",
"items": {
"$ref": "Answer"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of answers exceeds the requested max page size, this field\nis populated with a token to fetch the next page of answers on a subsequent\ncall. If there are no more answers, this field is not present in the\nresponse.",
"type": "string"
},
"totalSize": {
"description": "The total number of answers posted for this question across all pages.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListAttributeMetadataResponse": {
"description": "Response message for Locations.ListAttributeMetadata.",
"id": "ListAttributeMetadataResponse",
"properties": {
"attributes": {
"description": "A collection of attribute metadata for the available attributes.",
"items": {
"$ref": "AttributeMetadata"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of attributes exceeded the requested page size, this field\nwill be populated with a token to fetch the next page of attributes on a\nsubsequent call to `attributes.list`. If there are no more attributes, this\nfield will not be present in the response.",
"type": "string"
}
},
"type": "object"
},
"ListBusinessCategoriesResponse": {
"id": "ListBusinessCategoriesResponse",
"properties": {
"categories": {
"description": "The categories. Categories are BASIC view. They don't contain any\nServiceType information.",
"items": {
"$ref": "Category"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of categories exceeded the requested page size, this field\nwill be populated with a token to fetch the next page of categories\non a subsequent call to `ListBusinessCategories`.",
"type": "string"
},
"totalCategoryCount": {
"description": "The total number of categories for the request parameters.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListCustomerMediaItemsResponse": {
"description": "Response message for Media.ListCustomerMediaItems.",
"id": "ListCustomerMediaItemsResponse",
"properties": {
"mediaItems": {
"description": "The returned list of media items.",
"items": {
"$ref": "MediaItem"
},
"type": "array"
},
"nextPageToken": {
"description": "If there are more media items than the requested page size, then this field\nis populated with a token to fetch the next page of media items on a\nsubsequent call to ListCustomerMediaItems.",
"type": "string"
},
"totalMediaItemCount": {
"description": "The total number of media items for this location, irrespective of\npagination. This number is approximate, particularly when there are\nmultiple pages of results.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListInvitationsResponse": {
"description": "Response message for AccessControl.ListInvitations.",
"id": "ListInvitationsResponse",
"properties": {
"invitations": {
"description": "A collection of location invitations that are pending for the account. The\nnumber of invitations listed here cannot exceed 1000.",
"items": {
"$ref": "Invitation"
},
"type": "array"
}
},
"type": "object"
},
"ListLocalPostsResponse": {
"description": "Response message for ListLocalPosts",
"id": "ListLocalPostsResponse",
"properties": {
"localPosts": {
"description": "The returned list of local posts.",
"items": {
"$ref": "LocalPost"
},
"type": "array"
},
"nextPageToken": {
"description": "If there are more local posts than the requested page size, then this field\nis populated with a token to fetch the next page of local posts on a\nsubsequent call to `ListLocalPosts`.",
"type": "string"
}
},
"type": "object"
},
"ListLocationAdminsResponse": {
"description": "Response message for AccessControl.ListLocationAdmins.",
"id": "ListLocationAdminsResponse",
"properties": {
"admins": {
"description": "A collection of Admin instances.",
"items": {
"$ref": "Admin"
},
"type": "array"
}
},
"type": "object"
},
"ListLocationsResponse": {
"description": "Response message for Locations.ListLocations.",
"id": "ListLocationsResponse",
"properties": {
"locations": {
"description": "The locations.",
"items": {
"$ref": "Location"
},
"type": "array"
},
"nextPageToken": {
"description": "If the number of locations exceeded the requested page size, this field\nis populated with a token to fetch the next page of locations on a\nsubsequent call to `ListLocations`. If there are no more locations, this\nfield is not present in the response.",
"type": "string"
},
"totalSize": {
"description": "The approximate number of Locations in the list irrespective of pagination.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListMediaItemsResponse": {
"description": "Response message for Media.ListMediaItems.",
"id": "ListMediaItemsResponse",
"properties": {
"mediaItems": {
"description": "The returned list of media items.",
"items": {
"$ref": "MediaItem"
},
"type": "array"
},
"nextPageToken": {
"description": "If there are more media items than the requested page size, then this field\nis populated with a token to fetch the next page of media items on a\nsubsequent call to ListMediaItems.",
"type": "string"
},
"totalMediaItemCount": {
"description": "The total number of media items for this location, irrespective of\npagination.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListQuestionsResponse": {
"description": "Response message for QuestionsAndAnswers.ListQuestions",
"id": "ListQuestionsResponse",
"properties": {
"nextPageToken": {
"description": "If the number of questions exceeds the requested max page size, this field\nis populated with a token to fetch the next page of questions on a\nsubsequent call. If there are no more questions, this field is not present\nin the response.",
"type": "string"
},
"questions": {
"description": "The requested questions,",
"items": {
"$ref": "Question"
},
"type": "array"
},
"totalSize": {
"description": "The total number of questions posted for this location across all pages.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListRecommendedGoogleLocationsResponse": {
"description": "Response message for GoogleLocations.ListRecommendedGoogleLocations.\n\nIt also contains some locations that have been claimed by other GMB users\nsince the last time they were recommended to this GMB account.",
"id": "ListRecommendedGoogleLocationsResponse",
"properties": {
"googleLocations": {
"description": "The locations recommended to a GMB account.\nEach of these represents a GoogleLocation that\nis present on Maps.\nThe locations are sorted in decreasing order of relevance to the GMB\naccount.",
"items": {
"$ref": "GoogleLocation"
},
"type": "array"
},
"nextPageToken": {
"description": "During pagination, if there are more locations available to be fetched in\nthe next page, this field is populated with a token to fetch the next page\nof locations in a subsequent call. If there are no more locations to be\nfetched, this field is not present in the response.",
"type": "string"
},
"totalSize": {
"description": "The total number of recommended locations for this GMB account,\nirrespective of pagination.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListReviewsResponse": {
"description": "Response message for Reviews.ListReviews.",
"id": "ListReviewsResponse",
"properties": {
"averageRating": {
"description": "The average star rating of all reviews for this location\non a scale of 1 to 5, where 5 is the highest rating.",
"format": "double",
"type": "number"
},
"nextPageToken": {
"description": "If the number of reviews exceeded the requested page size, this field\nis populated with a token to fetch the next page of reviews on a\nsubsequent call to ListReviews. If there are no more reviews, this\nfield is not present in the response.",
"type": "string"
},
"reviews": {
"description": "The reviews.",
"items": {
"$ref": "Review"
},
"type": "array"
},
"totalReviewCount": {
"description": "The total number of reviews for this location.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListVerificationsResponse": {
"description": "Response message for Verifications.ListVerifications.",
"id": "ListVerificationsResponse",
"properties": {
"nextPageToken": {
"description": "If the number of verifications exceeded the requested page size, this field\nwill be populated with a token to fetch the next page of verification on a\nsubsequent call. If there are no more attributes, this field will not be\npresent in the response.",
"type": "string"
},
"verifications": {
"description": "List of the verifications.",
"items": {
"$ref": "Verification"
},
"type": "array"
}
},
"type": "object"
},
"LocalPost": {
"description": "Represents a [local post](https://support.google.com/business/answer/7662907)\nfor a location.",
"id": "LocalPost",
"properties": {
"alertType": {
"description": "The type of alert the post is created for. This field is only applicable\nfor posts of topic_type Alert, and behaves as a sub-type of Alerts.",
"enum": [
"ALERT_TYPE_UNSPECIFIED",
"COVID_19"
],
"enumDescriptions": [
"No alert is specified.",
"Alerts related to the 2019 Coronavirus Disease pandemic. Covid posts only\nsupport a summary field and a call to action field. When these alerts are\nno longer relevant, new Alert post creation for type COVID-19 will be\ndisabled. However, merchant will still be able to manage their existing\nCOVID-19 posts."
],
"type": "string"
},
"callToAction": {
"$ref": "CallToAction",
"description": "The URL that users are sent to when clicking through the promotion. Ignored\nfor topic type `OFFER`."
},
"createTime": {
"description": "Output only. Time of the creation of the post.",
"format": "google-datetime",
"type": "string"
},
"event": {
"$ref": "LocalPostEvent",
"description": "Event information. Required for topic types `EVENT` and `OFFER`."
},
"languageCode": {
"description": "The language of the local post.",
"type": "string"
},
"media": {
"description": "The media associated with the post. source_url is the only supported data\nfield for a LocalPost MediaItem.",
"items": {
"$ref": "MediaItem"
},
"type": "array"
},
"name": {
"description": "Output only. Google identifier for this local post in the form:\n `accounts/{account_id}/locations/{location_id}/localPosts/{local_post_id}`",
"type": "string"
},
"offer": {
"$ref": "LocalPostOffer",
"description": "Additional data for offer posts. This should only be set when the\ntopic_type is OFFER."
},
"searchUrl": {
"description": "Output only. The link to the local post in Google search. This link can\nbe used to share the post via social media, email, text, etc.",
"type": "string"
},
"state": {
"description": "Output only. The state of the post, indicating what part of its lifecycle\nit is in.",
"enum": [
"LOCAL_POST_STATE_UNSPECIFIED",
"REJECTED",
"LIVE",
"PROCESSING"
],
"enumDescriptions": [
"State not specified.",
"This post was rejected due to content policy violation.",
"This post is published and is currently appearing in search results.",
"This post is being processed and is not appearing in search results."
],
"type": "string"
},
"summary": {
"description": "Description/body of the local post.",
"type": "string"
},
"topicType": {
"description": "Required. The topic type of the post: standard, event, offer, or alert.",
"enum": [
"LOCAL_POST_TOPIC_TYPE_UNSPECIFIED",
"STANDARD",
"EVENT",
"OFFER",
"ALERT"
],
"enumDescriptions": [
"No post type is specified.",
"Post contains basic information, like summary and images.",
"Post contains basic information and an event.",
"Post contains basic information, an event and offer related content (e.g.\ncoupon code)",
"High-priority, and timely announcements related to an ongoing event. These\ntypes of posts are not always available for authoring."
],
"type": "string"
},
"updateTime": {
"description": "Output only. Time of the last modification of the post made by the user.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"LocalPostEvent": {
"description": "All the information pertaining to an event featured in a local post.",
"id": "LocalPostEvent",
"properties": {
"schedule": {
"$ref": "TimeInterval",
"description": "Event start and end date/time."
},
"title": {
"description": "Name of the event.",
"type": "string"
}
},
"type": "object"
},
"LocalPostMetrics": {
"description": "All the metrics requested for a Local Post.",
"id": "LocalPostMetrics",
"properties": {
"localPostName": {
"type": "string"
},
"metricValues": {
"description": "A list of values for the requested metrics.",
"items": {
"$ref": "MetricValue"
},
"type": "array"
}
},
"type": "object"
},
"LocalPostOffer": {
"description": "Specific fields for offer posts.",
"id": "LocalPostOffer",
"properties": {
"couponCode": {
"description": "Optional. Offer code that is usable in store or online.",
"type": "string"
},
"redeemOnlineUrl": {
"description": "Optional. Online link to redeem offer.",
"type": "string"
},
"termsConditions": {
"description": "Optional. Offer terms and conditions.",
"type": "string"
}
},
"type": "object"
},
"Location": {
"description": "A location.\nSee the [help center article]\n(https://support.google.com/business/answer/3038177) for a detailed\ndescription of these fields, or the [category\nendpoint](/my-business/reference/rest/v4/categories) for a list of valid\nbusiness categories.",
"id": "Location",
"properties": {
"adWordsLocationExtensions": {
"$ref": "AdWordsLocationExtensions",
"description": "Additional information that is surfaced in AdWords."
},
"additionalCategories": {
"description": "Additional categories to describe your business.\nCategories help your customers find accurate, specific results for services\nthey're interested in. To keep your business information accurate\nand live, make sure that you use as few categories as possible to describe\nyour overall core business.\nChoose categories that are as specific as possible, but representative of\nyour main business.",
"items": {
"$ref": "Category"
},
"type": "array"
},
"additionalPhones": {
"description": "Up to two phone numbers (mobile or landline, no fax) at which your business\ncan be called, in addition to your primary phone number.",
"items": {
"type": "string"
},
"type": "array"
},
"address": {
"$ref": "PostalAddress",
"description": "A precise, accurate address to describe your business location.\nPO boxes or mailboxes located at remote locations are not acceptable.\nAt this time, you can specify a maximum of five `address_lines` values in\nthe address."
},
"attributes": {
"description": "Attributes for this location.",
"items": {
"$ref": "Attribute"
},
"type": "array"
},
"labels": {
"description": "A collection of free-form strings to allow you to tag your business. These\nlabels are NOT user facing; only you can see them.\nLimited to 255 characters (per label).",
"items": {
"type": "string"
},
"type": "array"
},
"languageCode": {
"description": "The language of the location. Set during creation and not updateable.",
"type": "string"
},
"latlng": {
"$ref": "LatLng",
"description": "User-provided latitude and longitude.\nWhen creating a location, this field is ignored if the provided\naddress geocodes successfully.\nThis field is only returned on get requests if the user-provided\n`latlng`\nvalue was accepted during create, or the `latlng` value was updated through\nthe Google My Business website.\nThis field cannot be updated."
},
"locationKey": {
"$ref": "LocationKey",
"description": "A collection of keys that link this business to\nother Google properties, such as a Google+ page and Google Maps Places."
},
"locationName": {
"description": "Location name should reflect your business's real-world name, as used\nconsistently on your storefront, website, and stationery, and as known to\ncustomers.\nAny additional information, when relevant, can be included in other\nfields of the resource (for example, `Address`, `Categories`).\nDon't add unnecessary information to your name (for example, prefer\n\"Google\" over \"Google Inc. - Mountain View Corporate Headquarters\"). Don't\ninclude marketing taglines, store codes, special characters, hours or\nclosed/open status, phone numbers, website URLs, service/product\ninformation, location/address or directions, or containment information\n(for example, \"Chase ATM in Duane Reade\").",
"type": "string"
},
"locationState": {
"$ref": "LocationState",
"description": "Output only. A set of booleans that reflects the [state of a\nlocation.](https://support.google.com/business/answer/3480862)"
},
"metadata": {
"$ref": "Metadata",
"description": "Output Only. Additional non-user-editable information."
},
"name": {
"description": "Google identifier for this location in the form:\n `accounts/{account_id}/locations/{location_id}`\n\nIn the context of matches, this field will not be populated.",
"type": "string"
},
"openInfo": {
"$ref": "OpenInfo",
"description": "A flag that indicates whether the location is currently open for\nbusiness."
},
"priceLists": {
"description": "Price list information for this location.",
"items": {
"$ref": "PriceList"
},
"type": "array"
},
"primaryCategory": {
"$ref": "Category",
"description": "Category that best describes the core business this location engages in."
},
"primaryPhone": {
"description": "A phone number that connects to your individual business location\nas directly as possible. Use a local phone number instead of a central,\ncall center helpline number whenever possible.",
"type": "string"
},
"profile": {
"$ref": "Profile",
"description": "Describes your business in your own voice and shares with users the unique\nstory of your business and offerings."
},
"regularHours": {
"$ref": "BusinessHours",
"description": "Operating hours for the business."
},
"relationshipData": {
"$ref": "RelationshipData",
"description": "All locations and chain related to this one."
},
"serviceArea": {
"$ref": "ServiceAreaBusiness",
"description": "Service area businesses provide their service at the customer's location.\nIf this business is a service area business, this field describes the\narea(s) serviced by the business."
},
"specialHours": {
"$ref": "SpecialHours",
"description": "Special hours for the business. This typically includes holiday hours,\nand other times outside of regular operating hours.\nThese override regular business hours."
},
"storeCode": {
"description": "External identifier for this location, which must be unique inside a given\naccount. This is a means of associating the location with your own records.",
"type": "string"
},
"websiteUrl": {
"description": "A URL for this business. If possible, use a URL that represents this\nindividual business location instead of a generic website/URL that\nrepresents all locations, or the brand.",
"type": "string"
}
},
"type": "object"
},
"LocationAssociation": {
"description": "How the media item is associated with its location.",
"id": "LocationAssociation",
"properties": {
"category": {
"description": "The category that this location photo belongs to.",
"enum": [
"CATEGORY_UNSPECIFIED",
"COVER",
"PROFILE",
"LOGO",
"EXTERIOR",
"INTERIOR",
"PRODUCT",
"AT_WORK",
"FOOD_AND_DRINK",
"MENU",
"COMMON_AREA",
"ROOMS",
"TEAMS",
"ADDITIONAL"
],
"enumDescriptions": [
"Unspecified category.",
"Cover photo. A location has only one cover photo.",
"Profile photo. A location has only one profile photo.",
"Logo photo.",
"Exterior media.",
"Interior media.",
"Product media.",
"'At-work' media.",
"Food and drink media.",
"Menu media.",
"Common area media.",
"Rooms media.",
"Teams media.",
"Additional, uncategorized media."
],
"type": "string"
},
"priceListItemId": {
"description": "The ID of a price list item that this location photo is associated\nwith.",
"type": "string"
}
},
"type": "object"
},
"LocationDrivingDirectionMetrics": {
"description": "A location indexed with the regions that people usually come from.\nThis is captured by counting how many driving-direction requests to\nthis location are from each region.",
"id": "LocationDrivingDirectionMetrics",
"properties": {
"locationName": {
"description": "The location resource name this metric value belongs to.",
"type": "string"
},
"timeZone": {
"description": "Time zone (IANA timezone IDs, for example, 'Europe/London') of the\nlocation.",
"type": "string"
},
"topDirectionSources": {
"description": "Driving-direction requests by source region. By convention, these\nare sorted by count with at most 10 results.",
"items": {
"$ref": "TopDirectionSources"
},
"type": "array"
}
},
"type": "object"
},
"LocationKey": {
"description": "Alternate/surrogate key references for a location.",
"id": "LocationKey",
"properties": {
"explicitNoPlaceId": {
"description": "Output only. A value of true indicates that an unset place ID is\ndeliberate, which is different from no association being made yet.",
"type": "boolean"
},
"placeId": {
"description": "If this location has been verified and is connected to/appears on Google\nMaps, this field is populated with the place ID for the location.\nThis ID can be used in various Places APIs.\n\nIf this location is unverified, this field may be populated if the location\nhas been associated with a place that appears on Google Maps.\n\nThis field can be set during Create calls, but not for Update.\n\nThe additional `explicit_no_place_id` bool qualifies whether an unset\nplace ID is deliberate or not.",
"type": "string"
},
"plusPageId": {
"description": "Output only. If this location has a Google+ page associated with it, this\nis populated with the Google+ page ID for this location.",
"type": "string"
},
"requestId": {
"description": "Output only. The `request_id` used to create this location. May be empty if\nthis location was created outside of the GMB API or Google My Business\nLocations.",
"type": "string"
}
},
"type": "object"
},
"LocationMetrics": {
"description": "A series of Metrics and BreakdownMetrics associated with a Location over\nsome time range.",
"id": "LocationMetrics",
"properties": {
"locationName": {
"description": "The location resource name these values belong to.",
"type": "string"
},
"metricValues": {
"description": "A list of values for the requested metrics.",
"items": {
"$ref": "MetricValue"
},
"type": "array"
},
"timeZone": {
"description": "IANA timezone for the location.",
"type": "string"
}
},
"type": "object"
},
"LocationReview": {
"description": "Represents a review with location information.",
"id": "LocationReview",
"properties": {
"name": {
"description": "Location resource name.",
"type": "string"
},
"review": {
"$ref": "Review",
"description": "A review for the location."
}
},
"type": "object"
},
"LocationState": {
"description": "Contains a set of booleans that reflect the [state of a\nLocation.](https://support.google.com/business/answer/3480862)",
"id": "LocationState",
"properties": {
"canDelete": {
"description": "Output only. Indicates whether the location can be deleted using the Google\nMy Business API.",
"type": "boolean"
},
"canUpdate": {
"description": "Output only. Indicates whether the location can be updated.",
"type": "boolean"
},
"hasPendingEdits": {
"description": "Output only. Indicates whether any of this Location's properties are in the\nedit pending state.",
"type": "boolean"
},
"hasPendingVerification": {
"description": "Output only. Indicates whether the location has pending verification\nrequests.",
"type": "boolean"
},
"isDisabled": {
"description": "Output only. Indicates whether the location is disabled.",
"type": "boolean"
},
"isDisconnected": {
"description": "Output only. Indicates whether the location is disconnected from a place on\nGoogle Maps.",
"type": "boolean"
},
"isDuplicate": {
"description": "Output only. Indicates whether the location is a duplicate of another\nlocation. For more information, see\n[metadata.duplicate](/my-business/reference/rest/v4/accounts.locations#Duplicate).",
"type": "boolean"
},
"isGoogleUpdated": {
"description": "Output only. Indicates whether the place ID associated with this location\nhas updates.",
"type": "boolean"
},
"isLocalPostApiDisabled": {
"description": "Output only. Indicates whether\n[accounts.locations.localPosts](/my-business/reference/rest/v4/accounts.locations.localPosts)\nis disabled for this location.",
"type": "boolean"
},
"isPendingReview": {
"description": "Output only. Indicates whether the review of the location is pending.",
"type": "boolean"
},
"isPublished": {
"description": "Output only. Indicates whether the location is published.",
"type": "boolean"
},
"isSuspended": {
"description": "Output only. Indicates whether the location is suspended.\nSuspended locations are not visible to end users in Google products.\nIf you believe this was a mistake, see the [help center article]\n(https://support.google.com/business/answer/4569145).",
"type": "boolean"
},
"isVerified": {
"description": "Output only. Indicates whether the location is verified.",
"type": "boolean"
},
"needsReverification": {
"description": "Output only. Indicates whether the location requires reverification.",
"type": "boolean"
}
},
"type": "object"
},
"MatchedLocation": {
"description": "Represents a possible match to a location.",
"id": "MatchedLocation",
"properties": {
"isExactMatch": {
"description": "Is this an exact match?",
"type": "boolean"
},
"location": {
"$ref": "Location",
"description": "The sparsely populated location that is a potential match. Unpopulated\nfields include, but may not be limited to:\nname (the matched location cannot be retrieved via `GetLocation` nor\n`BatchGetLocations`); `store_code`; `service_area` coverage area details;\n`labels`; `ad_words_location_extensions`; `photos`"
}
},
"type": "object"
},
"MediaInsights": {
"description": "Insights and statistics for the media item.",
"id": "MediaInsights",
"properties": {
"viewCount": {
"description": "Output only. The number of times the media item has been viewed.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"MediaItem": {
"description": "A single media item.",
"id": "MediaItem",
"properties": {
"attribution": {
"$ref": "Attribution",
"description": "Output only. Attribution information for customer media items. You must\ndisplay this attribution as provided to your users and must not delete or\nalter the attribution."
},
"createTime": {
"description": "Output only. Creation time of this media item.",
"format": "google-datetime",
"type": "string"
},
"dataRef": {
"$ref": "MediaItemDataRef",
"description": "Input only. A reference to media item binary data as obtained by the\n`StartUploadMediaItemData` method.\n\nWhen creating a media item, either <code>sourceUrl</code> or\n<code>dataRef</code> must be set."
},
"description": {
"description": "Description for this media item. Descriptions cannot be modified through\nthe My Business API, but can be set when creating a new media item that is\nnot a cover photo.",
"type": "string"
},
"dimensions": {
"$ref": "Dimensions",
"description": "Output only. The dimensions (width and height) in pixels."
},
"googleUrl": {
"description": "Output only. Google-hosted URL for this media item. This URL is not static\nsince it may change over time. For video this will be a preview image with\nan overlaid play icon.",
"type": "string"
},
"insights": {
"$ref": "MediaInsights",
"description": "Output only. Statistics for this media item."
},
"locationAssociation": {
"$ref": "LocationAssociation",
"description": "Required when calling `CreatePhoto`. Describes how this media item is\nconnected to its location. Must be either a category (for example,\nEXTERIOR) or the ID of a price list item.\n\nThis is required when adding new media to a location with\n`CreateMediaItem`. For other types of media, for example, photos on local\nposts, this will not be present."
},
"mediaFormat": {
"description": "The format of this media item. Must be set when the media item is created,\nand is read-only on all other requests. Cannot be updated.",
"enum": [
"MEDIA_FORMAT_UNSPECIFIED",
"PHOTO",
"VIDEO"
],
"enumDescriptions": [
"Format unspecified.",
"Media item is a photo. In this version, only photos are supported.",
"Media item is a video."
],
"type": "string"
},
"name": {
"description": "The resource name for this media item.\n`accounts/{account_id}/locations/{location_id}/media/{media_key}`",
"type": "string"
},
"sourceUrl": {
"description": "A publicly accessible URL where the media item can be retrieved\nfrom.\n\nWhen creating one of this or data_ref must be set to specify the\nsource of the media item.\n\nIf `source_url` was used when creating a media item, it will be populated\nwith that source URL when the media item is retrieved.\n\nThis field cannot be updated.",
"type": "string"
},
"thumbnailUrl": {
"description": "Output only. Where provided, the URL of a thumbnail image for this media\nitem.",
"type": "string"
}
},
"type": "object"
},
"MediaItemDataRef": {
"description": "Reference to the photo binary data of a `MediaItem` uploaded through the My\nBusiness API.\n\nCreate a data ref using StartUploadMediaItemData, and use this ref\nwhen uploading bytes to [UpdateMedia] and subsequently calling\nCreateMediaItem.",
"id": "MediaItemDataRef",
"properties": {
"resourceName": {
"description": "The unique ID for this media item's binary data.\nUsed to upload the photo data with [UpdateMedia] and when\ncreating a new media item from those bytes with CreateMediaItem.\n\nExample of uploading bytes:\n`curl -X POST -T{path_to_file}\n\"http://mybusiness.googleapis.com/upload/v1/media/{resource_name}?upload_type=media\"`\n\nFor CreateMediaItem\ncalls, set this as the `MediaItem` `data_ref`.",
"type": "string"
}
},
"type": "object"
},
"Metadata": {
"description": "Additional non-user-editable information about the location.",
"id": "Metadata",
"properties": {
"duplicate": {
"$ref": "Duplicate",
"description": "Information about the location that this location duplicates. Only\npresent when `location_state.is_duplicate` is true."
},
"mapsUrl": {
"description": "A link to the location on Maps.",
"type": "string"
},
"newReviewUrl": {
"description": "A link to the page on Google Search where a customer can leave a review\nfor the location.",
"type": "string"
}
},
"type": "object"
},
"MetricRequest": {
"description": "A request to return values for one metric and the options for how those\nvalues should be returned.",
"id": "MetricRequest",
"properties": {
"metric": {
"description": "The requested metric.",
"enum": [
"METRIC_UNSPECIFIED",
"ALL",
"QUERIES_DIRECT",
"QUERIES_INDIRECT",
"QUERIES_CHAIN",
"VIEWS_MAPS",
"VIEWS_SEARCH",
"ACTIONS_WEBSITE",
"ACTIONS_PHONE",
"ACTIONS_DRIVING_DIRECTIONS",
"PHOTOS_VIEWS_MERCHANT",
"PHOTOS_VIEWS_CUSTOMERS",
"PHOTOS_COUNT_MERCHANT",
"PHOTOS_COUNT_CUSTOMERS",
"LOCAL_POST_VIEWS_SEARCH",
"LOCAL_POST_ACTIONS_CALL_TO_ACTION"
],
"enumDescriptions": [
"No metric specified.",
"Shorthand to request all available metrics. Which metrics are included in\nALL varies, and depends on the resource for which insights are being\nrequested.",
"The number of times the resource was shown when searching for the location\ndirectly.",
"The number of times the resource was shown as a result of a categorical\nsearch (for example, restaurant).",
"The number of times a resource was shown as a result of a search for the\nchain it belongs to, or a brand it sells. For example, Starbucks, Adidas.\nThis is a subset of QUERIES_INDIRECT.",
"The number of times the resource was viewed on Google Maps.",
"The number of times the resource was viewed on Google Search.",
"The number of times the website was clicked.",
"The number of times the phone number was clicked.",
"The number of times driving directions were requested.",
"The number of views on media items uploaded by the merchant.",
"The number of views on media items uploaded by customers.",
"The total number of media items that are currently live that have been\nuploaded by the merchant.",
"The total number of media items that are currently live that have been\nuploaded by customers.",
"The number of times the local post was viewed on Google Search.",
"The number of times the call to action button was clicked on Google."
],
"type": "string"
},
"options": {
"description": "How the values should appear when returned.",
"enumDescriptions": [
"No metric option specified. Will default to AGGREGATED_TOTAL in a request.",
"Return values aggregated over the entire time frame.\nThis is the default value.",
"Return daily timestamped values across time range.",
"Values will be returned as a breakdown by day of the week.\nOnly valid for ACTIONS_PHONE.",
"Values will be returned as a breakdown by hour of the day.\nOnly valid for ACTIONS_PHONE."
],
"items": {
"enum": [
"METRIC_OPTION_UNSPECIFIED",
"AGGREGATED_TOTAL",
"AGGREGATED_DAILY",
"BREAKDOWN_DAY_OF_WEEK",
"BREAKDOWN_HOUR_OF_DAY"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"MetricValue": {
"description": "A value for a single Metric from a starting time.",
"id": "MetricValue",
"properties": {
"dimensionalValues": {
"description": "Dimensional values for this metric.",
"items": {
"$ref": "DimensionalMetricValue"
},
"type": "array"
},
"metric": {
"description": "The metric for which the value applies.",
"enum": [
"METRIC_UNSPECIFIED",
"ALL",
"QUERIES_DIRECT",
"QUERIES_INDIRECT",
"QUERIES_CHAIN",
"VIEWS_MAPS",
"VIEWS_SEARCH",
"ACTIONS_WEBSITE",
"ACTIONS_PHONE",
"ACTIONS_DRIVING_DIRECTIONS",
"PHOTOS_VIEWS_MERCHANT",
"PHOTOS_VIEWS_CUSTOMERS",
"PHOTOS_COUNT_MERCHANT",
"PHOTOS_COUNT_CUSTOMERS",
"LOCAL_POST_VIEWS_SEARCH",
"LOCAL_POST_ACTIONS_CALL_TO_ACTION"
],
"enumDescriptions": [
"No metric specified.",
"Shorthand to request all available metrics. Which metrics are included in\nALL varies, and depends on the resource for which insights are being\nrequested.",
"The number of times the resource was shown when searching for the location\ndirectly.",
"The number of times the resource was shown as a result of a categorical\nsearch (for example, restaurant).",
"The number of times a resource was shown as a result of a search for the\nchain it belongs to, or a brand it sells. For example, Starbucks, Adidas.\nThis is a subset of QUERIES_INDIRECT.",
"The number of times the resource was viewed on Google Maps.",
"The number of times the resource was viewed on Google Search.",
"The number of times the website was clicked.",
"The number of times the phone number was clicked.",
"The number of times driving directions were requested.",
"The number of views on media items uploaded by the merchant.",
"The number of views on media items uploaded by customers.",
"The total number of media items that are currently live that have been\nuploaded by the merchant.",
"The total number of media items that are currently live that have been\nuploaded by customers.",
"The number of times the local post was viewed on Google Search.",
"The number of times the call to action button was clicked on Google."
],
"type": "string"
},
"totalValue": {
"$ref": "DimensionalMetricValue",
"description": "The total aggregated value for this metric.\nSet for the AGGREGATED_TOTAL option."
}
},
"type": "object"
},
"Money": {
"description": "Represents an amount of money with its currency type.",
"id": "Money",
"properties": {
"currencyCode": {
"description": "The 3-letter currency code defined in ISO 4217.",
"type": "string"
},
"nanos": {
"description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
"format": "int32",
"type": "integer"
},
"units": {
"description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"Notifications": {
"description": "A Google Cloud Pub/Sub topic where notifications can be published when a\nlocation is updated or has a new review. There will be only one notification\nsettings resource per-account.",
"id": "Notifications",
"properties": {
"name": {
"description": "Output only. The notifications resource name.",
"type": "string"
},
"notificationTypes": {
"description": "The types of notifications that will be sent to the Cloud Pub/Sub topic.\nAt least one must be specified. To stop receiving notifications entirely,\nuse DeleteNotifications.",
"enumDescriptions": [
"No notification type. Will not match any notifications.",
"The location has Google updates for review. The location_name field on the\nnotification will provide the resource name of the location with Google\nupdates.",
"A new review has been added to the location. The review_name field on the\nnotification will provide the resource name of the review that was added,\nand location_name will have the location's resource name.",
"A review on the location has been updated. The review_name field on the\nnotification will provide the resource name of the review that was added,\nand location_name will have the location's resource name.",
"A new media item has been added to the location by a Google Maps user.\nThe notification will provide the resource name of the new media item.",
"A new question is added to the location. The notification will provide the\nresource name of question.",
"A question of the location is updated. The notification will provide the\nresource name of question.",
"A new answer is added to the location. The notification will provide the\nresource name of question and answer.",
"An answer of the location is updated. The notification will provide the\nresource name of question and answer.",
"The LocationState of the Location was updated. The Notification will\ncontain the field mask of the updated LocationState fields."
],
"items": {
"enum": [
"NOTIFICATION_TYPE_UNSPECIFIED",
"GOOGLE_UPDATE",
"NEW_REVIEW",
"UPDATED_REVIEW",
"NEW_CUSTOMER_MEDIA",
"NEW_QUESTION",
"UPDATED_QUESTION",
"NEW_ANSWER",
"UPDATED_ANSWER",
"UPDATED_LOCATION_STATE"
],
"type": "string"
},
"type": "array"
},
"topicName": {
"description": "The Google Cloud Pub/Sub topic that will receive notifications when\nlocations managed by this account are updated. If unset, no notifications\nwill be posted.\n\nThe account mybusiness-api-pubsub@system.gserviceaccount.com must have at\nleast Publish permissions on the Cloud Pub/Sub topic.",
"type": "string"
}
},
"type": "object"
},
"OpenInfo": {
"description": "Information related to the opening state of the business.",
"id": "OpenInfo",
"properties": {
"canReopen": {
"description": "Output only. Indicates whether this business is eligible for re-open.",
"type": "boolean"
},
"openingDate": {
"$ref": "Date",
"description": "The date on which the location first opened. If the exact day is not known,\nmonth and year only can be provided. The date must be in the past or be\nno more than one year in the future."
},
"status": {
"description": "Indicates whether or not the Location is currently open for business.\nAll locations are open by default, unless updated to be closed.",
"enum": [
"OPEN_FOR_BUSINESS_UNSPECIFIED",
"OPEN",
"CLOSED_PERMANENTLY",
"CLOSED_TEMPORARILY"
],
"enumDescriptions": [
"Not specified.",
"Indicates that the location is open.",
"Indicates that the location has been permanently closed.",
"Indicates that the location has been temporarily closed.\nThis value may only be applied to published locations (i.e.\nlocation_state.is_published = true).\nWhen updating the status field to this value, clients are required to set\nthe `update_mask` explicitly to `open_info.status`. No other update masks\ncan be set during this update call. This is a temporary restriction which\nwill be relaxed soon."
],
"type": "string"
}
},
"type": "object"
},
"OrganizationInfo": {
"description": "Additional Info stored for an organization.",
"id": "OrganizationInfo",
"properties": {
"phoneNumber": {
"description": "The contact number for the organization.",
"type": "string"
},
"postalAddress": {
"$ref": "PostalAddress",
"description": "The postal address for the account."
},
"registeredDomain": {
"description": "The registered domain for the account.",
"type": "string"
}
},
"type": "object"
},
"PhoneInput": {
"description": "Input for PHONE_CALL/SMS verification.",
"id": "PhoneInput",
"properties": {
"phoneNumber": {
"description": "The phone number that should be called or be sent SMS to. It must be one of\nthe phone numbers in the eligible options.",
"type": "string"
}
},
"type": "object"
},
"PhoneVerificationData": {
"description": "Display Data for verifications through phone, e.g. phone call, sms.",
"id": "PhoneVerificationData",
"properties": {
"phoneNumber": {
"description": "Phone number that the PIN will be sent to.",
"type": "string"
}
},
"type": "object"
},
"PlaceInfo": {
"description": "Defines an area that's represented by a place ID.",
"id": "PlaceInfo",
"properties": {
"name": {
"description": "The localized name of the place. For example, `Scottsdale, AZ`.",
"type": "string"
},
"placeId": {
"description": "The ID of the place. Must correspond to a [region.]\n(https://developers.google.com/places/web-service/supported_types#table3)",
"type": "string"
}
},
"type": "object"
},
"Places": {
"description": "Defines the union of areas represented by a set of places.",
"id": "Places",
"properties": {
"placeInfos": {
"description": "The areas represented by place IDs. Limited to a maximum of 20 places.",
"items": {
"$ref": "PlaceInfo"
},
"type": "array"
}
},
"type": "object"
},
"PointRadius": {
"description": "A radius around a particular point (latitude/longitude).",
"id": "PointRadius",
"properties": {
"latlng": {
"$ref": "LatLng",
"description": "The latitude/longitude that specifies the center of an area defined by the\nradius."
},
"radiusKm": {
"description": "The distance in kilometers of the area around the point.",
"format": "float",
"type": "number"
}
},
"type": "object"
},
"PostalAddress": {
"description": "Represents a postal address, e.g. for postal delivery or payments addresses.\nGiven a postal address, a postal service can deliver items to a premise, P.O.\nBox or similar.\nIt is not intended to model geographical locations (roads, towns,\nmountains).\n\nIn typical usage an address would be created via user input or from importing\nexisting data, depending on the type of process.\n\nAdvice on address input / editing:\n - Use an i18n-ready address widget such as\n https://github.com/google/libaddressinput)\n- Users should not be presented with UI elements for input or editing of\n fields outside countries where that field is used.\n\nFor more guidance on how to use this schema, please see:\nhttps://support.google.com/business/answer/6397478",
"id": "PostalAddress",
"properties": {
"addressLines": {
"description": "Unstructured address lines describing the lower levels of an address.\n\nBecause values in address_lines do not have type information and may\nsometimes contain multiple values in a single field (e.g.\n\"Austin, TX\"), it is important that the line order is clear. The order of\naddress lines should be \"envelope order\" for the country/region of the\naddress. In places where this can vary (e.g. Japan), address_language is\nused to make it explicit (e.g. \"ja\" for large-to-small ordering and\n\"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of\nan address can be selected based on the language.\n\nThe minimum permitted structural representation of an address consists\nof a region_code with all remaining information placed in the\naddress_lines. It would be possible to format such an address very\napproximately without geocoding, but no semantic reasoning could be\nmade about any of the address components until it was at least\npartially resolved.\n\nCreating an address only containing a region_code and address_lines, and\nthen geocoding is the recommended way to handle completely unstructured\naddresses (as opposed to guessing which parts of the address should be\nlocalities or administrative areas).",
"items": {
"type": "string"
},
"type": "array"
},
"administrativeArea": {
"description": "Optional. Highest administrative subdivision which is used for postal\naddresses of a country or region.\nFor example, this can be a state, a province, an oblast, or a prefecture.\nSpecifically, for Spain this is the province and not the autonomous\ncommunity (e.g. \"Barcelona\" and not \"Catalonia\").\nMany countries don't use an administrative area in postal addresses. E.g.\nin Switzerland this should be left unpopulated.",
"type": "string"
},
"languageCode": {
"description": "Optional. BCP-47 language code of the contents of this address (if\nknown). This is often the UI language of the input form or is expected\nto match one of the languages used in the address' country/region, or their\ntransliterated equivalents.\nThis can affect formatting in certain countries, but is not critical\nto the correctness of the data and will never affect any validation or\nother non-formatting related operations.\n\nIf this value is not known, it should be omitted (rather than specifying a\npossibly incorrect default).\n\nExamples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".",
"type": "string"
},
"locality": {
"description": "Optional. Generally refers to the city/town portion of the address.\nExamples: US city, IT comune, UK post town.\nIn regions of the world where localities are not well defined or do not fit\ninto this structure well, leave locality empty and use address_lines.",
"type": "string"
},
"organization": {
"description": "Optional. The name of the organization at the address.",
"type": "string"
},
"postalCode": {
"description": "Optional. Postal code of the address. Not all countries use or require\npostal codes to be present, but where they are used, they may trigger\nadditional validation with other parts of the address (e.g. state/zip\nvalidation in the U.S.A.).",
"type": "string"
},
"recipients": {
"description": "Optional. The recipient at the address.\nThis field may, under certain circumstances, contain multiline information.\nFor example, it might contain \"care of\" information.",
"items": {
"type": "string"
},
"type": "array"
},
"regionCode": {
"description": "Required. CLDR region code of the country/region of the address. This\nis never inferred and it is up to the user to ensure the value is\ncorrect. See http://cldr.unicode.org/ and\nhttp://www.unicode.org/cldr/charts/30/supplemental/territory_information.html\nfor details. Example: \"CH\" for Switzerland.",
"type": "string"
},
"revision": {
"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is\nthe latest revision.\n\nAll new revisions **must** be backward compatible with old revisions.",
"format": "int32",
"type": "integer"
},
"sortingCode": {
"description": "Optional. Additional, country-specific, sorting code. This is not used\nin most regions. Where it is used, the value is either a string like\n\"CEDEX\", optionally followed by a number (e.g. \"CEDEX 7\"), or just a number\nalone, representing the \"sector code\" (Jamaica), \"delivery area indicator\"\n(Malawi) or \"post office indicator\" (e.g. C\u00f4te d'Ivoire).",
"type": "string"
},
"sublocality": {
"description": "Optional. Sublocality of the address.\nFor example, this can be neighborhoods, boroughs, districts.",
"type": "string"
}
},
"type": "object"
},
"PriceList": {
"description": "A list of item price information. Price lists are structured as one or more\nprice lists, each containing one or more sections with one or more items.\nFor example, food price lists may represent breakfast/lunch/dinner menus,\nwith sections for burgers/steak/seafood.",
"id": "PriceList",
"properties": {
"labels": {
"description": "Required. Language-tagged labels for the price list.",
"items": {
"$ref": "Label"
},
"type": "array"
},
"priceListId": {
"description": "Required. ID for the price list. Price list, section, and item IDs cannot\nbe duplicated within this Location.",
"type": "string"
},
"sections": {
"description": "Required. Sections for this price list. Each price list must contain at\nleast one section.",
"items": {
"$ref": "Section"
},
"type": "array"
},
"sourceUrl": {
"description": "Optional source URL of where the price list was retrieved from. For\nexample, this could be the URL of the page that was automatically scraped\nto populate the menu information.",
"type": "string"
}
},
"type": "object"
},
"Profile": {
"description": "All information pertaining to the location's profile.",
"id": "Profile",
"properties": {
"description": {
"description": "Description of the location in your own voice, not editable by anyone else.",
"type": "string"
}
},
"type": "object"
},
"Question": {
"description": "Represents a single question and some of its answers.",
"id": "Question",
"properties": {
"author": {
"$ref": "Author",
"description": "Output only. The author of the question."
},
"createTime": {
"description": "Output only. The timestamp for when the question was written.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "Output only. The unique name for the question.\naccounts/*/locations/*/questions/*",
"type": "string"
},
"text": {
"description": "The text of the question. It should contain at least two words and the\ntotal length should be greater than or equal to 10 characters. The maximum\nlength is 4096 characters.",
"type": "string"
},
"topAnswers": {
"description": "Output only. A list of answers to the question, sorted by upvotes. This\nmay not be a complete list of answers depending on the request parameters\n(answers_per_question)",
"items": {
"$ref": "Answer"
},
"type": "array"
},
"totalAnswerCount": {
"description": "Output only. The total number of answers posted for this question.",
"format": "int32",
"type": "integer"
},
"updateTime": {
"description": "Output only. The timestamp for when the question was last modified.",
"format": "google-datetime",
"type": "string"
},
"upvoteCount": {
"description": "Output only. The number of upvotes for the question.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"RegionCount": {
"description": "A region with its associated request count.",
"id": "RegionCount",
"properties": {
"count": {
"description": "Number of driving-direction requests from this region.",
"format": "int64",
"type": "string"
},
"label": {
"description": "Human-readable label for the region.",
"type": "string"
},
"latlng": {
"$ref": "LatLng",
"description": "Center of region."
}
},
"type": "object"
},
"RelationshipData": {
"description": "Information of all parent and children locations related to this one.",
"id": "RelationshipData",
"properties": {
"parentChain": {
"description": "The resource name of the Chain that this location is member of.\nHow to find Chain ID",
"type": "string"
}
},
"type": "object"
},
"RepeatedEnumAttributeValue": {
"description": "Values for an attribute with a `value_type` of REPEATED_ENUM. This consists\nof two lists of value IDs: those that are set (true) and those that are unset\n(false). Values absent are considered unknown. At least one value must be\nspecified.",
"id": "RepeatedEnumAttributeValue",
"properties": {
"setValues": {
"description": "Enum values that are set.",
"items": {
"type": "string"
},
"type": "array"
},
"unsetValues": {
"description": "Enum values that are unset.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ReportGoogleLocationRequest": {
"description": "Request message for reporting a GoogleLocation.",
"id": "ReportGoogleLocationRequest",
"properties": {
"locationGroupName": {
"description": "Optional. The resource name of the location group that this Google Location\nis being reported for, in the format `accounts/{account_id}`.",
"type": "string"
},
"reportReasonBadLocation": {
"description": "The reason for which the user is reporting this location when the issue\nis with the location itself.",
"enum": [
"BAD_LOCATION_REASON_UNSPECIFIED",
"NOT_A_LOCATION",
"PERMANENTLY_CLOSED",
"DOES_NOT_EXIST",
"SPAM",
"NOT_A_BUSINESS",
"MOVED",
"DUPLICATE"
],
"enumDescriptions": [
"Not specified.",
"The recommended location is not an actual location.",
"The recommended location is permanently closed.",
"The recommended location does not exist.",
"The recommended location is spam, fake or offensive.",
"The recommended location is a private place or home.",
"The recommended location has moved to a new location.\n\nShould be accompanied by a `report_reason_elaboration` specifying the new\naddress.",
"The recommended location is a duplicate of another location."
],
"type": "string"
},
"reportReasonBadRecommendation": {
"description": "The reason for which the user is reporting this location when the issue\nis with the recommendation. This report is useful if the location has\nbeen recommended to the GMB account.",
"enum": [
"BAD_RECOMMENDATION_REASON_UNSPECIFIED",
"NOT_A_STORE_FRONT",
"NOT_PART_OF_SUGGESTED_CHAIN",
"IRRELEVANT"
],
"enumDescriptions": [
"Not specified.",
"The recommended location is not a store front.",
"The recommended location doesn't belong to the chain suggested in\nthe `chain_display_name` in the returned location.\n\nShould be accompanied by a `report_reason_elaboration` specifying the\nname of the correct chain.",
"The recommended location is not relevant to the user.\n\nShould be accompanied by a `report_reason_elaboration` for why the\nrecommendation is irrelevant."
],
"type": "string"
},
"reportReasonElaboration": {
"description": "Optional. A text entry for elaborating on the reason for which the user is\nreporting this location. The maximum length is 512 characters.",
"type": "string"
},
"reportReasonLanguageCode": {
"description": "Optional. The BCP 47 code of language used in `report_reason_elaboration`.",
"type": "string"
}
},
"type": "object"
},
"ReportLocalPostInsightsRequest": {
"description": "Request message for Insights.ReportLocalPostInsights",
"id": "ReportLocalPostInsightsRequest",
"properties": {
"basicRequest": {
"$ref": "BasicMetricsRequest",
"description": "A request to include basic metric insights in the report. This request\napplies to all posts requested."
},
"localPostNames": {
"description": "Required. The list of posts for which to fetch insights data. All posts\nhave to belong to the location whose name is specified in the `name` field.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ReportLocalPostInsightsResponse": {
"description": "Response message for Insights.ReportLocalPostInsights",
"id": "ReportLocalPostInsightsResponse",
"properties": {
"localPostMetrics": {
"description": "One entry per requested post corresponding to this location.",
"items": {
"$ref": "LocalPostMetrics"
},
"type": "array"
},
"name": {
"type": "string"
},
"timeZone": {
"description": "Time zone (IANA timezone IDs, eg, 'Europe/London') of the location.",
"type": "string"
}
},
"type": "object"
},
"ReportLocationInsightsRequest": {
"description": "Request message for Insights.ReportLocationInsights.",
"id": "ReportLocationInsightsRequest",
"properties": {
"basicRequest": {
"$ref": "BasicMetricsRequest",
"description": "A request to include basic metric insights in the report."
},
"drivingDirectionsRequest": {
"$ref": "DrivingDirectionMetricsRequest",
"description": "A request to include insights about driving-direction requests\nin the report."
},
"locationNames": {
"description": "A collection of locations to fetch insights for, specified by their names.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ReportLocationInsightsResponse": {
"description": "Response message for `Insights.ReportLocationInsights`.",
"id": "ReportLocationInsightsResponse",
"properties": {
"locationDrivingDirectionMetrics": {
"description": "A collection of values for driving direction-related metrics.",
"items": {
"$ref": "LocationDrivingDirectionMetrics"
},
"type": "array"
},
"locationMetrics": {
"description": "A collection of metric values by location.",
"items": {
"$ref": "LocationMetrics"
},
"type": "array"
}
},
"type": "object"
},
"Review": {
"description": "Output only. Represents a review for a location.",
"id": "Review",
"properties": {
"comment": {
"description": "The body of the review as plain text with markups.",
"type": "string"
},
"createTime": {
"description": "The timestamp for when the review was written.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "The resource name. For Review it is of the form\n`accounts/{account_id}/locations/{location_id}/reviews/{review_id}`",
"type": "string"
},
"reviewId": {
"description": "The encrypted unique identifier.",
"type": "string"
},
"reviewReply": {
"$ref": "ReviewReply",
"description": "The owner/manager of this location's reply to this review."
},
"reviewer": {
"$ref": "Reviewer",
"description": "The author of the review."
},
"starRating": {
"description": "The star rating of the review.",
"enum": [
"STAR_RATING_UNSPECIFIED",
"ONE",
"TWO",
"THREE",
"FOUR",
"FIVE"
],
"enumDescriptions": [
"Not specified.",
"One star out of a maximum of five.",
"Two stars out of a maximum of five.",
"Three stars out of a maximum of five.",
"Four stars out of a maximum of five.",
"The maximum star rating."
],
"type": "string"
},
"updateTime": {
"description": "The timestamp for when the review was last modified.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"ReviewReply": {
"description": "Represents the location owner/manager's reply to a review.",
"id": "ReviewReply",
"properties": {
"comment": {
"description": "The body of the reply as plain text with markups.\nThe maximum length is 4096 bytes.",
"type": "string"
},
"updateTime": {
"description": "Output only. The timestamp for when the reply was last modified.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"Reviewer": {
"description": "Represents the author of the review.",
"id": "Reviewer",
"properties": {
"displayName": {
"description": "The name of the reviewer.\nOnly populated with the reviewer's real name if `is_anonymous` is false.",
"type": "string"
},
"isAnonymous": {
"description": "Indicates whether the reviewer has opted to remain anonymous.",
"type": "boolean"
},
"profilePhotoUrl": {
"description": "The profile photo link of the reviewer.\nOnly populated if `is_anonymous` is false.",
"type": "string"
}
},
"type": "object"
},
"SearchChainsResponse": {
"description": "Response message for Locations.SearchChains.",
"id": "SearchChainsResponse",
"properties": {
"chains": {
"description": "Chains that match the queried chain_display_name in SearchChainsRequest.\nIf there are no matches, this field will be empty.\nResults are listed in order of relevance.",
"items": {
"$ref": "Chain"
},
"type": "array"
}
},
"type": "object"
},
"SearchGoogleLocationsRequest": {
"description": "Request message for GoogleLocations.SearchGoogleLocations.",
"id": "SearchGoogleLocationsRequest",
"properties": {
"location": {
"$ref": "Location",
"description": "Location to search for. If provided, will find locations which match the\nprovided location details."
},
"query": {
"description": "Text query to search for. The search results from a query string will be\nless accurate than if providing an exact location, but can provide more\ninexact matches.",
"type": "string"
},
"resultCount": {
"description": "The number of matches to return. The default value is 3, with a maximum\nof 10. Note that latency may increase if more are requested. There is no\npagination.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"SearchGoogleLocationsResponse": {
"description": "Response message for GoogleLocations.SearchGoogleLocations.",
"id": "SearchGoogleLocationsResponse",
"properties": {
"googleLocations": {
"description": "A collection of GoogleLocations that are potential matches to the specified\nrequest, listed in order from most to least accuracy.",
"items": {
"$ref": "GoogleLocation"
},
"type": "array"
}
},
"type": "object"
},
"Section": {
"description": "A section of the price list containing one or more items.",
"id": "Section",
"properties": {
"items": {
"description": "Items that are contained within this section of the price list.",
"items": {
"$ref": "Item"
},
"type": "array"
},
"labels": {
"description": "Required. Language-tagged labels for the section. We recommend that\nsection names and descriptions be 140 characters or less. At least one\nset of labels is required.",
"items": {
"$ref": "Label"
},
"type": "array"
},
"sectionId": {
"description": "Required. ID for the section. Price list, section, and item IDs cannot be\nduplicated within this Location.",
"type": "string"
},
"sectionType": {
"description": "Optional. Type of the current price list section. Default value is FOOD.",
"enum": [
"SECTION_TYPE_UNSPECIFIED",
"FOOD",
"SERVICES"
],
"enumDescriptions": [
"Not specified.",
"Section contains items that represent food.",
"Section contains items that represent services."
],
"type": "string"
}
},
"type": "object"
},
"ServiceAreaBusiness": {
"description": "Service area businesses provide their service at the customer's location (for\nexample, a locksmith or plumber).",
"id": "ServiceAreaBusiness",
"properties": {
"businessType": {
"description": "Indicates the type of the service area\nbusiness.",
"enum": [
"BUSINESS_TYPE_UNSPECIFIED",
"CUSTOMER_LOCATION_ONLY",
"CUSTOMER_AND_BUSINESS_LOCATION"
],
"enumDescriptions": [
"Output only. Not specified.",
"Offers service only in the surrounding area (not at the business\naddress).",
"Offers service at the business address and the surrounding area."
],
"type": "string"
},
"places": {
"$ref": "Places",
"description": "The area that this business serves defined through a set of places."
},
"radius": {
"$ref": "PointRadius",
"description": "Output only. The area that this business serves centered around a point."
}
},
"type": "object"
},
"ServiceBusinessContext": {
"description": "Additional data for service business verification.",
"id": "ServiceBusinessContext",
"properties": {
"address": {
"$ref": "PostalAddress",
"description": "The verification address of the location. It is used to either enable more\nverification options or send a postcard."
}
},
"type": "object"
},
"SpecialHourPeriod": {
"description": "Represents a single time period when a location's operational hours differ\nfrom its normal business hours.\nA special hour period must represent a range of less than 24 hours.\nThe `open_time` and `start_date` must predate the `close_time` and\n`end_date`. The `close_time` and `end_date` can extend to 11:59 a.m. on the\nday after the specified `start_date`. For example, the following inputs are\nvalid:\n\n start_date=2015-11-23, open_time=08:00, close_time=18:00\n start_date=2015-11-23, end_date=2015-11-23, open_time=08:00,\n close_time=18:00 start_date=2015-11-23, end_date=2015-11-24,\n open_time=13:00, close_time=11:59\n\nThe following inputs are not valid:\n\n start_date=2015-11-23, open_time=13:00, close_time=11:59\n start_date=2015-11-23, end_date=2015-11-24, open_time=13:00,\n close_time=12:00 start_date=2015-11-23, end_date=2015-11-25,\n open_time=08:00, close_time=18:00",
"id": "SpecialHourPeriod",
"properties": {
"closeTime": {
"description": "The wall time on `end_date` when a location closes, expressed in\n24hr ISO 8601 extended format. (hh:mm) Valid values are 00:00-24:00,\nwhere 24:00 represents midnight at the end of the specified day field.\nMust be specified if `is_closed` is false.",
"type": "string"
},
"endDate": {
"$ref": "Date",
"description": "The calendar date this special hour period ends on.\nIf `end_date` field is not set, default to the date specified in\n`start_date`.\nIf set, this field must be equal to or at most 1 day after `start_date`."
},
"isClosed": {
"description": "If true, `end_date`, `open_time`, and `close_time` are ignored,\nand the date specified in `start_date` is treated as the location being\nclosed for the entire day.",
"type": "boolean"
},
"openTime": {
"description": "The wall time on `start_date` when a location opens, expressed in\n24hr ISO 8601 extended format. (hh:mm) Valid values are 00:00-24:00,\nwhere 24:00 represents midnight at the end of the specified day field.\nMust be specified if `is_closed` is false.",
"type": "string"
},
"startDate": {
"$ref": "Date",
"description": "The calendar date this special hour period starts on."
}
},
"type": "object"
},
"SpecialHours": {
"description": "Represents a set of time periods when a location's operational hours differ\nfrom its normal business hours.",
"id": "SpecialHours",
"properties": {
"specialHourPeriods": {
"description": "A list of exceptions to the business's regular hours.",
"items": {
"$ref": "SpecialHourPeriod"
},
"type": "array"
}
},
"type": "object"
},
"StartUploadMediaItemDataRequest": {
"description": "Request message for Media.StartUploadMediaItemData.",
"id": "StartUploadMediaItemDataRequest",
"properties": {},
"type": "object"
},
"TargetLocation": {
"description": "Represents a target location for a pending invitation.",
"id": "TargetLocation",
"properties": {
"locationAddress": {
"description": "The address of the location to which the user is invited.",
"type": "string"
},
"locationName": {
"description": "The name of the location to which the user is invited.",
"type": "string"
}
},
"type": "object"
},
"TimeDimension": {
"description": "The dimension for which data is divided over.",
"id": "TimeDimension",
"properties": {
"dayOfWeek": {
"description": "The day of the week (\"MONDAY\" to \"SUNDAY\") this value corresponds to.\nSet for BREAKDOWN_DAY_OF_WEEK option.",
"enum": [
"DAY_OF_WEEK_UNSPECIFIED",
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"enumDescriptions": [
"The day of the week is unspecified.",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"type": "string"
},
"timeOfDay": {
"$ref": "TimeOfDay",
"description": "The hour of the day (0 to 23) this value corresponds to.\nSet for BREAKDOWN_HOUR_OF_DAY option."
},
"timeRange": {
"$ref": "TimeRange",
"description": "The range of time this value covers.\nSet for AGGREGATED_TOTAL and AGGREGATED_DAILY options."
}
},
"type": "object"
},
"TimeInterval": {
"description": "An interval of time, inclusive. It must contain all fields to be valid.",
"id": "TimeInterval",
"properties": {
"endDate": {
"$ref": "Date",
"description": "The end date of this period."
},
"endTime": {
"$ref": "TimeOfDay",
"description": "The end time of this period."
},
"startDate": {
"$ref": "Date",
"description": "The start date of this period."
},
"startTime": {
"$ref": "TimeOfDay",
"description": "The start time of this period."
}
},
"type": "object"
},
"TimeOfDay": {
"description": "Represents a time of day. The date and time zone are either not significant\nor are specified elsewhere. An API may choose to allow leap seconds. Related\ntypes are google.type.Date and `google.protobuf.Timestamp`.",
"id": "TimeOfDay",
"properties": {
"hours": {
"description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose\nto allow the value \"24:00:00\" for scenarios like business closing time.",
"format": "int32",
"type": "integer"
},
"minutes": {
"description": "Minutes of hour of day. Must be from 0 to 59.",
"format": "int32",
"type": "integer"
},
"nanos": {
"description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.",
"format": "int32",
"type": "integer"
},
"seconds": {
"description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may\nallow the value 60 if it allows leap-seconds.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"TimePeriod": {
"description": "Represents a span of time that the business is open, starting on the\nspecified open\nday/time and closing on the specified close day/time.\nThe closing time must occur after the opening time, for example later in the\nsame day, or on a subsequent day.",
"id": "TimePeriod",
"properties": {
"closeDay": {
"description": "Indicates the day of the week this period ends\non.",
"enum": [
"DAY_OF_WEEK_UNSPECIFIED",
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"enumDescriptions": [
"The day of the week is unspecified.",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"type": "string"
},
"closeTime": {
"description": "Time in 24hr ISO 8601 extended format (hh:mm). Valid values are\n00:00-24:00, where 24:00 represents midnight at the end of the specified\nday field.",
"type": "string"
},
"openDay": {
"description": "Indicates the day of the week this period starts\non.",
"enum": [
"DAY_OF_WEEK_UNSPECIFIED",
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"enumDescriptions": [
"The day of the week is unspecified.",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"type": "string"
},
"openTime": {
"description": "Time in 24hr ISO 8601 extended format (hh:mm). Valid values are\n00:00-24:00, where 24:00 represents midnight at the end of the specified\nday field.",
"type": "string"
}
},
"type": "object"
},
"TimeRange": {
"description": "A range of time. Data will be pulled over the range as a half-open inverval\n(that is, [start_time, end_time)).",
"id": "TimeRange",
"properties": {
"endTime": {
"description": "Epoch timestamp for the end of the range (exclusive).",
"format": "google-datetime",
"type": "string"
},
"startTime": {
"description": "Epoch timestamp for the start of the range (inclusive).",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"TopDirectionSources": {
"description": "Top regions where driving-direction requests originated from.",
"id": "TopDirectionSources",
"properties": {
"dayCount": {
"description": "The number of days data is aggregated over.",
"format": "int32",
"type": "integer"
},
"regionCounts": {
"description": "Regions sorted in descending order by count.",
"items": {
"$ref": "RegionCount"
},
"type": "array"
}
},
"type": "object"
},
"TransferLocationRequest": {
"description": "Request message for Locations.TransferLocation.",
"id": "TransferLocationRequest",
"properties": {
"toAccount": {
"description": "Name of the account resource to transfer the location to (for example,\n\"accounts/8675309\").",
"type": "string"
}
},
"type": "object"
},
"UpsertAnswerRequest": {
"description": "Request message for QuestionsAndAnswers.UpsertAnswer",
"id": "UpsertAnswerRequest",
"properties": {
"answer": {
"$ref": "Answer",
"description": "The new answer."
}
},
"type": "object"
},
"UrlAttributeValue": {
"description": "Values for an attribute with a `value_type` of URL.",
"id": "UrlAttributeValue",
"properties": {
"url": {
"description": "The URL.",
"type": "string"
}
},
"type": "object"
},
"Verification": {
"description": "A verification represents a verification attempt on a location.",
"id": "Verification",
"properties": {
"createTime": {
"description": "The timestamp when the verification is requested.",
"format": "google-datetime",
"type": "string"
},
"method": {
"description": "The method of the verification.",
"enum": [
"VERIFICATION_METHOD_UNSPECIFIED",
"ADDRESS",
"EMAIL",
"PHONE_CALL",
"SMS",
"AUTO",
"VETTED_PARTNER"
],
"enumDescriptions": [
"Default value, will result in errors.",
"Send a postcard with a verification PIN to a specific mailing address.\nThe PIN is used to complete verification with Google.",
"Send an email with a verification PIN to a specific email address.\nThe PIN is used to complete verification with Google.",
"Make a phone call with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Send an SMS with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Verify the location without additional user action. This option may not be\navailable for all locations.",
"Used for My Business Provider partners. This option may not be available\nfor all locations."
],
"type": "string"
},
"name": {
"description": "Resource name of the verification.",
"type": "string"
},
"state": {
"description": "The state of the verification.",
"enum": [
"VERIFICATION_STATE_UNSPECIFIED",
"PENDING",
"COMPLETED",
"FAILED"
],
"enumDescriptions": [
"Default value, will result in errors.",
"The verification is pending.",
"The verification is completed.",
"The verification is failed."
],
"type": "string"
}
},
"type": "object"
},
"VerificationOption": {
"description": "The verification option represents how to verify the location (indicated by\nverification method) and where the verification will be sent to (indicated by\ndisplay data).",
"id": "VerificationOption",
"properties": {
"addressData": {
"$ref": "AddressVerificationData",
"description": "Set only if the method is MAIL."
},
"emailData": {
"$ref": "EmailVerificationData",
"description": "Set only if the method is EMAIL."
},
"phoneData": {
"$ref": "PhoneVerificationData",
"description": "Set only if the method is PHONE_CALL or SMS."
},
"verificationMethod": {
"description": "Method to verify the location.",
"enum": [
"VERIFICATION_METHOD_UNSPECIFIED",
"ADDRESS",
"EMAIL",
"PHONE_CALL",
"SMS",
"AUTO",
"VETTED_PARTNER"
],
"enumDescriptions": [
"Default value, will result in errors.",
"Send a postcard with a verification PIN to a specific mailing address.\nThe PIN is used to complete verification with Google.",
"Send an email with a verification PIN to a specific email address.\nThe PIN is used to complete verification with Google.",
"Make a phone call with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Send an SMS with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Verify the location without additional user action. This option may not be\navailable for all locations.",
"Used for My Business Provider partners. This option may not be available\nfor all locations."
],
"type": "string"
}
},
"type": "object"
},
"VerificationToken": {
"description": "Token generated by a vetted partner.",
"id": "VerificationToken",
"properties": {
"tokenString": {
"description": "The token string.",
"type": "string"
}
},
"type": "object"
},
"VerifyLocationRequest": {
"description": "Request message for Verifications.VerifyLocation.",
"id": "VerifyLocationRequest",
"properties": {
"addressInput": {
"$ref": "AddressInput",
"description": "The input for ADDRESS method."
},
"context": {
"$ref": "ServiceBusinessContext",
"description": "Extra context information for the verification of service businesses.\nRequired for the locations whose business type is CUSTOMER_LOCATION_ONLY.\nFor ADDRESS verification, the address will be used to send out postcard.\nFor other methods, it should be the same as the one that is passed to\nFetchVerificationOptions.\nINVALID_ARGUMENT will be thrown if it is set for other types of business\nlocations."
},
"emailInput": {
"$ref": "EmailInput",
"description": "The input for EMAIL method."
},
"languageCode": {
"description": "The BCP 47 language code representing the language that is to be used for\nthe verification process.",
"type": "string"
},
"method": {
"description": "Verification method.",
"enum": [
"VERIFICATION_METHOD_UNSPECIFIED",
"ADDRESS",
"EMAIL",
"PHONE_CALL",
"SMS",
"AUTO",
"VETTED_PARTNER"
],
"enumDescriptions": [
"Default value, will result in errors.",
"Send a postcard with a verification PIN to a specific mailing address.\nThe PIN is used to complete verification with Google.",
"Send an email with a verification PIN to a specific email address.\nThe PIN is used to complete verification with Google.",
"Make a phone call with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Send an SMS with a verification PIN to a specific phone number.\nThe PIN is used to complete verification with Google.",
"Verify the location without additional user action. This option may not be\navailable for all locations.",
"Used for My Business Provider partners. This option may not be available\nfor all locations."
],
"type": "string"
},
"phoneInput": {
"$ref": "PhoneInput",
"description": "The input for PHONE_CALL/SMS method"
},
"vettedPartnerInput": {
"$ref": "VettedPartnerInput",
"description": "The input for VETTED_PARTNER method. The input is not needed for a\nvetted account."
}
},
"type": "object"
},
"VerifyLocationResponse": {
"description": "Response message for Verifications.VerifyLocation.",
"id": "VerifyLocationResponse",
"properties": {
"verification": {
"$ref": "Verification",
"description": "The created verification request."
}
},
"type": "object"
},
"VettedPartnerInput": {
"description": "Input for VETTED_PARTNER verification.",
"id": "VettedPartnerInput",
"properties": {
"token": {
"$ref": "VerificationToken",
"description": "Token that is associated to the location."
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Google My Business API",
"version": "v4",
"version_module": true
}