Google Pay Genericclass API

The genericclass API from Google Pay — 3 operation(s) for genericclass.

Operations 6

GET /walletobjects/v1/genericClass Walletobjects genericclass list #
POST /walletobjects/v1/genericClass Walletobjects genericclass insert #
PATCH /walletobjects/v1/genericClass/{resourceId} Walletobjects genericclass patch #
GET /walletobjects/v1/genericClass/{resourceId} Walletobjects genericclass get #
PUT /walletobjects/v1/genericClass/{resourceId} Walletobjects genericclass update #
POST /walletobjects/v1/genericClass/{resourceId}/addMessage Walletobjects genericclass addmessage #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/google-pay:google-pay-genericclass-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

google-pay-genericclass-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Google Wallet Genericclass API
  version: v1
  description: API for issuers to save and manage Google Wallet Objects.
  x-revision: '20261104'
  x-generated-from: google-discovery-document
  x-source: https://walletobjects.googleapis.com/$discovery/rest?version=v1
servers:
- url: https://walletobjects.googleapis.com
security:
- oauth2:
  - https://www.googleapis.com/auth/wallet_object.issuer
tags:
- name: genericclass
paths:
  /walletobjects/v1/genericClass:
    get:
      operationId: walletobjects.genericclass.list
      description: Returns a list of all generic classes for a given issuer ID.
      tags:
      - genericclass
      parameters:
      - name: issuerId
        in: query
        schema:
          type: string
          format: int64
        description: The ID of the issuer authorized to list classes.
      - name: maxResults
        in: query
        schema:
          type: integer
          format: int32
        description: Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.
      - name: token
        in: query
        schema:
          type: string
        description: Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClassListResponse'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass list
      x-summary-source: derived
    post:
      operationId: walletobjects.genericclass.insert
      description: Inserts a generic class with the given ID and properties.
      tags:
      - genericclass
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericClass'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClass'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass insert
      x-summary-source: derived
  /walletobjects/v1/genericClass/{resourceId}:
    patch:
      operationId: walletobjects.genericclass.patch
      description: Updates the generic class referenced by the given class ID. This method supports patch semantics.
      tags:
      - genericclass
      parameters:
      - name: resourceId
        in: path
        schema:
          type: string
        description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericClass'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClass'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass patch
      x-summary-source: derived
    get:
      operationId: walletobjects.genericclass.get
      description: Returns the generic class with the given class ID.
      tags:
      - genericclass
      parameters:
      - name: resourceId
        in: path
        schema:
          type: string
        description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClass'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass get
      x-summary-source: derived
    put:
      operationId: walletobjects.genericclass.update
      description: Updates the Generic class referenced by the given class ID.
      tags:
      - genericclass
      parameters:
      - name: resourceId
        in: path
        schema:
          type: string
        description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericClass'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClass'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass update
      x-summary-source: derived
  /walletobjects/v1/genericClass/{resourceId}/addMessage:
    post:
      operationId: walletobjects.genericclass.addmessage
      description: Adds a message to the generic class referenced by the given class ID.
      tags:
      - genericclass
      parameters:
      - name: resourceId
        in: path
        schema:
          type: string
        description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddMessageRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClassAddMessageResponse'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/wallet_object.issuer
      summary: Walletobjects genericclass addmessage
      x-summary-source: derived
components:
  schemas:
    TimeInterval:
      type: object
      properties:
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#timeInterval"`.'
        start:
          $ref: '#/components/schemas/DateTime'
        end:
          $ref: '#/components/schemas/DateTime'
    MerchantLocation:
      type: object
      description: Locations of interest for this class or object. Currently, this location is used for geofenced notifications. When a user is within a set radius of this lat/long, and dwells there, Google will trigger a notification. When a user exits this radius, the notification will be hidden.
      properties:
        latitude:
          type: number
          format: double
          description: The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        longitude:
          type: number
          format: double
          description: The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    LinksModuleData:
      type: object
      properties:
        uris:
          type: array
          description: The list of URIs.
          items:
            $ref: '#/components/schemas/Uri'
    Uri:
      type: object
      properties:
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#uri"`.'
        id:
          type: string
          description: The ID associated with a uri. This field is here to enable ease of management of uris.
        localizedDescription:
          $ref: '#/components/schemas/LocalizedString'
        uri:
          type: string
          description: The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
        description:
          type: string
          description: The URI's title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    CallbackOptions:
      type: object
      properties:
        url:
          type: string
          description: The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot.
        updateRequestUrl:
          type: string
          description: URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot. Deprecated.
    CardTemplateOverride:
      type: object
      properties:
        cardRowTemplateInfos:
          type: array
          description: Template information for rows in the card view. At most three rows are allowed to be specified.
          items:
            $ref: '#/components/schemas/CardRowTemplateInfo'
    TemplateItem:
      type: object
      properties:
        predefinedItem:
          type: string
          description: A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
          enum:
          - PREDEFINED_ITEM_UNSPECIFIED
          - FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER
          - frequentFlyerProgramNameAndNumber
          - FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER
          - flightNumberAndOperatingFlightNumber
        firstValue:
          $ref: '#/components/schemas/FieldSelector'
        secondValue:
          $ref: '#/components/schemas/FieldSelector'
    ImageModuleData:
      type: object
      properties:
        id:
          type: string
          description: The ID associated with an image module. This field is here to enable ease of management of image modules.
        mainImage:
          $ref: '#/components/schemas/Image'
    ModuleViewConstraints:
      type: object
      description: Constraints that all must be met for the module to be shown.
      properties:
        displayInterval:
          $ref: '#/components/schemas/TimeInterval'
    AppLinkDataAppLinkInfoAppTarget:
      type: object
      properties:
        packageName:
          type: string
          description: 'Package name for AppTarget. For example: com.google.android.gm'
        targetUri:
          $ref: '#/components/schemas/Uri'
    CardBarcodeSectionDetails:
      type: object
      properties:
        firstBottomDetail:
          $ref: '#/components/schemas/BarcodeSectionDetail'
        firstTopDetail:
          $ref: '#/components/schemas/BarcodeSectionDetail'
        secondTopDetail:
          $ref: '#/components/schemas/BarcodeSectionDetail'
    GenericClass:
      type: object
      description: Generic Class
      properties:
        linksModuleData:
          $ref: '#/components/schemas/LinksModuleData'
        redemptionIssuers:
          type: array
          description: Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
          items:
            type: string
            format: int64
        messages:
          type: array
          description: An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
          items:
            $ref: '#/components/schemas/Message'
        merchantLocations:
          type: array
          description: Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.
          items:
            $ref: '#/components/schemas/MerchantLocation'
        textModulesData:
          type: array
          description: Text module data. If `textModulesData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
          items:
            $ref: '#/components/schemas/TextModuleData'
        imageModulesData:
          type: array
          description: Image module data. If `imageModulesData` is also defined on the object, both will be displayed. Only one of the image from class and one from object level will be rendered when both set.
          items:
            $ref: '#/components/schemas/ImageModuleData'
        valueAddedModuleData:
          type: array
          description: Optional value added module data. Maximum of fifteen on the class. For a pass only fifteen will be displayed, prioritizing those from the object.
          items:
            $ref: '#/components/schemas/ValueAddedModuleData'
        appLinkData:
          $ref: '#/components/schemas/AppLinkData'
        enableSmartTap:
          type: boolean
          description: Available only to Smart Tap enabled partners. Contact support for additional guidance.
        id:
          type: string
          description: Required. The unique identifier for the class. This ID must be unique across all from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
        classTemplateInfo:
          $ref: '#/components/schemas/ClassTemplateInfo'
        callbackOptions:
          $ref: '#/components/schemas/CallbackOptions'
        multipleDevicesAndHoldersAllowedStatus:
          type: string
          description: Identifies whether multiple users and devices will save the same object referencing this class.
          enum:
          - STATUS_UNSPECIFIED
          - MULTIPLE_HOLDERS
          - ONE_USER_ALL_DEVICES
          - ONE_USER_ONE_DEVICE
          - multipleHolders
          - oneUserAllDevices
          - oneUserOneDevice
        securityAnimation:
          $ref: '#/components/schemas/SecurityAnimation'
        viewUnlockRequirement:
          type: string
          description: View Unlock Requirement options for the generic pass.
          enum:
          - VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED
          - UNLOCK_NOT_REQUIRED
          - UNLOCK_REQUIRED_TO_VIEW
    GenericClassAddMessageResponse:
      type: object
      description: Response to adding a new issuer message to the class. This contains the entire updated GenericClass.
      properties:
        resource:
          $ref: '#/components/schemas/GenericClass'
    Pagination:
      type: object
      properties:
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#pagination"`.'
        nextPageToken:
          type: string
          description: Page token to send to fetch the next page.
        resultsPerPage:
          type: integer
          format: int32
          description: Number of results returned in this page.
    CardRowThreeItems:
      type: object
      properties:
        endItem:
          $ref: '#/components/schemas/TemplateItem'
        middleItem:
          $ref: '#/components/schemas/TemplateItem'
        startItem:
          $ref: '#/components/schemas/TemplateItem'
    ClassTemplateInfo:
      type: object
      properties:
        cardTemplateOverride:
          $ref: '#/components/schemas/CardTemplateOverride'
        listTemplateOverride:
          $ref: '#/components/schemas/ListTemplateOverride'
        cardBarcodeSectionDetails:
          $ref: '#/components/schemas/CardBarcodeSectionDetails'
        detailsTemplateOverride:
          $ref: '#/components/schemas/DetailsTemplateOverride'
    ValueAddedModuleData:
      type: object
      description: Data for Value Added module. Required fields are header and uri.
      properties:
        viewConstraints:
          $ref: '#/components/schemas/ModuleViewConstraints'
        body:
          $ref: '#/components/schemas/LocalizedString'
        header:
          $ref: '#/components/schemas/LocalizedString'
        sortIndex:
          type: integer
          format: int32
          description: The index for sorting the modules. Modules with a lower sort index are shown before modules with a higher sort index. If unspecified, the sort index is assumed to be INT_MAX. For two modules with the same index, the sorting behavior is undefined.
        image:
          $ref: '#/components/schemas/Image'
        uri:
          type: string
          description: URI that the module leads to on click. This can be a web link or a deep link as mentioned in https://developer.android.com/training/app-links/deep-linking.
    CardRowOneItem:
      type: object
      properties:
        item:
          $ref: '#/components/schemas/TemplateItem'
    Image:
      type: object
      description: Wrapping type for Google hosted images.
      properties:
        privateImageId:
          type: string
          description: An ID for an already uploaded private image. Either this or source_uri should be set. Requests setting both or neither will be rejected. Please contact support to use private images.
        sourceUri:
          $ref: '#/components/schemas/ImageUri'
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#image"`.'
        contentDescription:
          $ref: '#/components/schemas/LocalizedString'
    FieldReference:
      type: object
      description: Reference definition to use with field overrides.
      properties:
        dateFormat:
          type: string
          description: Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
          enum:
          - DATE_FORMAT_UNSPECIFIED
          - DATE_TIME
          - dateTime
          - DATE_ONLY
          - dateOnly
          - TIME_ONLY
          - timeOnly
          - DATE_TIME_YEAR
          - dateTimeYear
          - DATE_YEAR
          - dateYear
          - YEAR_MONTH
          - YEAR_MONTH_DAY
        fieldPath:
          type: string
          description: Path to the field being referenced, prefixed with "object" or "class" and separated with dots. For example, it may be the string "object.purchaseDetails.purchasePrice".
    ImageUri:
      type: object
      properties:
        uri:
          type: string
          description: The location of the image. URIs must have a scheme.
        localizedDescription:
          $ref: '#/components/schemas/LocalizedString'
        description:
          type: string
          description: Additional information about the image, which is unused and retained only for backward compatibility.
    BarcodeSectionDetail:
      type: object
      properties:
        fieldSelector:
          $ref: '#/components/schemas/FieldSelector'
    AppLinkDataAppLinkInfo:
      type: object
      properties:
        title:
          $ref: '#/components/schemas/LocalizedString'
        appTarget:
          $ref: '#/components/schemas/AppLinkDataAppLinkInfoAppTarget'
        appLogoImage:
          $ref: '#/components/schemas/Image'
        description:
          $ref: '#/components/schemas/LocalizedString'
    FieldSelector:
      type: object
      description: Custom field selector to use with field overrides.
      properties:
        fields:
          type: array
          description: If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          items:
            $ref: '#/components/schemas/FieldReference'
    ListTemplateOverride:
      type: object
      properties:
        firstRowOption:
          $ref: '#/components/schemas/FirstRowOption'
        thirdRowOption:
          $ref: '#/components/schemas/FieldSelector'
        secondRowOption:
          $ref: '#/components/schemas/FieldSelector'
    AddMessageRequest:
      type: object
      description: Resource used when the AddMessage endpoints are called.
      properties:
        message:
          $ref: '#/components/schemas/Message'
    CardRowTemplateInfo:
      type: object
      properties:
        twoItems:
          $ref: '#/components/schemas/CardRowTwoItems'
        threeItems:
          $ref: '#/components/schemas/CardRowThreeItems'
        oneItem:
          $ref: '#/components/schemas/CardRowOneItem'
    AppLinkData:
      type: object
      properties:
        androidAppLinkInfo:
          $ref: '#/components/schemas/AppLinkDataAppLinkInfo'
        iosAppLinkInfo:
          $ref: '#/components/schemas/AppLinkDataAppLinkInfo'
        displayText:
          $ref: '#/components/schemas/LocalizedString'
        webAppLinkInfo:
          $ref: '#/components/schemas/AppLinkDataAppLinkInfo'
    TextModuleData:
      type: object
      description: Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      properties:
        localizedHeader:
          $ref: '#/components/schemas/LocalizedString'
        id:
          type: string
          description: The ID associated with a text module. This field is here to enable ease of management of text modules and referencing them in template overrides. The ID should only include alphanumeric characters, '_', or '-'. It can not include dots, as dots are used to separate fields within FieldReference.fieldPaths in template overrides.
        localizedBody:
          $ref: '#/components/schemas/LocalizedString'
        body:
          type: string
          description: The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        header:
          type: string
          description: The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
    Message:
      type: object
      description: A message that will be displayed with a Valuable
      properties:
        messageType:
          type: string
          description: The message type.
          enum:
          - MESSAGE_TYPE_UNSPECIFIED
          - TEXT
          - text
          - EXPIRATION_NOTIFICATION
          - expirationNotification
          - TEXT_AND_NOTIFY
        body:
          type: string
          description: The message body.
        id:
          type: string
          description: The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#walletObjectMessage"`.'
        displayInterval:
          $ref: '#/components/schemas/TimeInterval'
        localizedHeader:
          $ref: '#/components/schemas/LocalizedString'
        header:
          type: string
          description: The message header.
        localizedBody:
          $ref: '#/components/schemas/LocalizedString'
    FirstRowOption:
      type: object
      properties:
        fieldOption:
          $ref: '#/components/schemas/FieldSelector'
        transitOption:
          type: string
          enum:
          - TRANSIT_OPTION_UNSPECIFIED
          - ORIGIN_AND_DESTINATION_NAMES
          - originAndDestinationNames
          - ORIGIN_AND_DESTINATION_CODES
          - originAndDestinationCodes
          - ORIGIN_NAME
          - originName
    DetailsTemplateOverride:
      type: object
      properties:
        detailsItemInfos:
          type: array
          description: Information for the "nth" item displayed in the details list.
          items:
            $ref: '#/components/schemas/DetailsItemInfo'
    DetailsItemInfo:
      type: object
      properties:
        item:
          $ref: '#/components/schemas/TemplateItem'
    GenericClassListResponse:
      type: object
      description: List response which contains the list of all generic classes for a given issuer ID.
      properties:
        resources:
          type: array
          description: Resources corresponding to the list request.
          items:
            $ref: '#/components/schemas/GenericClass'
        pagination:
          $ref: '#/components/schemas/Pagination'
    DateTime:
      type: object
      properties:
        date:
          type: string
          description: 'An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field''s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user''s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user''s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.'
    CardRowTwoItems:
      type: object
      properties:
        endItem:
          $ref: '#/components/schemas/TemplateItem'
        startItem:
          $ref: '#/components/schemas/TemplateItem'
    SecurityAnimation:
      type: object
      properties:
        animationType:
          type: string
          description: Type of animation.
          enum:
          - ANIMATION_UNSPECIFIED
          - FOIL_SHIMMER
          - foilShimmer
    LocalizedString:
      type: object
      properties:
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#localizedString"`.'
        translatedValues:
          type: array
          description: Contains the translations for the string.
          items:
            $ref: '#/components/schemas/TranslatedString'
        defaultValue:
          $ref: '#/components/schemas/TranslatedString'
    TranslatedString:
      type: object
      properties:
        language:
          type: string
          description: Represents the BCP 47 language tag. Example values are "en-US", "en-GB", "de", or "de-AT".
        value:
          type: string
          description: The UTF-8 encoded translated string.
        kind:
          type: string
          description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#translatedString"`.'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/wallet_object.issuer: 'Private Service: https://www.googleapis.com/auth/wallet_object.issuer'
externalDocs:
  url: https://developers.google.com/pay/passes