{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-chrome/json-schema/google-chrome-list-releases-response-schema.json",
  "title": "ListReleasesResponse",
  "description": "Response message for ListReleases.",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-chrome-versionhistory-platforms-api-openapi.yml#/components/schemas/ListReleasesResponse",
  "properties": {
    "releases": {
      "items": {
        "$ref": "#/$defs/Release"
      },
      "description": "The list of releases.",
      "type": "array"
    },
    "nextPageToken": {
      "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
      "type": "string"
    }
  },
  "type": "object",
  "$defs": {
    "Interval": {
      "properties": {
        "startTime": {
          "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time."
    },
    "Release": {
      "type": "object",
      "properties": {
        "serving": {
          "$ref": "#/$defs/Interval",
          "description": "Timestamp interval of when the release was live. If end_time is unspecified, the release is currently live."
        },
        "version": {
          "type": "string",
          "description": "String containing just the version number. e.g. \"84.0.4147.38\""
        },
        "pinnable": {
          "type": "boolean",
          "description": "Whether or not the release was available for version pinning."
        },
        "fractionGroup": {
          "format": "int64",
          "type": "string",
          "description": "Rollout fraction group. Only fractions with the same fraction_group are statistically comparable: there may be non-fractional differences between different fraction groups."
        },
        "rolloutData": {
          "items": {
            "$ref": "#/$defs/RolloutData"
          },
          "description": "Rollout-related metadata. Some releases are part of one or more A/B rollouts. This field contains the names and data describing this release's role in any rollouts.",
          "type": "array"
        },
        "name": {
          "description": "Release name. Format is \"{product}/platforms/{platform}/channels/{channel}/versions/{version}/releases/{release}\"",
          "type": "string"
        },
        "fraction": {
          "format": "double",
          "type": "number",
          "description": "Rollout fraction. This fraction indicates the fraction of people that should receive this version in this release. If the fraction is not specified in ReleaseManager, the API will assume fraction is 1."
        }
      },
      "description": "A Release is owned by a Version. A Release contains information about the release(s) of its parent version. This includes when the release began and ended, as well as what percentage it was released at. If the version is released again, or if the serving percentage changes, it will create another release under the version."
    },
    "RolloutData": {
      "description": "Rollout-related metadata for a release.",
      "properties": {
        "rolloutName": {
          "description": "The name of the rollout.",
          "type": "string"
        },
        "tag": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags associated with a release's role in a rollout. Most rollouts will have at least one release with a \"rollout\" tag and another release with a \"control\" tag. Some rollouts may have additional named arms."
        }
      },
      "type": "object"
    }
  }
}