{
  "schemas": {
    "ItemRevisionStatus": {
      "id": "ItemRevisionStatus",
      "type": "object",
      "properties": {
        "state": {
          "description": "Output only. Current state of the item",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "The item is pending review.",
            "The item has been approved and is ready to be published.",
            "The item is published publicly.",
            "The item is published to trusted testers.",
            "The item has been rejected for publishing.",
            "The item submission has been cancelled."
          ],
          "readOnly": true,
          "type": "string",
          "enum": [
            "ITEM_STATE_UNSPECIFIED",
            "PENDING_REVIEW",
            "STAGED",
            "PUBLISHED",
            "PUBLISHED_TO_TESTERS",
            "REJECTED",
            "CANCELLED"
          ]
        },
        "distributionChannels": {
          "type": "array",
          "items": {
            "$ref": "DistributionChannel"
          },
          "description": "Details on the package of the item"
        }
      },
      "description": "Details on the status of an item revision."
    },
    "UploadItemPackageResponse": {
      "description": "Response message for `UploadItemPackage`.",
      "id": "UploadItemPackageResponse",
      "type": "object",
      "properties": {
        "crxVersion": {
          "description": "The extension version provided in the manifest of the uploaded package. This will not be set if the upload is still in progress (`upload_state` is `UPLOAD_IN_PROGRESS`).",
          "type": "string"
        },
        "itemId": {
          "description": "Output only. The ID of the item the package was uploaded to.",
          "readOnly": true,
          "type": "string"
        },
        "uploadState": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The default value.",
            "The upload succeeded.",
            "The upload is currently being processed.",
            "The upload failed.",
            "Used as the value of `lastAsyncUploadState` in a `fetchStatus` response indicating that an upload attempt was not found."
          ],
          "enum": [
            "UPLOAD_STATE_UNSPECIFIED",
            "SUCCEEDED",
            "IN_PROGRESS",
            "FAILED",
            "NOT_FOUND"
          ],
          "description": "Output only. The state of the upload. If `upload_state` is `UPLOAD_IN_PROGRESS`, you can poll for updates using the fetchStatus method."
        },
        "name": {
          "description": "The name of the item the package was uploaded to.",
          "type": "string"
        }
      }
    },
    "SetPublishedDeployPercentageResponse": {
      "description": "Response message for `SetPublishedDeployPercentage`.",
      "id": "SetPublishedDeployPercentageResponse",
      "type": "object",
      "properties": {}
    },
    "FetchItemStatusResponse": {
      "id": "FetchItemStatusResponse",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the requested item.",
          "type": "string"
        },
        "publishedItemRevisionStatus": {
          "readOnly": true,
          "description": "Output only. Status of the current published revision of the item. Will be unset if the item is not published.",
          "$ref": "ItemRevisionStatus"
        },
        "warned": {
          "description": "If true, the item has been warned for a policy violation and will be taken down if not resolved. Check the developer dashboard for details.",
          "type": "boolean"
        },
        "itemId": {
          "description": "Output only. The ID of the item.",
          "readOnly": true,
          "type": "string"
        },
        "takenDown": {
          "description": "If true, the item has been taken down for a policy violation. Check the developer dashboard for details.",
          "type": "boolean"
        },
        "lastAsyncUploadState": {
          "description": "Output only. The state of the last async upload for an item. Only set when there has been an async upload for the item in the past 24 hours.",
          "enum": [
            "UPLOAD_STATE_UNSPECIFIED",
            "SUCCEEDED",
            "IN_PROGRESS",
            "FAILED",
            "NOT_FOUND"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The default value.",
            "The upload succeeded.",
            "The upload is currently being processed.",
            "The upload failed.",
            "Used as the value of `lastAsyncUploadState` in a `fetchStatus` response indicating that an upload attempt was not found."
          ]
        },
        "publicKey": {
          "description": "The public key of the item, which may be generated by the store.",
          "type": "string"
        },
        "submittedItemRevisionStatus": {
          "description": "Status of the item revision submitted to be published. Will be unset if the item has not been submitted for publishing since the last successful publish.",
          "$ref": "ItemRevisionStatus"
        }
      },
      "description": "Response message for `FetchItemStatus`."
    },
    "CancelSubmissionResponse": {
      "description": "Response message for `CancelSubmission`.",
      "id": "CancelSubmissionResponse",
      "type": "object",
      "properties": {}
    },
    "PublishItemRequest": {
      "description": "Request message for PublishItem.",
      "id": "PublishItemRequest",
      "type": "object",
      "properties": {
        "skipReview": {
          "description": "Optional. Whether to attempt to skip item review. The API will validate if the item qualifies and return a validation error if the item requires review. Defaults to `false` if unset.",
          "type": "boolean"
        },
        "publishType": {
          "enumDescriptions": [
            "Default value. This is the same as DEFAULT_PUBLISH.",
            "The submission will be published immediately after being approved.",
            "After approval the submission will be staged and can then be published by the developer."
          ],
          "type": "string",
          "description": "Optional. Use this to control if the item is published immediately on approval or staged for publishing in the future. Defaults to `DEFAULT_PUBLISH` if unset.",
          "enum": [
            "PUBLISH_TYPE_UNSPECIFIED",
            "DEFAULT_PUBLISH",
            "STAGED_PUBLISH"
          ]
        },
        "deployInfos": {
          "description": "Optional. Additional deploy information including the desired initial percentage rollout. Defaults to the current value saved in the developer dashboard if unset.",
          "type": "array",
          "items": {
            "$ref": "DeployInfo"
          }
        }
      }
    },
    "UploadItemPackageRequest": {
      "description": "Request message for UploadItemPackage.",
      "id": "UploadItemPackageRequest",
      "type": "object",
      "properties": {}
    },
    "SetPublishedDeployPercentageRequest": {
      "description": "Request message for SetPublishedDeployPercentage.",
      "id": "SetPublishedDeployPercentageRequest",
      "type": "object",
      "properties": {
        "deployPercentage": {
          "type": "integer",
          "format": "int32",
          "description": "Required. Unscaled percentage value for the publised revision (nonnegative number between 0 and 100). It must be larger than the existing target percentage."
        }
      }
    },
    "DistributionChannel": {
      "id": "DistributionChannel",
      "type": "object",
      "properties": {
        "deployPercentage": {
          "type": "integer",
          "format": "int32",
          "description": "The current deploy percentage for the release channel (nonnegative number between 0 and 100)."
        },
        "crxVersion": {
          "description": "The extension version provided in the manifest of the uploaded package.",
          "type": "string"
        }
      },
      "description": "Deployment information for a specific release channel"
    },
    "PublishItemResponse": {
      "id": "PublishItemResponse",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the item that was submitted",
          "type": "string"
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Default value. This value is unused.",
            "The item is pending review.",
            "The item has been approved and is ready to be published.",
            "The item is published publicly.",
            "The item is published to trusted testers.",
            "The item has been rejected for publishing.",
            "The item submission has been cancelled."
          ],
          "enum": [
            "ITEM_STATE_UNSPECIFIED",
            "PENDING_REVIEW",
            "STAGED",
            "PUBLISHED",
            "PUBLISHED_TO_TESTERS",
            "REJECTED",
            "CANCELLED"
          ],
          "description": "Output only. The current state of the submission."
        },
        "itemId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of the item."
        }
      },
      "description": "Response message for `PublishItem`."
    },
    "CancelSubmissionRequest": {
      "description": "Request message for CancelSubmission.",
      "id": "CancelSubmissionRequest",
      "type": "object",
      "properties": {}
    },
    "DeployInfo": {
      "description": "Deployment information for a specific release channel. Used in requests to update deployment parameters.",
      "id": "DeployInfo",
      "type": "object",
      "properties": {
        "deployPercentage": {
          "description": "Required. The current deploy percentage for the release channel (nonnegative number between 0 and 100).",
          "format": "int32",
          "type": "integer"
        }
      }
    }
  },
  "version": "v2",
  "name": "chromewebstore",
  "version_module": true,
  "parameters": {
    "callback": {
      "location": "query",
      "type": "string",
      "description": "JSONP"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "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.",
      "type": "string",
      "location": "query"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string",
      "description": "V1 error format."
    },
    "alt": {
      "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",
      "description": "Data format for response.",
      "default": "json"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query",
      "type": "boolean"
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "key": {
      "location": "query",
      "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."
    }
  },
  "basePath": "",
  "baseUrl": "https://chromewebstore.googleapis.com/",
  "canonicalName": "Chromewebstore",
  "batchPath": "batch",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "description": "The Chrome Web Store API provides access to data about apps and extensions, as well as developer tools for managing them.",
  "rootUrl": "https://chromewebstore.googleapis.com/",
  "title": "Chrome Web Store API",
  "ownerName": "Google",
  "mtlsRootUrl": "https://chromewebstore.mtls.googleapis.com/",
  "kind": "discovery#restDescription",
  "id": "chromewebstore:v2",
  "servicePath": "",
  "fullyEncodeReservedExpansion": true,
  "ownerDomain": "google.com",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/chromewebstore": {
          "description": "See, edit, update, or publish your Chrome Web Store extensions, themes, apps, and licences you have access to"
        },
        "https://www.googleapis.com/auth/chromewebstore.readonly": {
          "description": "See and download your Chrome Web Store extensions and apps, and see licenses you have access to"
        }
      }
    }
  },
  "discoveryVersion": "v1",
  "revision": "20260415",
  "protocol": "rest",
  "resources": {
    "publishers": {
      "resources": {
        "items": {
          "methods": {
            "fetchStatus": {
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore",
                "https://www.googleapis.com/auth/chromewebstore.readonly"
              ],
              "description": "Fetch the status of an item.",
              "response": {
                "$ref": "FetchItemStatusResponse"
              },
              "id": "chromewebstore.publishers.items.fetchStatus",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "path": "v2/{+name}:fetchStatus",
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "type": "string",
                  "description": "Required. Name of the item to retrieve the status of in the form `publishers/{publisherId}/items/{itemId}`"
                }
              },
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:fetchStatus"
            },
            "setPublishedDeployPercentage": {
              "response": {
                "$ref": "SetPublishedDeployPercentageResponse"
              },
              "id": "chromewebstore.publishers.items.setPublishedDeployPercentage",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ],
              "request": {
                "$ref": "SetPublishedDeployPercentageRequest"
              },
              "description": "Set a higher target deploy percentage for the item's published revision. This will be updated without the item being submitted for review. This is only available to items with over 10,000 seven-day active users.",
              "parameters": {
                "name": {
                  "description": "Required. Name of the item to update the published revision of in the form `publishers/{publisherId}/items/{itemId}`",
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:setPublishedDeployPercentage",
              "parameterOrder": [
                "name"
              ],
              "path": "v2/{+name}:setPublishedDeployPercentage"
            },
            "publish": {
              "parameters": {
                "name": {
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Required. Name of the item in the form `publishers/{publisherId}/items/{itemId}`"
                }
              },
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:publish",
              "parameterOrder": [
                "name"
              ],
              "path": "v2/{+name}:publish",
              "id": "chromewebstore.publishers.items.publish",
              "response": {
                "$ref": "PublishItemResponse"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ],
              "request": {
                "$ref": "PublishItemRequest"
              },
              "description": "Submit the item to be published in the store. The item will be submitted for review unless `skip_review` is set to true, or the item is staged from a previous submission with `publish_type` set to `STAGED_PUBLISH`."
            },
            "cancelSubmission": {
              "httpMethod": "POST",
              "id": "chromewebstore.publishers.items.cancelSubmission",
              "response": {
                "$ref": "CancelSubmissionResponse"
              },
              "request": {
                "$ref": "CancelSubmissionRequest"
              },
              "description": "Cancel the current active submission of an item if present. This can be used to cancel the review of a pending submission.",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ],
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:cancelSubmission",
              "parameters": {
                "name": {
                  "description": "Required. Name of the item to cancel the submission of in the form `publishers/{publisherId}/items/{itemId}`",
                  "location": "path",
                  "required": true,
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "type": "string"
                }
              },
              "path": "v2/{+name}:cancelSubmission",
              "parameterOrder": [
                "name"
              ]
            }
          }
        }
      }
    },
    "media": {
      "methods": {
        "upload": {
          "request": {
            "$ref": "UploadItemPackageRequest"
          },
          "description": "Upload a new package to an existing item.",
          "scopes": [
            "https://www.googleapis.com/auth/chromewebstore"
          ],
          "httpMethod": "POST",
          "supportsMediaUpload": true,
          "response": {
            "$ref": "UploadItemPackageResponse"
          },
          "id": "chromewebstore.media.upload",
          "path": "v2/{+name}:upload",
          "mediaUpload": {
            "accept": [
              "*/*"
            ],
            "maxSize": "2147483648",
            "protocols": {
              "simple": {
                "path": "/upload/v2/{+name}:upload",
                "multipart": true
              }
            }
          },
          "parameterOrder": [
            "name"
          ],
          "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:upload",
          "parameters": {
            "name": {
              "location": "path",
              "required": true,
              "pattern": "^publishers/[^/]+/items/[^/]+$",
              "type": "string",
              "description": "Required. Name of the item to upload the new package to in the form `publishers/{publisherId}/items/{itemId}`"
            }
          }
        }
      }
    }
  },
  "documentationLink": "https://developer.chrome.com/docs/webstore/api"
}
