{
  "canonicalName": "Play Grouping",
  "schemas": {
    "VerifyTokenRequest": {
      "id": "VerifyTokenRequest",
      "description": "Request message for VerifyToken.",
      "type": "object",
      "properties": {
        "persona": {
          "description": "Required. Persona represented by the token. Format: personas/{persona}",
          "type": "string"
        }
      }
    },
    "VerifyTokenResponse": {
      "id": "VerifyTokenResponse",
      "description": "Response message for VerifyToken.",
      "type": "object",
      "properties": {}
    },
    "CreateOrUpdateTagsRequest": {
      "id": "CreateOrUpdateTagsRequest",
      "description": "Request message for CreateOrUpdateTags. VerifyToken.",
      "type": "object",
      "properties": {
        "tags": {
          "description": "Tags to be inserted or updated.",
          "type": "array",
          "items": {
            "$ref": "Tag"
          }
        }
      }
    },
    "Tag": {
      "id": "Tag",
      "description": "A tag is associated with exactly one package name and user.",
      "type": "object",
      "properties": {
        "booleanValue": {
          "description": "A boolean value of the tag.",
          "type": "boolean"
        },
        "stringValue": {
          "description": "A string value of the tag.",
          "type": "string"
        },
        "int64Value": {
          "description": "A signed 64-bit integer value of the tag.",
          "type": "string",
          "format": "int64"
        },
        "timeValue": {
          "description": "A time value of the tag.",
          "type": "string",
          "format": "google-datetime"
        },
        "key": {
          "description": "Required. Key for the tag.",
          "type": "string"
        }
      }
    },
    "CreateOrUpdateTagsResponse": {
      "id": "CreateOrUpdateTagsResponse",
      "description": "Response message for CreateOrUpdateTags.",
      "type": "object",
      "properties": {
        "tags": {
          "description": "All requested tags are returned, including pre-existing ones.",
          "type": "array",
          "items": {
            "$ref": "Tag"
          }
        }
      }
    }
  },
  "rootUrl": "https://playgrouping.googleapis.com/",
  "ownerDomain": "google.com",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "documentationLink": "https://cloud.google.com/playgrouping/",
  "mtlsRootUrl": "https://playgrouping.mtls.googleapis.com/",
  "kind": "discovery#restDescription",
  "ownerName": "Google",
  "revision": "20260517",
  "description": "playgrouping.googleapis.com API.",
  "id": "playgrouping:v1alpha1",
  "title": "Google Play Grouping API",
  "basePath": "",
  "protocol": "rest",
  "fullyEncodeReservedExpansion": true,
  "version_module": true,
  "batchPath": "batch",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "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"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "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"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  },
  "name": "playgrouping",
  "servicePath": "",
  "baseUrl": "https://playgrouping.googleapis.com/",
  "version": "v1alpha1",
  "resources": {
    "apps": {
      "resources": {
        "tokens": {
          "methods": {
            "verify": {
              "id": "playgrouping.apps.tokens.verify",
              "path": "v1alpha1/{+appPackage}/{+token}:verify",
              "flatPath": "v1alpha1/apps/{appsId}/tokens/{tokensId}:verify",
              "httpMethod": "POST",
              "parameters": {
                "appPackage": {
                  "description": "Required. App the token belongs to. Format: apps/{package_name}",
                  "pattern": "^apps/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "token": {
                  "description": "Required. The token to be verified. Format: tokens/{token}",
                  "pattern": "^tokens/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "appPackage",
                "token"
              ],
              "request": {
                "$ref": "VerifyTokenRequest"
              },
              "response": {
                "$ref": "VerifyTokenResponse"
              },
              "description": "Verify an API token by asserting the app and persona it belongs to. The verification is a protection against client-side attacks and will fail if the contents of the token don't match the provided values. A token must be verified before it can be used to manipulate user tags."
            }
          },
          "resources": {
            "tags": {
              "methods": {
                "createOrUpdate": {
                  "id": "playgrouping.apps.tokens.tags.createOrUpdate",
                  "path": "v1alpha1/{+appPackage}/{+token}/tags:createOrUpdate",
                  "flatPath": "v1alpha1/apps/{appsId}/tokens/{tokensId}/tags:createOrUpdate",
                  "httpMethod": "POST",
                  "parameters": {
                    "appPackage": {
                      "description": "Required. App whose tags are being manipulated. Format: apps/{package_name}",
                      "pattern": "^apps/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "token": {
                      "description": "Required. Token for which the tags are being inserted or updated. Format: tokens/{token}",
                      "pattern": "^tokens/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "appPackage",
                    "token"
                  ],
                  "request": {
                    "$ref": "CreateOrUpdateTagsRequest"
                  },
                  "response": {
                    "$ref": "CreateOrUpdateTagsResponse"
                  },
                  "description": "Create or update tags for the user and app that are represented by the given token."
                }
              }
            }
          }
        }
      }
    }
  },
  "discoveryVersion": "v1"
}
