{
  "basePath": "",
  "baseUrl": "https://mybusinessplaceactions.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "My Business Place Actions",
  "description": "The My Business Place Actions API provides an interface for managing place action links of a location 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": "mybusinessplaceactions:v1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://mybusinessplaceactions.mtls.googleapis.com/",
  "name": "mybusinessplaceactions",
  "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": {
    "locations": {
      "resources": {
        "placeActionLinks": {
          "methods": {
            "create": {
              "description": "Creates a place action link associated with the specified location, and returns it. The request is considered duplicate if the `parent`, `place_action_link.uri` and `place_action_link.place_action_type` are the same as a previous request.",
              "flatPath": "v1/locations/{locationsId}/placeActionLinks",
              "httpMethod": "POST",
              "id": "mybusinessplaceactions.locations.placeActionLinks.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "Required. The resource name of the location where to create this place action link. `locations/{location_id}`.",
                  "location": "path",
                  "pattern": "^locations/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/placeActionLinks",
              "request": {
                "$ref": "PlaceActionLink"
              },
              "response": {
                "$ref": "PlaceActionLink"
              }
            },
            "delete": {
              "description": "Deletes a place action link from the specified location.",
              "flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}",
              "httpMethod": "DELETE",
              "id": "mybusinessplaceactions.locations.placeActionLinks.delete",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The resource name of the place action link to remove from the location.",
                  "location": "path",
                  "pattern": "^locations/[^/]+/placeActionLinks/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "Empty"
              }
            },
            "get": {
              "description": "Gets the specified place action link.",
              "flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}",
              "httpMethod": "GET",
              "id": "mybusinessplaceactions.locations.placeActionLinks.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The name of the place action link to fetch.",
                  "location": "path",
                  "pattern": "^locations/[^/]+/placeActionLinks/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "PlaceActionLink"
              }
            },
            "list": {
              "description": "Lists the place action links for the specified location.",
              "flatPath": "v1/locations/{locationsId}/placeActionLinks",
              "httpMethod": "GET",
              "id": "mybusinessplaceactions.locations.placeActionLinks.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "filter": {
                  "description": "Optional. A filter constraining the place action links to return. The response includes entries that match the filter. We support only the following filter: 1. place_action_type=XYZ where XYZ is a valid PlaceActionType.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Optional. How many place action links to return per page. Default of 10. The minimum is 1.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Optional. If specified, returns the next page of place action links.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. The name of the location whose place action links will be listed. `locations/{location_id}`.",
                  "location": "path",
                  "pattern": "^locations/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/placeActionLinks",
              "response": {
                "$ref": "ListPlaceActionLinksResponse"
              }
            },
            "patch": {
              "description": "Updates the specified place action link and returns it.",
              "flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}",
              "httpMethod": "PATCH",
              "id": "mybusinessplaceactions.locations.placeActionLinks.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Optional. The resource name, in the format `locations/{location_id}/placeActionLinks/{place_action_link_id}`. The name field will only be considered in UpdatePlaceActionLink and DeletePlaceActionLink requests for updating and deleting links respectively. However, it will be ignored in CreatePlaceActionLink request, where `place_action_link_id` will be assigned by the server on successful creation of a new link and returned as part of the response.",
                  "location": "path",
                  "pattern": "^locations/[^/]+/placeActionLinks/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Required. The specific fields to update. The only editable fields are `uri`, `place_action_type` and `is_preferred`. If the updated link already exists at the same location with the same `place_action_type` and `uri`, fails with an `ALREADY_EXISTS` error.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "request": {
                "$ref": "PlaceActionLink"
              },
              "response": {
                "$ref": "PlaceActionLink"
              }
            }
          }
        }
      }
    },
    "placeActionTypeMetadata": {
      "methods": {
        "list": {
          "description": "Returns the list of available place action types for a location or country.",
          "flatPath": "v1/placeActionTypeMetadata",
          "httpMethod": "GET",
          "id": "mybusinessplaceactions.placeActionTypeMetadata.list",
          "parameterOrder": [],
          "parameters": {
            "filter": {
              "description": "Optional. A filter constraining the place action types to return metadata for. The response includes entries that match the filter. We support only the following filters: 1. location=XYZ where XYZ is a string indicating the resource name of a location, in the format `locations/{location_id}`. 2. region_code=XYZ where XYZ is a Unicode CLDR region code to find available action types. If no filter is provided, all place action types are returned.",
              "location": "query",
              "type": "string"
            },
            "languageCode": {
              "description": "Optional. The IETF BCP-47 code of language to get display names in. If this language is not available, they will be provided in English.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Optional. How many action types to include per page. Default is 10, minimum is 1.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "Optional. If specified, the next page of place action type metadata is retrieved. The `pageToken` is returned when a call to `placeActionTypeMetadata.list` returns more results than can fit into the requested page size.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/placeActionTypeMetadata",
          "response": {
            "$ref": "ListPlaceActionTypeMetadataResponse"
          }
        }
      }
    }
  },
  "revision": "20220821",
  "rootUrl": "https://mybusinessplaceactions.googleapis.com/",
  "schemas": {
    "AvailableDay": {
      "description": "Day level availability.",
      "id": "AvailableDay",
      "properties": {
        "fulfillmentDate": {
          "$ref": "Date",
          "description": "An available date for a fulfillment method. Assumed to be in merchant's timezone."
        },
        "lastOrderingTime": {
          "description": "Unix timestamp. The last time till when, a user could place an order to be received by `fulfillment_date`. In other words, after last_ordering_time, fulfillment_date will no longer be shown as available.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Date": {
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "id": "Date",
      "properties": {
        "day": {
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "format": "int32",
          "type": "integer"
        },
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "format": "int32",
          "type": "integer"
        },
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "FeeDetails": {
      "description": "Fee details for the fulfillment method associated with the action.",
      "id": "FeeDetails",
      "properties": {
        "baseFee": {
          "$ref": "MinimumFee",
          "description": "The base fee associated with the fulfillment method."
        },
        "fixedFee": {
          "$ref": "FixedFee",
          "description": "The fixed fee associated with the fulfillment method."
        },
        "noFee": {
          "$ref": "NoFee",
          "description": "No fee for the fulfillment method."
        }
      },
      "type": "object"
    },
    "FixedFee": {
      "description": "The fixed fee required for the fulfillment method.",
      "id": "FixedFee",
      "properties": {
        "amount": {
          "$ref": "Money",
          "description": "The amount of the fixed fee for the fulfillment method."
        }
      },
      "type": "object"
    },
    "FulfillmentOption": {
      "description": "The fulfillment option for an order online action.",
      "id": "FulfillmentOption",
      "properties": {
        "availableDay": {
          "description": "A list of days on which there is availability for this fulfillment method (preferably at least 2).",
          "items": {
            "$ref": "AvailableDay"
          },
          "type": "array"
        },
        "feeDetails": {
          "$ref": "FeeDetails",
          "description": "Fee details for the fulfillment method."
        },
        "fulfillmentType": {
          "description": "Fulfillment type",
          "enum": [
            "FULFILLMENT_TYPE_UNSPECIFIED",
            "FULFILLMENT_TYPE_DELIVERY",
            "FULFILLMENT_TYPE_PICKUP"
          ],
          "enumDescriptions": [
            "The fulfillment type is unspecified.",
            "The fulfillment type is delivery.",
            "The fulfillment type is pickup."
          ],
          "type": "string"
        },
        "minimumOrder": {
          "$ref": "Money",
          "description": "Minimum order for the fulfillment method associated with the action."
        }
      },
      "type": "object"
    },
    "ListPlaceActionLinksResponse": {
      "description": "Response message for PlaceActions.ListPlaceActionLinks.",
      "id": "ListPlaceActionLinksResponse",
      "properties": {
        "nextPageToken": {
          "description": "If there are more place action links than the requested page size, then this field is populated with a token to fetch the next page of results.",
          "type": "string"
        },
        "placeActionLinks": {
          "description": "The returned list of place action links.",
          "items": {
            "$ref": "PlaceActionLink"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListPlaceActionTypeMetadataResponse": {
      "description": "Response message for PlaceActions.ListPlaceActionTypeMetadata.",
      "id": "ListPlaceActionTypeMetadataResponse",
      "properties": {
        "nextPageToken": {
          "description": "If the number of action types exceeded the requested page size, this field will be populated with a token to fetch the next page on a subsequent call to `placeActionTypeMetadata.list`. If there are no more results, this field will not be present in the response.",
          "type": "string"
        },
        "placeActionTypeMetadata": {
          "description": "A collection of metadata for the available place action types.",
          "items": {
            "$ref": "PlaceActionTypeMetadata"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MinimumFee": {
      "description": "The minimum fee required for the fulfillment method.",
      "id": "MinimumFee",
      "properties": {
        "baseFeeAmount": {
          "$ref": "Money",
          "description": "The base fee amount for the fulfillment method."
        }
      },
      "type": "object"
    },
    "Money": {
      "description": "Represents an amount of money with its currency type.",
      "id": "Money",
      "properties": {
        "currencyCode": {
          "description": "The three-letter currency code defined in ISO 4217.",
          "type": "string"
        },
        "nanos": {
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For 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. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NoFee": {
      "description": "No fee required for the fulfillment method associated with the action.",
      "id": "NoFee",
      "properties": {},
      "type": "object"
    },
    "OrderOnlineMetadata": {
      "description": "Client version of the metadata for an order online action.",
      "id": "OrderOnlineMetadata",
      "properties": {
        "fulfillmentOption": {
          "description": "Available fulfillment options for an order online action.",
          "items": {
            "$ref": "FulfillmentOption"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "PlaceActionLink": {
      "description": "Represents a place action link and its attributes.",
      "id": "PlaceActionLink",
      "properties": {
        "createTime": {
          "description": "Output only. The time when the place action link was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "isEditable": {
          "description": "Output only. Indicates whether this link can be edited by the client.",
          "readOnly": true,
          "type": "boolean"
        },
        "isPreferred": {
          "description": "Optional. Whether this link is preferred by the merchant. Only one link can be marked as preferred per place action type at a location. If a future request marks a different link as preferred for the same place action type, then the current preferred link (if any exists) will lose its preference.",
          "type": "boolean"
        },
        "name": {
          "description": "Optional. The resource name, in the format `locations/{location_id}/placeActionLinks/{place_action_link_id}`. The name field will only be considered in UpdatePlaceActionLink and DeletePlaceActionLink requests for updating and deleting links respectively. However, it will be ignored in CreatePlaceActionLink request, where `place_action_link_id` will be assigned by the server on successful creation of a new link and returned as part of the response.",
          "type": "string"
        },
        "orderOnlineMetadata": {
          "$ref": "OrderOnlineMetadata",
          "description": "Optional. Metadata for the order online link. Supports action with PlaceActionType of SHOP_ONLINE."
        },
        "placeActionType": {
          "description": "Required. The type of place action that can be performed using this link.",
          "enum": [
            "PLACE_ACTION_TYPE_UNSPECIFIED",
            "APPOINTMENT",
            "ONLINE_APPOINTMENT",
            "DINING_RESERVATION",
            "FOOD_ORDERING",
            "FOOD_DELIVERY",
            "FOOD_TAKEOUT",
            "SHOP_ONLINE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The action type is booking an appointment.",
            "The action type is booking an online appointment.",
            "The action type is making a dining reservation.",
            "The action type is ordering food for delivery and/or takeout.",
            "The action type is ordering food for delivery.",
            "The action type is ordering food for takeout.",
            "The action type is shopping, that can be delivery and/or pickup."
          ],
          "type": "string"
        },
        "providerType": {
          "description": "Output only. Specifies the provider type.",
          "enum": [
            "PROVIDER_TYPE_UNSPECIFIED",
            "MERCHANT",
            "AGGREGATOR_3P"
          ],
          "enumDescriptions": [
            "Not specified.",
            "A 1P provider such as a merchant, or an agency on behalf of a merchant.",
            "A 3P aggregator, such as a `Reserve with Google` partner."
          ],
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The time when the place action link was last modified.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "uri": {
          "description": "Required. The link uri. The same uri can be reused for different action types across different locations. However, only one place action link is allowed for each unique combination of (uri, place action type, location).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PlaceActionTypeMetadata": {
      "description": "Metadata for supported place action types.",
      "id": "PlaceActionTypeMetadata",
      "properties": {
        "displayName": {
          "description": "The localized display name for the attribute, if available; otherwise, the English display name.",
          "type": "string"
        },
        "placeActionType": {
          "description": "The place action type.",
          "enum": [
            "PLACE_ACTION_TYPE_UNSPECIFIED",
            "APPOINTMENT",
            "ONLINE_APPOINTMENT",
            "DINING_RESERVATION",
            "FOOD_ORDERING",
            "FOOD_DELIVERY",
            "FOOD_TAKEOUT",
            "SHOP_ONLINE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The action type is booking an appointment.",
            "The action type is booking an online appointment.",
            "The action type is making a dining reservation.",
            "The action type is ordering food for delivery and/or takeout.",
            "The action type is ordering food for delivery.",
            "The action type is ordering food for takeout.",
            "The action type is shopping, that can be delivery and/or pickup."
          ],
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "My Business Place Actions API",
  "version": "v1",
  "version_module": true
}